Pre-development activities are the most critical phases in a new software development effort.
Numerous studies show they set the foundation for success and can make or break your project.
As a matter of fact, “successful firms spend about twice as much time and money as unsuccessful firms on these vital front-end activities”
(Cooper, Robert G. “New products: What separates the winners from the losers and what drives success.” PDMA handbook of new product development (2013): 3-34.)
Yet, early activities aren’t as popular as other development stages because most people incorrectly think a software developer’s primary purpose is to produce code.
But here’s the thing… it’s not.
This shortsighted perspective is like saying the primary purpose of doctors is to do surgery.
And if you think it through… it just doesn’t make sense.
Imagine you open the door to your doctor’s office. They lay you on the cold hard steel table. You feel the gas mask strapped across your face as they pull out the scalpels and start slicing away.
No conversations. No consultations. No planning.
Your outcome doesn’t look very good, right?
There’s a reason healthcare doesn’t work like this.
Diagnostics, finding the best approach, and planning are not surgery. These are even MORE critical activities of a medical professional.
Maybe surgery is a bad idea for what’s bothering you.
Maybe you don’t need a brain transplant for a hangnail.
Maybe it’s just me, but don’t you think it’s worth a little up-front due diligence to ensure you are doing the right thing? Especially when your life or the life of someone you love is on the line?
The crazy thing is that in the software world, this misunderstanding of what developers do drives most software production today. Teams just start coding. No conversations. No consultations. No planning.
But it kind of makes sense, right? Imagine if you thought software engineers just produced code.
Logically, it follows that consultations, planning, and thinking ahead are unnecessary steps. They keep your engineers from coding. They add delays to your project development. They add costs without a direct return on your investment.
But here’s the thing. That’s now how it works in reality.
The primary thing software engineers produce is NOT code.
So, what do software engineers do?
Software engineers produce value for your customers.
And who pays for your code?
I’ll give you a hint: It’s not your customers. They pay for value.
You pay for the code providing the value.
And here’s the problem…. Code is dangerous. It’s where the bugs are.
Failure rates highly correlate with how much code you have. Maintenance costs blow up. Defect rates rise. Entropy escalates.
Here’s another way to think about it:
Don’t you want as much profit with as little cost, risk, and time as possible?
This means you want less code and more business value, right?
Maximum output for minimum input SHOULD be the name of the game. But in most software dev shops…it’s not.
Want a competitive advantage? Then shouldn’t you provide the most business value to customers with the least amount of code?
Here’s the thing: Without proper triage, your chances of survival crash. It’s true in healthcare, war, software development, and almost everything.
Unfortunately, many companies jump straight into either development or design activities without adequate preparation.
Want to increase your chances of survival?
Read on to learn more about optimizing your chances of success through pre-development activities in your organization.
Pre-development activities include all the work that happens before design and development begin.
Some of these are fixed (i.e. requirements, budgeting, and duration), while others are ongoing (i.e. concept testing, user research, and prototyping).
Some of the most common activities include
The first step in optimizing your pre-development activities is understanding the goals and requirements of your project.
This may seem obvious, but it’s easy to lose track of the “why” behind your project when there’s so much to do. This includes understanding the business drivers for the project, end-user needs, and project goals.
Once you understand your project’s requirements, you’ll be able to determine if existing tools, technologies, and processes can support your project. This will help you determine if additional resources, training, or time are needed to complete the project successfully.
The next step in optimizing your pre-development activities is to define your target audience and user experience.
This will help you determine the specific needs of your users and how you can best meet their expectations. It’s important to consider business and user requirements together. You must consider both to determine the best path forward.
Meeting the needs of your target audience will help you create a successful product that generates revenue. But meeting their needs isn’t enough. You also need to meet their expectations.
This means following best practices and industry conventions that guide users toward desired outcomes.
You may have heard the term “goals before tools”. This means you should choose the right tools for the job only after deciding what to build, for whom, and why.
The next step in optimizing your pre-development activities is to estimate project duration and cost.
This will help you understand the time and resources required to complete the project successfully.
Duration and price are related, but they aren’t the same thing. Duration is how long the project will take to complete, while cost is what you’ll spend on completing the project.
You can estimate these activities based on previous experience with similar projects, external studies, and expert opinion.
You’ll likely find it helpful to remember that duration and cost change based on project scope, team type, and project health. Scope creep is the number one project killer.
The next step in optimizing your pre-development activities is determining what you’ll plan, build, and ship next.
This includes understanding the goals, requirements, target audience, and user experience behind the project.
You’ll want to consider the tools, technologies, and project health factors that may impact what you can build next. This includes the duration and cost of the current project and any dependencies that may affect your ability to build new features or products.
Your pre-development activities play the most critical role in any project.
They set the foundation for success and can make or break your project. But they aren’t as popular as other development stages because of a warped view of what developers do. Non-technical stakeholders often feel these are unnecessary steps that add time and cost without an immediate return on investment (but the truth is just the opposite).
Early activities are essential to the success of a project. They help you understand the goals, requirements, and expectations behind a project. This will help you determine the right target audience and user experience for the project.
And they allow you to estimate the duration and cost of a project.
Early activities enable you to understand how long the project will take to complete and how much it will cost to build successfully. And time and money are not unlimited; there is a point when any project stops making sense.
With this information, you equip yourself to optimize your development activities for your organization.