Why your team’s software project is probably going to fail — and one tool you can use to avoid it
Three years ago I was a budding project manager at a Cleveland tech start-up that developed custom online ordering systems for restaurants. We had recently won the bid to build a solution for large pizza chain, beating out a few rival big-city vendors for the job. Few days after contracts were signed, the project was assigned to me and with a small team of developers we set out to deliver a platform that allowed their customers to easily order food while on the go.
Six months and six figures later, the platform was delivered with all the bells and whistles a marketing team could ask for — but late and way over the projected spend. As a result we ate the overage cost and nearly lost them as a client. So while they ultimately got the software product they set out to build, the project itself was considered an epic fail.
Whether it’s a functionality issue or a delay in delivery, a significant percentage of all software projects fail, and for a myriad of reasons. But learning how to combat a few key challenges can drastically reduce the doom and lead to better quality software, delivered on time and in proper form. Here’s where it all breaks down:
Substantially Late Projects
The bigger they are, the harder they fail. Small projects are less likely to fail than large projects, primarily because scoping is more difficult on a larger scale. Keeping projects small — in size, complexity and duration — can increase the chance of successful product delivery.
Projects that surpass their slated budgets are usually the victim of the fabled, multi-tentacled beast known as scope creep: an ever-changing, growing list of project requirements and deliverables. At the onset of the project, business requirements, expectations, desired functionality and features should be captured, understood, and verified in order to come to a clear agreement regarding the financial resources required for project delivery.
Issues with Functionality
No! Bad Rover app! Again, half of project failures occur because the software doesn’t do what it should. Communication is key to avoiding such misunderstandings — project sponsors and stakeholders should be informed of challenges that may impact the ability to deliver functionality. Furthermore, eliciting constant feedback through user testing and status meetings provides validation that the project is moving in the right direction, eliminating any guesswork that might come from periodic updates.
Canceled Project after Launch
A large percentage of projects never see the light of day. Companies’ business needs are dynamic and priorities shift from quarter to quarter. Canceling a project post-launch, however, is a huge waste of the firm’s time, money, and resources. It’s therefore crucial to frequently assess a project’s alignment with business strategy. If it no longer fits in the picture, the project should be canceled as quickly as possible.
Avoiding Project Pitfalls
So how can you skate across the software project quicksand to successfully deliver your product? One of the most effective approaches to keeping accurate timelines, maintaining budgets and creating essential functionality is to start with a high-fidelity software prototype. A high-fidelity software prototype is a fully functioning product simulation that looks, acts, and feels like the real thing. It’s a tool used to define and validate the product before major development efforts begin. Here’s how they help you do it:
Keep Accurate and Accountable Timelines: design feedback is captured frequently, keeping interruptions to the design/development flow at a minimum. Prototypes can also serve as well-defined specs, enabling accurate development time estimates.
Maintain Budgets Effectively: high-fidelity prototypes enable the gathering of actionable feedback, prior to costly development efforts. In turn, the prototypes can be used to build accurate budgetary estimates. Additionally, savings can be realized by using prototypes as a basis for iterating early and often.
Create Functionality Users Need: soliciting feedback from users and stakeholders is crucial for keeping a project’s direction on track; prototypes allow this by offering a means to test drive at an early stage. Assumptions can then be validated or dismissed using real user experiences with the prototype.
Launch Confidently: using high-fidelity prototypes during the software development process reduces the chance of surprises upon launch. Users and stakeholders know what to expect and have already bought in to the concept. The final release candidate is tested and ensures that the ideal user experience is encapsulated in the product.
The next time you’re at the starting line of a software project, take a good hard look at the hurdles ahead (timelines, budgets, requirements, etc) and how your approach will either set you up for success or bottleneck the course. How will you define and validate the product to make smarter decisions along the way? And how will you ensure buy-in before development begins? It’s answering these questions that will allow you to build better software well before a single line of code is written.