Can we agree that writing great software is hard to do? Not just any software, great software. Every corporate situation is unique and there are no simple solutions for building great software. That said, here are seven quick tips for improving your software development process. Pick one or two and get to work.
1. To speed up your development cycle, slow down.
The harder you push to finish the software, the more mistakes you’ll make. Items will be missed, decisions will be wrong, shortcuts will be taken, technical debt will accumulate, and quality will suffer. Instead, prioritize and focus. You’ll get less done, faster.
2. To ease decision-making, keep it simple.
The more options you offer someone, the more questions they’ll ask. Confusion and bewilderment are the likely results. Evaluate priorities and needs, then offer fewer choices based on them. You’ll reach consensus easier and faster.
3. To be better at what you do, prepare, practice and deliver.
Basic agile principles are fairly simple — even obvious. Implementing them is hard work. Lots of preparation and some early failures are the price of admission. Don’t let the difficulties discourage you. It’s worth it.
4. To deliver big changes, start smaller.
We often try to do too much, too quickly. Change can be overwhelming when not handled in a structured and disciplined manner. Big changes carry big risks and extended approval cycles. Bite off small chunks. Digest them fully and keep at it.
5. To build better business relationships, stop telling.
Smart people often talk too much and listen too little. Business people don’t need you to tell them how to run their business. They need you to listen to their problems and concerns so you can help them find better solutions.
6. To learn quickly, fail faster.
The best way to learn is by doing. Anticipate rookie mistakes and leverage them to learn. Early sprints or iterations are good for experimenting, failing and learning. Take advantage of them. Don’t let perfection get in the way of greatness.
7. To differentiate your team, develop subject matter experts.
Writing great software is not enough. The business needs people who are experts in their specialized domains. These domains need to cover business and technical areas that are relevant to the business problem being solved and software system being delivered. Be a SME.
Got any other suggestions to share?