Solve a Real Business Problem
Some software projects succeed, and others fail. What’s the difference? What are the clues that indicate whether a software project is going to succeed (or fail)? Here are some characteristics.
Number one, in order for any software project to succeed, it needs to solve a business problem. The magnitude of that problem, in terms of dollar value, needs to be greater than the money (time and effort) spent on the project. Otherwise, you’re just blowing an even bigger wad of cash.
Top Management Support
Number two, it needs the commitment and support of top management. Invariably there will be conflicts with allocation of people, time and money. Without this commitment and support, a loss of these resources can cause a project to be delayed, de-scoped, or both. The end result can be disappointing to the business customers. Having this commitment means having an executive on your side to advocate for your project.
The Right Team
Number three, you need the right team in place. Mainstream software development refers to “the three amigos”: product owner, developer, and tester. You may have two or more people fulfilling the developer and tester roles, it depends on the size of the project. Small projects can have the developer and tester as one person. But beware of carrying this into larger projects.
There is a marked difference in skill sets between a developer and a Quality Assurance (QA) tester. Developers are creators; they naturally want to build solutions to a problem. QA testers approach from the perspective of “let’s see if we can break this product”. Skilled QA testers come up with test scenarios a developer could not imagine. A good QA is worth their weight in gold on larger projects.
The Product Owner comes from the business side; typically they are a product unit lead. They can be a business analyst as long as the are knowledgeable, and have the authority to make decisions on behalf of the business customer.
The Right Technologies
Number four, you need the right mix of technologies. Server hardware or cloud provider? Software frameworks, and tooling all need to be matched with the skillset of the team. Additionally, consider the robustness and general industry acceptance of the technologies. Solid tools that are widely used means there is a large community of users to help you solve problems. Moreover, the availability of talent for your team tends to be higher with mainstream technologies.
Keep these tools and frameworks up to date; the last thing you want is to be struggling with five or ten year-old versions of software when newer versions elegantly solve the problem you are working on.
So to summarize, make sure you’re solving a business problem with decent return on investment, get management commitment, have the right team and use the right technologies.