In my development days I was always concerned with:
- Producing workding software as quickly as possible that met the needs of the users.
- Producing clear, concise, maintainable code that I – or someone else – could pick up and easily modify at a later date.
- What should each developer be paid?
- How do I assess and help to improve individual performance?
- How do we (there are a few of us involved) assess and help to improve team performance?
- How do we motivate and reward individuals and teams?
- What practices and processes should we adopt to make our development organization better?
Of course, I’m periodically asked fun questions by my boss. When he wants to understand productivity – or determine what I understand about it in relation to managing developers – he asks, “How do we know that we are doing better this year versus a year ago?” Or, as we discuss business direction, “What can we do to grow the business?”
When talking about improving productivity and delivering value to the customer, all of these questions are valid, as were the personal goals that I had as a developer.
Many times, I see “software productivity” defined strictly in terms of programmer productivity. In reality, the productivity of programmers is only one small aspect of the total productivity picture. I believe that true productivity is the product of:
- The knowledge, ability, and contributions of individuals.
- The collective effort of individuals collaborating effectively on teams.
- Processes and tools that support the work of individuals and teams.
- The organizational culture and the overall management of the company.
This provides a range of topics to explore, and I look forward to your perspectives as well.