BETA
This is a BETA experience. You may opt-out by clicking here

More From Forbes

Edit Story

16 Obstacles To A Successful Software Project (And How To Avoid Them)

Forbes Technology Council

While every software project is unique, many tech leaders and their teams run into similar stumbling blocks, issues and hiccups throughout the process. Some of these challenges just come from lack of experience, while others are errors that could have been avoided with the right foresight.

Below, 16 members of Forbes Technology Council explore some common obstacles they have encountered or experienced when leading software development projects. If you find yourself facing similar difficulties on your software development journey, follow the advice of these experts to help you overcome them.

1. Unclear Or Incomplete PRDs

We’ve been using Figma and Google slides to flesh out product requirement documents to help us understand and iterate on flow. Most folks have an idea or a concept; making it real is where the rubber hits the road. Building detailed specs, showcasing them and getting comments and feedback around them via a Google slide deck has been very efficient and productive for us. - Vivek Bhaskaran, QuestionPro

2. Undisciplined Backlog Grooming

Disciplined backlog grooming is significantly undervalued in software development. Everybody understands the concept; however, since it’s not an official Agile practice, I see backlog grooming discipline declining quickly to reach all-time lows. Spend some time with the team (including business owners) to teach, not tell, the true value of backlog grooming, and make it a definite practice. - Rene Head, The Methodical Group


Forbes Technology Council is an invitation-only community for world-class CIOs, CTOs and technology executives. Do I qualify?


3. Hyper-Focused Planning And Design

Planning and design can be siloed or hyper-focused on a business unit or challenge. This leads to minimizing bigger-picture integration into the application portfolio and underlying infrastructure, which in turn leads to multiple sign-ons, platforms and so on. Leaders should identify common core components; enable strong enterprise architects with business, risk and tech acumen; and conduct cross-divisional project reviews. - Phil Alberta, Next Phase Consulting

4. Security As An Afterthought

Security can often become a stumbling block that delays software delivery, especially when it comes as an afterthought. Security vulnerabilities found just prior to deployment are expensive and time-consuming to fix. Overcome this obstacle by baking security into your software development process, from secure code design to embedding security scanning in the CI/CD pipeline. - Sonali Shah, Invicti Security

5. Overlooking Speed, Security Or The UX

Today, teams developing software applications as a service for businesses need to balance speed of development, security (including data privacy) and the user experience. The inability to successfully deliver on any one or more of these three will most likely result in a project failure. - Alfredo Ramirez, Vyopta

6. Unclear Or Undefined Client Expectations

It is common for developers to deliver a product that doesn’t align with the client’s perceptions. Developers can overcome this by adopting the rapid prototyping approach. Developing initial prototypes or mockups enables developers to show clients what the actual product will look like after development, ultimately ironing out misconceptions at an early stage. - Roman Taranov, Ruby Labs

7. An Undefined Project Scope

Initiatives can get derailed due to a lack of focus and new demands being attached midway through. A well-outlined scope will help you resist the temptation to include new tasks that, even though they may seem relevant, will have heavy impacts on the original deadline and budget. Getting everyone on the same page on this is fundamental to keeping the project on track. - Nacho De Marco, BairesDev

8. Scope Creep

One of the most common impediments to projects is scope creep. It happens because people don’t know what they want until they see it, and when they see it, they want something different. To combat scope creep, be clear on what “done” looks like for the minimum viable product before you start, then ensure that you keep a laser focus on delivering, in short order, something that closely matches that. - Ken Knapton, Progrexion

9. Underestimating The Time Needed

When it comes to software projects, the elephant in the room is scheduling. Software developers are notorious for underestimating it, and managers are often infuriated by slips. It’s important to break down projects into small enough chunks so that the schedule can be accurately measured—and then add a buffer to handle the issues that inevitably arise. - William Bain, ScaleOut Software, Inc.

10. Missed Deadlines

Delivering a software development project on time is difficult for many teams. The problem starts with a failure in planning. Software development teams can avoid unfortunate surprises by asking developers to estimate their own work and then identifying and managing dependencies between team members. - Dave Mariani, AtScale

11. Unexpected Complexities

Great software teams expect and plan for the unexpected. In 35 years of building software products, I have never seen the original plan be the final one. The key components of dealing with the unexpected are strong product and project teams and communication with the stakeholders. It is impossible to know or foresee everything that will change, and you must adapt. - Jim Parkinson, North American Bancard

12. An Unintuitive UI

All too often, a new product hits the market and the user interface is not intuitive. The user struggles to get the desired functionality and reverts to calling technical support or reading help articles. The first impression of the product is lost. The tech team should get ample input during development from non-tech folks to ensure the product is intuitive and delivers the value desired. - Jay Marshall, EyeLock LLC

13. Overlooking Nonfunctional Requirements

A common problem across all software projects is not understanding and/or not considering the nonfunctional requirements, such as performance, scalability, resiliency, monitoring and quality testing. These requirements are as critical as the functional and business requirements to ensure the end-user experience meets expectations. - Mark Schlesinger, Broadridge Financial Solutions

14. Not Aligning Early On The ‘Must-Haves’

Software engineering generally requires the involvement of several stakeholders, each with their own interests to protect. Getting aligned on the “nice-to-haves” versus the “must-haves” at the project’s inception will ensure that the right tasks are prioritized, the overall budget and timeline can be honored, and no one is unpleasantly surprised in the end. - Rashad Nasir, ThinkCode

15. Not Managing Data Integrity

Data integrity is the most stressful and common obstacle when maneuvering a new software project. Leaders can hire an outside firm to oversee the project. They can also have stopgaps during the implementation to check on integrity. Most of all, keep a backup of what you have before you start! - Kevin Huber, IT Outlet

16. Poor Collaboration Between The Product And Engineering Teams

A common reason why software projects fail is the lack of sufficient communication, cooperation and collaboration between the product and engineering teams. These two teams have to constantly work closely together to make sure that software projects are planned, developed and executed in a way that serves the needs of the product and of the customers. - Peter Abualzolof, Mashvisor

Check out my website