People are people. Developers are people (a breed apart maybe, but still people.).
And most people like to show others how good they are at what they do. They take pride in demonstrating the value they can add to any given situation.
Developers sometimes try to gold plate a project by adding bells and whistles, or supplementary features and tools, to an application beyond what is called for in the project requirements. While they are undoubtedly well-intentioned, the net result of these bells and whistles is often added complexity and, inevitably, more time needed to complete the project. In software development, complexity and the need for extra time are the enemy. That’s why putting first things first—prioritizing—is crucial when it comes to being a highly effective developer.
It’s a Software Project, Not a Panacea
Yes, creating code that can be reused and repurposed is one of the underpinnings of effective coding, but keep in mind that you need not – indeed, should not – try to predict every conceivable scenario and write to all those ends. Too many things can, and often will, change between the day you write the code and the days, weeks, months, and years, following its release.
Instead, organize the code in ways that can be easily extended at a later date. Make implementing improvements or new features easy rather than trying to predict what those enhancements will be.
Reviews Move You Forward
To keep the project on target, on time, and on budget, conduct periodic team code reviews.
Use peer review applications to ensure that you’re producing the highest quality work and properly prioritizing the workflow.
Use peer review tools that enable the entire team to evaluate technical design documents written in Microsoft Word, such as validation plans and software source code all at once so they have the big picture. Source code management tools that let everyone comment and see others’ comments saves time in rooting out gold plating or other scope-creep that can bog down forward progress.
Use these team code reviews to spot opportunities where the code can be better organized to be reused later, spot defects, and be developed in a way that easily supports and sustains ongoing maintenance during the product lifecycle.
Team code reviews, as part of an automated workflow process, can also help facilitate your regulatory and standards compliance requirements. Keeping up with FDA, ISO and CMMI compliance requirements and proof of reviews along the development process via e-signatures and audit trails ensures you are getting your priorities straight and tackling them in the right order.
Timing Is Everything in Life and Coding
Depending on where in the lifecycle your software is, giving the right priorities to support and manage agile and waterfall releases for products already released is another area where you can improve your effectiveness.
Use an ALM tool to track artifacts and requirements. Tools that automate testing, support ticket management, and integrate with SCM and defect tools can also help you “put first things first” by freeing up your time to focus on the issues that remain to be addressed instead of on worrying about whether previously agreed on items have been resolved.
Live Long, Prosper, and Code Well
It may sound logical to put first things first, and developers are nothing if not logical. Still, developers are people, not Vulcans (sorry, Trekkies), and doing the logical thing is sometimes sidetracked by our natural, emotional instinct to want to impress people with our creativity and forethought. So, stay focused on what’s most important, then use the tools available to help you to accomplish your goals quickly and effectively.
Next up in our series: Highly Effective Habit #4 – Think Win/Win
- The 7 Habits of Highly Effective Developers: Habit #1: Be Proactive
- The 7 Habits of Highly Effective Developers: Habit #2: Begin With the End in Mind