Category: Management


The mobile app Tactical Breather developed by the military to train soldiers to remain calm in life-or-death situations has a familiar mantra:

Tactical Breather“I will not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.” — Frank Herbert, Dune

It turns out that you don’t need to be a eugenically engineered Bene Gesserit monk to learn amazing levels of self-control.  Through repetitive practice and training, anyone can learn to gain control of your heart rate, emotions, concentration, and other physiological and psychological responses to your body during stressful situations.

Although these techniques were developed primarily for the warfighter during intense combat situations, anyone can benefit from the ideas taught in this application to help with nearly any stressful situation in life.

The app teaches you the deceptively simple 4-4-4-4 breath technique.  Inhale for count of 4, hold count of 4, exhale count 4, hold count 4, repeat.  This will trigger a relaxation response within seconds, but more importantly as you practice this technique over days and weeks, it becomes an automatic reflex for stressful situations, like dealing with production outages or screaming toddlers…I mean screaming users.

Download the free app on Google Play to learn military-grade Bene Gesserit skillz.

Having recently migrated our database server, I’d like to acknowledge the staff that helped make this transition go as smoothly as possible.  There’s a great deal more to a database server migration than simply pointing the database migration tool to the new drive location.

In particular, I’d like to acknowledge the janitorial staff for vacuuming in the server room before the new server hardware was installed.  Ensuring a minimum of dust in the new environment is critical to the continued success of the performance of the hardware as well as the health and safety of the IT staff.  I can not overemphasize the amount of work that went into achieving this goal.  You can literally eat off the floor of the server room, good work Benny!

Going forward, we are endeavoring to automate this process, freeing the cleaning staff to focus on higher level janitorial tasks, so we have authorized the purchase of a Roomba 9000.  Made by iRobot, this state of the art robot uses military grade artificial intelligence to seek out and destroy dust bunnies wherever they may congregate.  Working 24/7 it will ensure an immaculate server room environment maximizing shareholder value for generations to come.  We named it “Skippy”.

I’ve learned a lot from this process.  You may never have migrated a database server before, but there’s more to it than just copying files.  The new server comes with a great deal of packing material that must be disposed of in a proper manner.  The amount of styrofoam blocks alone is truly staggering, reducing the efficiency and effectiveness of IT support staff by blocking movement about the workspace.  Even after the packing material has been laboriously removed, little bits of styrofoam often remain, flitting about the server room sowing chaos.  This is where the new Roomba really pays off, seeking out every last fleck of styrofoam and removing it from the environment completely.

Going forward, we are in the process of drafting  a policy that requires new server hardware to be opened outside of the server room.  This may reduce the efficiency of future server installs by requiring more steps to be taken to place the actual server hardware, so an offsite management workshop summit in Dubai is planned for next March to analyze the issue.  Benny will keep you informed of it’s progress.

Once again, good work team, you’ve all done very well.

Here are some thoughts about documentation, including guidelines and best practices on documentation of code, defects, and application usage.

Code Documentation

I’ve worked in a lot of different development teams at a lot of different companies and I can say that no one even tries to create hard rules around documentation of code for developers.  Mostly it’s because it’s so subjective, but also because it would be so hard to enforce.  However, a general guideline or “best practices” for code documentation would include:

1)  Use meaningful variable and property names (i.e. call a variable “agency”, not “a”;  call a property “DependentService” instead of “ds”, etc.)

2)  Use meaningful method or function names instead of code comments.

For example:

public void GetDependentServiceForXYZService()

instead of

// get dependent service for XYZ service
public void GetService()

3)  Don’t add pointless, redundant, or obvious code comments.

Example 1:  Don’t do this:

// get dependent service for XYZ service
public void GetDependentServiceForXYZService()

Example 2:  Don’t do this either:

// set agency to null
agency = null;

3) In general, only add code comments for anything that’s may seem out of the ordinary or that you yourself as the developer may cause you to get confused when you look at your own code 6 months from now.

Defect Documentation

