Our previous post titled "How Do You Manage Your Technical Debt?," mentioned the four dimensions of developer productivity that are critical to success. They are:
- Speed of development – in an increasingly competitive marketplace, the desire to please one’s customers as quickly as possible is never far away;
- Quality – maintaining a reputation for quality is critical to maintaining a customer base;
- Results/Functionality Delivered – reflect promises made;
- Cost of Delivery – always a temptation to cut corners here, usually in favor of cutting time
As we also discussed, keeping these various dimensions in balance is important to long-term success.
The Three Foundational Blocks
Fortunately, consistent, long-term application lifecycle success is achievable by building developer performance on three foundational blocks that together optimize development and increase productivity:
1. Robust Processes Based on Industry Best Practices – Above all, clarity in communication at every stage
- Use an Agile-based methodology with well-defined templates, coding standards and project delivery guidelines.
- Remember that development and QA go hand-in-hand through the development lifecycle
- Conduct continuous software evaluation in collaboration with the customer
- Also remember strong service management processes to support all development activities
2. Effective Project Management & Leadership – Decide your destination in order to select and navigate the best route:
- Create and adhere to your delivery roadmap, even as you focus on reducing re-starts and re-work
- Measure the accuracy of your effort estimation (for future projects) as you measure the team’s throughput
- Assign needed support resources to reduce bottlenecks (QA, BSAs, DBAs, etc.)
- Technical managers should run development teams, and remember to stay actively involved in code and design reviews
- Additional goals include the ability to remove noise and distractions; a forward-looking plan to address sick time and vacations; and a constant focus on Developer Retention
3. Tools – Select the right tools for your team, together with an emphasis on collaboration:
- Application Lifecycle Management (ALM) productivity tools to enhance ease of development
- Always emphasize team collaboration for more effective and efficient development
- Code Analysis tools to ensure secure, reliable and compliant software
By taking such an approach to software that adopts a holistic view, the likelihood of accruing technical debt can be minimized, and even avoided altogether. Remember, proactively managing technical debt is a critical aspect of efficient delivery. Mastering it will contribute to lasting success.