The Right Work Processes
Learn How To Manage & Ship A Great Software Product
Get 20 lessons about how Software CEOs can grow their team, improve their culture, and create efficient work processes on the way to building a massively successful Software Company.
A good work flow — one that brings the right resources to bear on the project at just the right time — is critical to the success of your project. Roles and responsibilities and handoffs have to be set up right to make sure that happens. Here’s what you need to keep in mind:
- Specialize and collaborate. Specs, coding and testing can/should be separate functions for accountability, but people should be “loaned” across lines to bring to life a shared commitment to the whole project. Sign on as a tester yourself, grab a test deck and go to work. Follow the process outlined by your testing supervisor and report to her just like the testers do. It will give you a close-in picture of the rigor of your testing process, the integrity of your software and the management skills of your testing supervisor.
- Allow marketplace “air” to enter the coding sanctuary. Strike a balance between allowing coders to do their work undisturbed vs. letting them connect with real users in real time so they can see the expected benefit of what they are doing in the real world. Code should be written with respect for rapidly changing needs in the marketplace and user community. That means close coordination between user advisory groups, spec writers and coders and writing code smartly and in such a way as to leave key variables open as long as possible.
- Expect “late changes.” They’re a natural part of the process and should be expected and prepared for, rather than regarded as a threat to the process.
- Sequencing capabilities is key. Accept up front that you can’t have everything in the first release. Deciding exactly what will be in and what has to wait is an ongoing process involving good decision-making that should include input from everyone, including users.
- Listen for what they NEED. Don’t just listen to what prospective customers say they WANT. Use rapid modeling tools to engage users in discussions leading to what that really LOOKs like.
- Development is never finished. Significant milestones should be set and celebrated when accomplished.
- Be realistic about release dates. Sticking stubbornly to a date in the face of new information leads to poor quality, customer dissatisfaction and bad morale in your group.
- Be scientific. When possible, borrow from the scientific method when designing test plans: Vary one condition at a time, while holding others constant. It means a bigger test deck and more work, but it’s more likely to uncover more bugs more reliably, and result in a higher quality product.
It’s fine to have a lean build-monitor-learn-repeat approach to product development, but be careful not to go overboard with the “fail fast” hype. The kind of glib talk that exhorts people to go in with a gleeful “let’s kill projects” attitude may be fine for a company with unlimited funds, but for most companies, failure is not fun, easy or cheap. You’re spending real money with every iteration. And there are real people behind every dollar — VCs, the bank, or the crowd — and they deserve your best considered decision-making to protect and make the very best use of their investment.
Learn How To Manage & Ship A Great Software Product
Get 20 lessons about how Software CEOs can grow their team, improve their culture, and create efficient work processes on the way to building a massively successful Software Company.