managing chaos
August 29th, 2001One of the great lessons in life is that chaos is inevitable. Once you learn that there is no face lost in abandoning all hope of completely avoiding chaos, you can much more comfortably get down to the task of managing how to decide which bits of it are worthy of your attention, and more importantly, which are not.
Many people come to this epiphany when they have their second child. All the angst spent worrying about potential crises with the first child turns into considered risk management. With the first one it’s “Oh my God – keep him away from that – it’s got dirt on it!!”, and panic sets in. With the second one it’s “Well, it’s only dirt”, and serenity flows.
The trick is continually to assess issues on the amount of influence you have in determining their outcome. If you have no
influence, your worrying isn’t going to help it, so don’t worry.
If you have a moderate amount, do what you can and be satisfied that you’ve done your best. If you have great influence, then set it as a priority and influence away. No time to worry.
In order to reduce the amount of issues coming at you, preventive medicine is a Good Thing (TM). In the development sphere, I can think of a few ways to manage complexity.
- Endeavour to keep things predictable. Use a staged development environment (Dev/Test/Prod). Implement change control and stick to it.
- Implement a source control / concurrent versioning system. Conflicts are reduced, rollback/forward, archiving are all automatic.
- Share and reuse knowledge. Newsgroups, forums, blogs, bookshelves, magazine collections, FAQs, knowledge bases, code repositories, links
- Keep your eyes open for other tools and processes which help you to manage complexity