Chaos Management in Software

Last week, towards the end of another workday, which was a complete madness of multiple sorts, I realized something weird and towards the end you will too.

For the last several months every team has been rushing to handle a task, even though we use agile methodologies, in a list thats never ending and seems to multiply every finished task with 2. Hence, there is never time for any planning, we are always on the defense and all forms of creating order is destroyed by a task with an emergency label, several hundred back to back meetings or sudden customer site work.

I’ve been trying to find a way to get us to calmer waters. There must be some distinct method I’ve been missing, some obscure or well known thing that I didn’t know that would get us to all clear, and most importantly increase morale.

Well, there seem to be several ways but after reading about Lean management methods and combining our own mass chaos I realized we can carve order out of chaos.

Chaos theory itself suggests that there is order of some sort hidden even in chaos so apparently the following is key to uncovering it .

  • Logging every incoming task to a project-wide visible prioritized list with customer and internal priorities. For customers, everything is an emergency but when you have %120 workload already, not much is.
  • Quick 10 min meetings with team leads of various departments and distribution of those tasks and if necessary priority changes. Notice, the importance of being punctual. This is not a system design meeting, just talking about hot topics, confirming or changing priorities, the whys of it and moving on.
  • Dynamic readjustment of the list if an actual emergency occurs and shifting of focus for that specific team/team member working on it. This may be a one person job but I believe it may be better if the responsible team lead handled priority changes and assignments while coordinating with the Product Technical Lead.
  • End of day 10-15 min meeting with team members on current status, what went wrong and immediate remediation on problems same day or next morning first thing.
  • Smaller and more achievable milestone targets to boost morale and feel a sense of pride & accomplishment (pun intended).

By now you may have noticed where this is going. While on paper Agile methodology solves the problem of chaos, it cannot be implemented if;

  • Not enough personnel, hence bigger work chunks leading to not finishing things on time, poor quality of work or personnel being burnt out.
  • Not every team embracing Agile and going their own ways (in an Agile project). This creates a whole set of problems where one foot goes further than the other and the creature falls.
  • Some Team Leads not taking the initiative/forgetting to update the core list or their team assignments on time.
  • And my favorite, some teams having multiple project responsibilities so priority of some tasks drop, sprint sizes change dynamically.

In a project where several fully decentralized teams converge to build a single, multiple dependency project with varying skill sets and project methodologies, I have yet to find a definitive solution to this chaos. I would love to hear if anyone has experience with this

Just a software everything fighting battles against mostly myself, and gaining small victories lately.