Donald Barre
Donald A. Barre
Know What Is And Is Not Important
Prioritize, prioritize, and prioritize some more.
No team can do everything. We have to choose what to focus on, and that means we are also choosing what not to focus on.
I experienced the importance of setting priorities the hard way. I was once on a team for a greenfield project. Management gave us two years. Early on, the team realized that we needed to be able to generate lots of complex fake test data. To do that, we created a test data generator application. That was good. We needed it.
Everyone, excluding myself, wanted unit tests for our test data generator. So, yes, we had lots of unit tests. At one point, we even had a team code review for one of the unit tests. The meeting included all five developers and two architects. I believe we spent anywhere from 30 to 60 minutes discussing the unit test and how it could be improved. Keep in mind that the test data generator is for internal use only. It doesn't go into production. We are not selling it. The unit tests for it do not need to be perfect.
During the meeting, I brought up the issue of priorities. I pointed out that if we have the entire team focused on this one unit test, we are not focused on other issues that are more important. We continued with the code review. The team was convinced that we could do everything.
The lack of prioritization extended into other areas as well. By the time we got to the halfway point in the project, we had no frontend, no backend server, no authentication, no authorization, no scalability, and not a single completed feature, but we did have a really great unit test for the test data generator.
We don't build software in isolation. We build software in order to meet a business need. We may want to do everything, and we may want to do all of those things perfectly, but that isn't the real world. We have constraints, notably time. We have to know what is important and what is not important in order to focus on delivering working software that is needed by the business.
© Donald A. Barre. All rights reserved.