Projects often suffer from the same old issues time after time.
Fix one thing. Easy to say. Hard to do.
I see project after project encounter the same old problems. Do you? Something on the following list perhaps?
- Lengthy requirements documents that few people read.
- Functional specifications that simply repeat the requirements.
- User stories that are too vague to validate and test.
- Use cases that only discuss a single “sunny day” scenario.
- Technical specifications that are mostly boilerplate.
- Source code that is poorly written and hard to follow.
- Test plans that are written like best practices documentation.
- Software systems that are full of defects seen before.
- Software applications that are just plain ugly.
I could go on but you get the idea. The same old problems, issues and complaints, over and over again.
Instead of putting up with such insanity, why not just fix one thing? Not everything. One thing. Pick one item on the list and fix it. Get a small group of coworkers together who share your concern. Formulate a plan to address the item.
Map out a plan to incrementally improve the situation. You don’t need to go from insanity to competence overnight.
Set goals that challenge the organization. What result do you want to achieve? Stay focused on the root problem. Don’t try to do too much. But, do stretch! Seek an optimal solution — something grand.
Now define a few intermediate states that take the organization from the status quo to the goal. It should take a few software releases to reach the goal. That’s okay.
As long as the group you’ve assembled sticks together, you can make this work. You can drive change through the organization — and keep your sanity.