Documentation for requirements and defects found in QA testing will need to be much more strictly enforced because there are certain things everyone (developers, testers, acceptance managers, etc) need to know to replicate, fix, and retest the issue.  Things that would need to be known for documenting a defect include:

1)  What screen was the error seen?

2)  Steps for reproducing the error

3)  What environment was the bug found?  (i.e. dev, qa, pre-prod, acceptance, production, etc)

4)  Date it was found

5)  Version of the code it was found in

6)  Who the bug is assigned to for fixing, who should it be assigned to for re-testing, etc.

7)  Screenshots of the error would be nice

All of these can be easily enforced with a bug tracking tool like Remedy, TFS, etc.

User Documentation

Documentation for using the application is a different ball game.  There are definitely no rules here, every company and every app had different requirements for user manuals.  Usually acceptance managers/testers, business analysts, and QA testers are (a lot) better than developers at documenting how the app is actually used by the business.  Usually help links/popups are best for documenting an app because no one reads the manual.  If you have a really complex app, you may need to hire a tech writer/trainer to document everything for you.  Short videos of how to use features or complete tasks with the app are awesome (they’re also much appreciated when learning linear algebra www.khanacademy.org).

Scrum in one page

Here is the Scrum agile method summarized in one page:

How the Scrum method works:

  • There is one Product Owner (e.g. a business analyst) for each project and he/she creates a prioritized wish list called a Product Backlog.

    • The backlog is an ordered list where the most urgent item is #1, the second most urgent item is #2, etc.

    • The Product Owner is the only person who can change the priority of items in the Product Backlog.

  • During Sprint Planning, the team (i.e. developers, testers, and dbas) pulls a small chunk from the top of that wish list (i.e. the most urgent items) and decides how to implement those pieces.

    • This chunk of the Product Backlog is called the Sprint Backlog.

  • The team has a fixed amount of time, a Sprint, to complete its work (usually two to four weeks) and meets each day to assess its progress (daily scrum).

  • During the sprint, the Scrum Master keeps the team focused on its goal and removes impediments to productivity.

  • During the sprint, the Product Owner can change priorities in the Product Backlog, but cannot change priorities to the Sprint Backlog.

    • The Product Owner is the go-to person for the team to get clarification on functionality or usability.

  • At the end of each sprint, the work should be code-complete, tested, and ready to deploy to prod.

    • Items not completed are put back into the Product Backlog, to be finished in a later sprint.

    • Therefore the sprint deadline is never extended to finish items or for any other reason.

  • The sprint ends with a Sprint Review and Retrospective

    • Sprint Review is where the sprint’s progress is demoed and discussed with the product owner (and ideally, the customer).

    • Sprint Retrospective is where the team discusses ways to improve productivity and eliminate pain.

      • Rule #1 of the retrospective is that no person or part of the organization is allowed to be blamed for problems. Processes allow people or parts of the organization to be inefficient, therefore the discussion focuses on how processes can be changed to improve the situation or remove impediments.

      • The best improvements are taken from the retrospective and implemented in the next sprint.

  • As the next sprint begins, the team chooses another chunk of the product backlog and begins working again.

  • The cycle repeats until enough items in the product backlog have been completed for a prod release or a deadline arrives. However, work can be stopped at anytime and finished items can be deployed to prod in a short amount of time in a fully workable and tested state.

(This is a summary of the Scrum Framework in 30 Seconds – yes, a summary of a summary)

Point It Down Range

A rifle instructor knows how dangerous a rifle is and makes sure every one of his riflemen keep their guns pointing down range rather than at each other. Any great team will have an enormous supply of competitive energy, and much like a rifle, this competitive energy can be dangerous to the team if it’s pointed inward.

A key role of a leader is to harness all that hyper-competitive energy and point it down range. A leader needs to make sure competition doesn’t turn inward and become self-destructive, devolving into political infighting. A leader gives his team someone or something outside of the team to focus on and target with their attack energies. A great leader rallies his troops against either a common enemy outside of the organization such as the company’s competitors or on an opportunity for fame and fortune. Team meetings are not about how the team sucks but about how the team can build it’s strength to beat a common enemy and attain glorious victory.

© 2013 Robert Corvus