Simplicity and Consistency (Part 2: Consistency)
Posted by Ken Brooks Sat, 26 Jan 2008 22:53:00 GMT
Maintaining consistency within a shop is one of the easiest things to do and one of the best ways to save time and reduce errors.
Consistency comes in many flavors.
- Languages used
- Tools used (build systems, scm)
- Code standards
- Processes (code reviews)
- many more.
One thing that wastes a tremendous amount of our time is context switching. Context switching happens when ‘being in the zone’ is interrupted, forcing you to drop what you were working on and get up to speed on a totally different topic. By having consistent set of items from any or all of the above categories the context switching is reduced.
Keeping your list of languges and tools to a minimum goes against what we as creative people (known as developers) thrive on. We love to learn new languages and we love to use the newest and shiniest toys available. Unfortunately, introducing new languages and tools most often serves to complicate our environment and eat up more of our precious time. Unless a plan is put into place to consolidate multiple tools or replace existing tools then what you end up with is having to support each. That costs usually outweighs the benefit.
I’m all for “using the right tool for the job”. However, it seems hard enough to find good developers for one language, much less those that know, or are willing to learn, ‘the right tool’.
Of course, all of this is different for each shop. Many of the problems I mention may not affect small startups. They might only have one application and thus only one language, one build system and one SCM. If you come from the enterprise world or a company that has been around for a long time then you probably can relate.
Take a look around next time you are at work and take stock. Do you already have too many tools? Do you notice a trend of new tools being consistently added? Do you notice your productivity waning?
