How Do I Put Together a Software Development Project Scope?
By Tim Smith
There’s a widely held thought that scoping a software development project should be easy. Sometimes, that’s true. When your business is starting out, or you’re a small company, projects are often smaller and scoping tends to be easier. As your business grows, its roles and projects start growing in complexity, it might seem to (almost) drop the ball on scoping, scheduling, and prioritizing projects.
It’s easy to fall into the trap. You and your stakeholders see that your IT projects become larger and your project management processes grow more complex, but it’s more taxing on your organization than anyone realizes. Those first steps toward effective and efficient project management are challenged with adding new hires to support that growth but haven’t yet absorbed your company’s tribal knowledge.
Without a thoughtful structure and process to communicate that knowledge, it’s nearly impossible to add new people and stay as effective. Those new hires face a long training period that’s made even longer by the need to absorb and implement all that undocumented knowledge.
How Do You Start Scoping a Software Development Project?
If you ask your search engine how to start scoping a project, you will get an overwhelming amount of advice. Everyone has ideas on how to start, but when you’ve got the resources available, the goal defined, and the deadline approaching, how do you cut through the noise and set the project’s scope?
If you follow an Agile model, you might reach for a high-level objective, sketch a budget, and see what you can get done in 90 days. However, if you think of your custom software development project as a kitchen remodel, this would be tantamount to ripping your kitchen down to the studs before you check to see if you have the money to complete the new project. For a lot of businesses, that’s a scary leap of faith.
Even in diligent organizations that have fully embraced an Agile methodology, the ability to properly scope a project and set reasonable expectations is one of the most valued skills a technologist can develop that regularly supports business and executive teams. In these organizations, it’s common for teams to be asked to provide a high-level budget and timeline before a project gets approved for implementation.
So, if we believe that there is value to the scoping exercise, an experienced custom software development firm or software architect can really prove their worth here. At SOLTECH, we have been scoping custom software development projects for over 20 years. Here are what we believe to be the four key steps that have served us well:
Step 1: Discovery
In this step, you interview stakeholders, asking questions from multiple technical angles and ultimately drive toward creating an inventory of needed software features. The real trick to doing this well is to:
- identify all end-users of the software,
- develop a list of goals/use-cases for each one,
- Translate what the user needs to do (high-level business objectives) into functional requirements (how the software will support these)
Step 2: Analyze, Forecast and Decide
Taking the inventory of features that comes out of the Discovery step, a technical team will now have to supplement those requirements with a number of technical assumptions regarding how they will develop the software. They also face a few architectural choices that need to be made to round out the description of the software. The key is not to go too deep.
In Agile terms, stick to the Epic level and don’t get bogged down at the story level. Once that is done, the team should do some estimations and forecasting (including additional design time to properly detail the design work that wasn’t done as part of this short effort). This step concludes with review and decisions by a stakeholder as to whether and when the project will proceed forward.
Step 3: Detailed Design
In the Detailed Design phase, your project’s previous high-level scoping gets refined and grows as you take it through the three stages of custom software design:
- Solution: Adding detail and granularity to the requirements
- Technical Design: Translation of Requirements into a Technical Design
- Visual Design: Developing what end-users will see in the solution
Step 4: The Final Revision Before Hitting Go
At the end of this step, you should have the scope you need to support the final go/no-go tollgate that decides whether to proceed with the custom software development project.
It’s easy to talk of dreams and goals for a software project. It’s harder to start drawing lines and assigning figures to them. Putting together a project scope can be a project by itself—requiring 40 or even 80 hours.
If, after progressing through these four steps, all parties agree that the project is doable, this exercise of setting up a project scope will be valuable as a blueprint to guide the project and revise any original assumptions and goals for the project.
If you’re curious to learn about other areas that contribute to the scoping of a project, learn more about the importance of defining software requirements in The Ultimate Guide to Software Requirements.