Sunday, January 31, 2010

Productivity from Consolidation, Deployment, and Design

Here are a few productivity ideas proposed by one of our developers, that I think are great:
  • Consolidate related systems.  As our code-base has grown, we've re-implemented the same functionality a few different ways in different places.  At the time, this was done in the name of getting things out the door as quickly as possible.  Now, it's a hindrance.  Changing the functionality means either changing it in several places or sacrificing it in the more obscure places and focusing on the obvious ones.  Instead, we should consolidate the components to allow rapid development across all systems and lessen developer confusion.
  • Architect systems with deployment in mind.  All too often we save a deployment plan for the end.  On larger projects, this leaves us with a tangle of code that is cumbersome to push live without breaking the production site.  That, in turn, makes the deployment process take a lot of time.  By focusing on deployment up front, we can create a plan to lower the risk of pushing code, and so speed up the entire process.  The approach should also encourage more abstraction and isolation in our systems, which is also good for maintainability.
  • More centralized control over design and development.  It's hard to balance the gains from giving developers full autonomy over their code with the reality that some people are better at creating designs that lend themselves to rapid development.  We tend to give our developers full control over the projects they're given.  I think it's time to move to a more collaborative approach, where an initial design is reviewed with speed in mind.  We also do code reviews at the end of development, but at least one mid-term review would be beneficial to keep people from straying too far down an unproductive path.  We should identify those developers who have a track record of architecting solutions that allow for quick development and give them authority over design decisions for projects they're a part of.

No comments:

Post a Comment