The Software Development Process We Used to Build 200+ Products

Product label | August 11, 2022

In software product development, you never act on a hunch—at least unless you’re planning business suicide. There’s always a step-by-step plan you follow to move from one stage to another, making sure you don’t slip as you proceed from an idea to a rollout. This plan underpins the complete software development process. While it may vary from vendor to vendor, it’s universally essential to put things in order when kicking off a new project.

This article is an immersive overview of the software development process we use at Relevant – a software development company with 8 years of experience. It covers the steps we take, the teams involved, and everything you must know to get the ball rolling with your project.

Our process contains nine software development steps, honed to perfection by following them to create over 200 products. Feel free to tap into them as your A-to-Z guide.

Step 1. Readiness assessment

You may have more questions than answers when planning a new project. It’s fine if you’re only in the dark about technical stuff (e.g., architecture patterns). You can get expert advice on that when you hire a remote software development team and go to the next stage.

What may cause concern is when you have no idea how to achieve product-market fit or if you’re entering an unknown niche with an off-the-cuff strategy. This may be a sign you aren’t ready to get into the software product development process yet.

Here are three things that determine whether you’re ready or not:

Are you an established company with considerable domain expertise and a clear-cut product specs sheet? Congratulations! You’ve checked all the boxes to go to Step 2 .

But if your expertise is not sufficient to proceed, you may want to slow down a little to close the gap.

Here’s how you can build your product on relevant expertise even if you don’t have it yet:

If you have no idea where to start, consider reading Running Lean by Ash Maurya for tips on an effective startup methodology. For a crash course on reaching product-market fit, watch this video where the author shares ten steps to take.

Fostering an “everybody lies” mindset, you can also dip your toes into The Mom Test by Rob Fitzpatrick to learn to conduct customer interviews. Too busy to read it? This 3-minute video recap can take you through the questions worth asking, as well as those that may trip you up when chatting with your audience.

Step 2. Getting to know the team

You can’t fling yourself into the development process single-handedly. Creating a great product from the ground up is about having a close-knit team where everyone knows the ropes.

In most cases, your team will comprise these specialists.

Chief technology officer or tech lead

When getting started, you share your product vision and requirements with a chief technology officer (CTO) or tech lead. But your cooperation with these specialists doesn’t end there. They’ll accompany you throughout all stages of software development.

What they do : A CTO or tech lead manages your project, puts together a roadmap, and helps make a go of your product technically. They oversee how your business strategy is woven into software development processes, identify impediments, and hammer out ways to avoid them. They also act as a communication link between you and other stakeholders to keep decisions aligned.

Delivery manager

A delivery manager is like a supervisory agency behind your project. They ensure you have deliverables on time without overpaying for them throughout the SDLC.

What they do : A delivery manager collaborates with a CTO or tech lead on creating a project roadmap and monitors all software development stages in terms of deadlines and resource allocation. They prioritize your business needs from one step to another and report results as they’re achieved. In the Agile model, a delivery manager steps forward to maximize value in your product through iterations.

Business analyst

You want to have a business analyst (BA) on your team to ensure your product fits into the market as effectively as possible.

What they do : A BA brings unambiguity into where you set your sights on and how your product can achieve that. At the early stages, they crunch numbers and collect insights to analyze what your target audience wants. Then, they hit the sweet spot between problems and solutions, finding the ideal way of creating your product and estimating what it’ll cost you to do that. Finally, they write down business requirements and make sure they are met with nothing left out.

Development team

A dedicated software development team comprises all those pros who piece your product together. Think of UX/UI designers, frontend/backend developers, and quality assurance (QA) engineers.

What they do : As you can see from their job titles, these specialists design, develop, and keep a close watch on the quality of your software. They turn your brief into a fully-featured product and bring it to end-users. Once it’s there, they maintain it so that you can deliver continuous value to your target audience.

Step 3. Idea validation and estimation

So you’re sitting on the piles of domain expertise and have connected with a CTO, tech lead, BA, or delivery manager to talk through your project idea. What comes next? Idea validation and project estimation.

Idea validation

Idea validation is a huge step. As part of the product discovery process , it’s all about connecting the dots between what you intend to create and whether anyone will ever want you to use it. That’s when you validate assumptions, hypotheses, and guesses to seek answers for real product demand. Measuring it helps you plan your project budget and deadlines.

Idea validation includes many processes (customer interviews, surveys, etc.) and questions to ask. At this stage, you move from defining woes to figuring out solutions to determining sought-after product features.

To make it clear to you, defining woes means:

For the latter, your team researches the ways and solutions your target audience currently uses to deal with their problems. If this sounds like competitive analysis, that’s because it really is.

Competitive analysis isn’t only for knowing who you’ll rival with to woo your target audience. It’s for how to have the edge by providing a better solution than those currently available.

That’s when your team pins down what makes your product different and what features it should have. This software development process also helps determine whether you should go with a progressive web application (PWA), a native mobile app, or a hybrid/cross-platform option. We have an entire article dedicated to PWS vs. Native apps , so check it out if you need more info on this topic.

Knowing what features will be developed should also help you decide between traditional or cloud-based development . Your development team can guide you through this.

To visualize how your solution will work in real life, your team will analyze the requirements, put together user stories, and sketch your would-be software. But don’t expect Claude Monet-level artworks at this stage. They are just to give you a basic understanding, which is enough to proceed to estimation.

Project estimation

Why didn’t we get into software development cost estimation earlier? It’s impossible to do without validating your idea and discovering what your project is about.

Rough estimate

So once we have critical inputs, you can get a rough estimate of what your software will cost you. It gives you ballpark figures based on:

Here’s a sneak peek into the process: sometimes, we use the Estimate My App tool. You can test it out for an approximate estimate, too.

A rough estimate serves as a general ledger for a BA to create a work breakdown structure (WBS). It’s a visual that dismantles the entire application development process into teeny-tiny steps and tasks to see what will be done. It covers the preliminary scope of work and deliverables and is used in both Agile and Waterfall models of the SDLC.

If you’re good with a rough estimate, you can request a detailed one.

Detailed estimate

The detailed estimate goes deeper into planning each step, software features, SDLC models, and the people involved in creating your product. It also accounts for the hours it takes to develop your software by allocating them to every specialist on your team.

Of course, a detailed estimate is more accurate than a rough one. It may take up to two weeks to tally everything up and show you the total cost of your product.

To ensure accuracy, we also look at the type of infrastructure and software architecture when making a detailed estimate.

If you’re in for cloud deployment, the platform you’re building your product on may affect its cost. We can move on with your project, whether you want to take it to AWS, Google Cloud Platform, or Azure, although AWS proves to be an overall winner for most solutions created with Relevant.

Then, you’ll need to decide on a software architecture pattern to get a detailed estimate.

Layered A tightly coupled, structured pattern built on presentation, business, persistence, and database layers.
Event-driven An asynchronous pattern that puts agility first when triggering real-time events for software components to work.
Microkernel A multi-component pattern that uses independent plug-ins to add to the core functionality and allow for custom software product development .
Microservices A loosely coupled pattern in which different software modules are built, deployed, and maintained as small services.
Space-based A highly complex pattern that uses processing units and virtualization technology over a grid structure for data processing and storage.
Client-server A simplified pattern to set up the communication between a client that requests data from a server.
Master-slave A way to distribute repeated requests to multiple sub-components for simultaneous handling.
Pipe-filter A pattern in which data streams use pipes as connectors to get to different filters to be processed around a specific function.

Once you select an architecture pattern, you’ll proceed with making all functional and non-functional requirements clear. We collect them to prepare a software requirements specification (SRS) document and put together a tech stack.

Requirements and feasibility analysis

Requirements and feasibility analysis makes detailed estimation and planning complete. It looks at whether the software you want to build is viable for your requirements or calls for changes before design and development are in full swing.

When assessing software feasibility , your requirements may be changed. If the analysis reveals some of them aren’t best for your business or target audience technically, operationally, or legally, we can give a few pointers on adjustments. These can help you get a more viable and cost-efficient product in the long run.

With that, feasibility and requirements analysis hones in on technical, operational, and legal matters.

Technical feasibility

This study is used to check whether your project is feasible in terms of resources and the tech stack. It analyzes the infrastructure you’re going for, your team capabilities, software type, and technology in between. Its results show you if any technical improvements are necessary to achieve the best outcome.

Operational feasibility

You may not yet know if your end product will be easily embraceable, maintainable, and integration-ready. Operational feasibility analysis goes over all that to ensure you have the right strategy to meet your requirements and business needs.

Legal feasibility

This analysis examines the legal requirements your product must meet and whether you’ve planned for everything for compliance. Often, legal feasibility covers data privacy and security laws, like the GDPR or CCPA, intellectual property rights, and local regulations.

When it comes to the legal side of your project, the results of requirements and feasibility analysis should find their way in software development documents . That’s what you sign as part of the client onboarding process to explicitly write down what needs to be done for compliance.

Just signed a software development contract and agreed upon the cost and deadlines? It’s time to get into the thick of things.

Step 4. Prototype or MVP

With a prototype or minimum viable product (MVP), you can put your preliminary research into practice and see whether your ideas work in real life. Both options are for testing so that you can adjust your project with agility and use resources sparingly.

A little timesaver : If you’ve validated your ideas and know what your product should look like and how it should work, go to Step 5 . Creating a prototype or MVP is one of those steps in software development you can skip if your plan is on solid ground.

However, if you’re still testing the waters, consider building a clickable prototype, concierge MVP, or full-fledged MVP.

Clickable prototype

Testing the UI of your would-be product? A clickable prototype can be developed for web and mobile applications as a stripped-down design version to evaluate its usability.

This prototype serves as a simple wireframe with basic interactivity to check how user-friendly your layout, buttons, or pages are. It isn’t supposed to help your target audience deal with their woes or get too much into your end product’s functionality.

Concierge MVP

Verifying a proof of concept? A good way to check if there’s demand for your product is to leverage a concierge MVP.

A concierge MVP is based on a ready-made solution to focus on your audience’s problems without developing any functionality. With this MVP, you manually help potential users get what they need and see whether an automated product can give them the same value. However, it isn’t for you if you’re planning to ask them for personally identifiable information, credit card numbers, or other sensitive data.

Full-fledged MVP

Testing the features? A full-fledged MVP has a more detailed design and functionality than a prototype, allowing you to put it in front of your target audience to check what works for their pain points best.

Remember, you aren’t selling anything with this MVP. Neither does it have all the features you’re going to add. You only use it as a point of contact with your target audience to collect feedback with a usable solution as part of the Agile product development process.

But how do you know what features you should invest in for your full-fledged MVP? Embrace the Kano model.

The Kano model is an analysis framework to find the best way to ensure customer satisfaction with your product. In web or mobile application development, it can help you shortlist the MVP features worth testing early on.

Simply put, the Kano model enables you to distinguish between the essentials and the bells and whistles in a product that is yet to be created. So when running MVP developing services under this framework, you’d say yes to:

And you’d say no to everything users don’t care about. You can give up any features in your MVP that would make a final product complete but don’t have a tangible impact on user satisfaction or dissatisfaction.

Step 5. Design

The design phase is when your requirements and feedback collected during the previous step are used to organize your product for further development. Besides, it’s also when your product reaches a visual milestone.

custom-tailored software design example

If you’re struggling to win the support of other stakeholders or investors, custom-tailored software design can help you bring them into the fold. Your product becomes tangible at this stage, making total buy-in easier to achieve. And because it’s usable—at least to some extent—you can go on with testing to get feedback iteratively.

The software design process starts with looking back at user research.

User research and information architecture

By this point, you should know enough about why you’re creating a product and who its end users are. But you need a more aligned strategy to jump-start the design process with your team. This strategy should be built on:

  1. Design brief . You draw up this document with your team to take ambiguity away from the design table. It should incorporate the key aspects of your project, including requirements and deliverables, and be comprehensible among stakeholders. Designers and engineers stick with a brief during all software development process steps.
  2. User personas . These emerge from your user research findings. With well-documented user personas, UX/UI designers can meet the people they’re designing your product for, even though they’re fictitious. Your team knows who your ideal customer is, how old they are, what they do for a living, and other details that enable them to strike the right chord with design decisions.
  3. User journey and user flow . These are the visuals that map how your target audience can use your product to fulfill their needs. Plus, user journeys go beyond that by visualizing their experience even after their goals are achieved. Both visuals are essential to design a solution that feels more personalized.

These three elements are paramount for information architecture (IA). Your design team builds it to combine your product’s navigation, features, visuals, and other content in one chart to structure the steps to be performed. IA is then used to prioritize UX when creating wireframes. This helps keep stakeholders aligned, especially when coupled with frequent workshops to get teams together.

Another way to maintain team alignment during the design phase is to draw a business process modeling notation (BPMN) diagram. It should be based on a WBS to arrange design-related decisions, artifacts, requirements, and information flows. A BPMN diagram helps connect ideas and processes to design a user-centered product.

Wireframes and mockups

The wireframing step follows once you have user research findings and IA on tap. That’s when you get something tangible like the first layout draft. A wireframe shows the main structural blocks of what will later become your product. They are often filled with lorem ipsum without any visually appealing features. Still, such a simplified design can give you a rough idea of button placements, navigation, page depth, and more.

Next, you get your hands on a mockup . It’s a more visually refined design that allows you to get the overall feel of your product. A mockup can be full of icons, sliders, and other visuals created within an agreed-upon color scheme and over a wireframe layout. When it’s delivered, you can either request changes to what you find unnecessary or move on.

Neither wireframes nor mockups are usable. You can test out your products with some actions only when you have a clickable prototype.

UI/UX design

A knockout user experience design is the one your target audience finds intuitive. It should be consistent, simple, and tailored to your user personas and journeys. A great UX design eliminates the time for your target audience to get used to it. Instead, it’s created in a self-explanatory way so that they can tackle their woes with your product straight away.

At this stage, you get the final version of your product’s UI design. Your mockup feedback is taken into account to:

With the final design version, it’s important to test how your target audience feels about it.

Usability testing

Usability testing is the final check before software product development begins. It involves exposing your product design to a group of end-users to assess its intuitiveness, accuracy, and effectiveness.

Usability testing is an insightful way to:

By having it tested this way, you can take a closer look at how real people use your product. This saves a great deal of time and effort as you can redesign any features based on insights and go to the coding stage only when everything is polished.

Step 6. Development

Now, the product development life cycle has brought you to the technical side of your project. You may call it the coding step, during which everything is set up for creating your app or website. In other words, this is when your Agile software development team gets hands-on with the infrastructure, frontend, and backend work.

Software engineer during software development process
Software engineer at Relevant

To you, the stage of development begins with providing a statement of work (SOW) as you’re onboarded. Written by a project manager, this document describes why, when, how, and what needs to be done in detail. It delves into everything from schedules, standards, and payments to the development services provided during your project life cycle.

With a well-written SOW, you’re always in the loop about where your product is. It enhances the project management experience by laying out a standardized way of handling things and ensuring all teams follow the same path toward a successful launch.

Project artifacts

To dive further into paperwork, your SOW accompanies eight project artifacts. These are necessary to cover processes across software engineering steps with absolute clarity:

  1. Communication schedule . This is your plan to receive status updates and other project-related information once development commences. A communication schedule keeps you aware of what meetings you can engage in as a client, their frequency, and communication channels.
  2. Project charter . Similar to a roadmap, a project charter serves as a guide for you and your development team. It brings together the whys of your software, objectives, stakeholders, and resources. Besides, it describes roles and responsibilities, including the project manager’s authority levels.
  3. RACI matrix . This artifact assigns software development phases and tasks to people on your team. It uses Responsible, Accountable, Consulted, and Informed tags to define specific roles throughout your project life cycle.
  4. Change request register . With this artifact, you can check tweaks within your project and request them as a stakeholder. Even a slight adjustment that takes one minute to implement is recorded here for tracking.
  5. Gantt chart . When it comes to planning tasks, a Gantt chart gives you a deadline-based overview of everything that will be done. It shows activities and how long it takes to accomplish each of them, bringing you up to speed on the project completion status.
  6. Project roadmap . Also known as a release plan, a technology roadmap visualizes top-level WBS elements over repeated sprints. This artifact makes your project more predictable and efficient in the long term. You can get an IT, app, or dev roadmap to coordinate new rollouts and upgrades within your business while having your sights set on strategic goals. With a release plan, you can implement something new and control it, not just go with the flow.
  7. Risk register . This artifact lists negative and positive risks tied to the software development process following a risk identification session. It allows you and your project team to stay aware of threats, implications, and mitigation actions to protect your product and business from getting off track.
  8. User stories . Written by a BA, user stories move away from complex development stuff in favor of brief, easy-to-understand descriptions of how your product will be used. They put your target audience first and provide a reference for building functionality that helps fulfill their needs.

Are you now thinking you can sign your SOW, get all eight artifacts, and call it a day? It doesn’t work that way. As a product owner, your role is central in the development process, and so is your involvement.

Project meetings

Our collaboration starts with a kick-off meeting, but it isn’t limited to one. To keep up with high standards at Relevant, we use Agile project management processes and expect you to join us for:

You’ll also need to fit some time for looking through reports into your schedule. They come with all phases of software development to deliver the outputs for every step we finish.

Step 7. Testing

Practice makes perfect, right? Scratch that.

In software development, it is testing that makes perfect.

In software development, it is testing that makes perfect. It begins as soon as the first line of code is written and continues all the way before your product goes live.

What do we test at Relevant?

When you have your software developed with Relevant, you get quality assurance services included in the process. They are based on a predefined QA plan for your project that the whole QA team sticks to.

A QA plan describes the scope of testing and the actions to take to deliver a flawless product. We implement it during the development stage to shift focus to:

We do manual and automated tests to efficiently get to the root cause of failures as they’re detected. But do you always need to implement both of them? It depends.

Manual tests vs. automated tests

There’s no perfect way to test all use cases, although we all wish we had one. Both manual and automated testing can benefit the software product development process, but differently.

The difference between them is that you have to get hands-on with checking in manual testing. That means QA specialists only use their knowledge and skills while keeping tabs on your software, features, or specific modules.

Automation doesn’t require you to get hands-on, at least once testing scripts are in place. They run automatically to check your software for defects.

So why would you do something manually when you can automate it? Although tedious and prone to human error, manual tests are better than scripts when:

That’s why manual tests make more sense for checking everything associated with a user experience and discovery. They help uncover what only a human can notice. Besides, you can’t implement scripts for ad hoc testing.

Automated tests have their pros and cons, too. It’ll cost you more money to get started with them as you’ll need to write and implement scripts for all your use cases. And they still require a QA specialist to oversee the intricacies.

That said, automated tests are better than manual ones when:

That’s why automation works best for large-scale test cases that need to be performed multiple times, like regression, unit, and load.

Test-driven development (TDD)

There are many ways to code and conduct tests, but test-driven development (TDD) is our favorite. The key idea of TDD is that software development processes follow the results of tests. Simply put, you write code after a failing test signals something needs to be changed to validate behaviors. You then put down the bare minimum of code to pass that test, eliminate duplicate parts, and repeat the cycle.

In TDD, actual development happens after testing, or more specifically, while testing. This is what makes it different from traditional testing performed when all the code is already there. Developing this way also helps ensure higher coverage with tests as both processes are intertwined.

When tests drive software product development, your system ends up with:

TDD often uses unit tests, but it doesn’t equal them. Unit tests are also common in traditional testing to check a behavior at the lowest level. In TDD, however, they make an integral part of the refactoring process while driving development.

Step 8. Implementation and deployment

When pre-launch testing proves your software is ready to go further, it’s moved into production. At Relevant, this step involves software product release orchestration to bring your solution to end-users in a well-coordinated manner.

Take a look at what release orchestration involves.

Setting up servers

The first thing to do to get your software live is to set up a place to house it. Whether you choose on-premises servers or a cloud platform, you leave it to your development team. This step needs to be performed with utmost care to set up smooth backend processes and implement DevSecOps practices. At the same time, your team should configure server-side resource allocation, so your newly released software can be used efficiently.

Building a CI/CD pipeline

Whatever you’re developing, you want to couple your software with a Continuous Integration (CI) and Continuous Delivery (CD) pipeline. Once implemented, it accelerates the release process for all the builds you have and makes it easier to adopt changes post-launch. Plus, CI/CD pipeline best practices add to the maintainability of your product by wrapping it into a uniform package.

Protecting your software from third-party failures

No software is immune to all risks out there. Third-party integrations—and even your cloud service provider—may sometimes hit a rough patch, exposing your system to failures. That’s why your development team should configure server backups at the implementation stage. With backups, you can roll back to normal functioning, despite the unavailability of third-party systems you rely on.

Preparing and implementing a deployment plan

Release orchestration also revolves around a deployment plan. It’s put into the end of the development process to define how your software should go live, who is responsible for getting it there, and how it should be maintained afterward. Following the same plan, your team then delivers your product to whoever is supposed to use it and makes sure it doesn’t hit a roadblock along the way.

Step 9. Operations and maintenance

So your product is rolled out. This marks the beginning of the operations and maintenance routine.

Even though it comes last, maintenance is one of the most important software development stages. You should maintain—or get someone to maintain—your product to improve, update, and keep it operational without downtime.

This is when you usually sign a software maintenance agreement with your development team or a third party. Under this agreement, you set forth what parts of your product should be maintained, upkeep activities, liabilities, and more.

According to the IEEE/ISO/IEC 14764-2006 standard, there are four types of upkeep activities:

  1. Corrective software maintenance . If someone has noticed a bug in your product, fixing it is part of corrective maintenance. It refers to the actions taken in response to reported flaws in your software.
  2. Preventive software maintenance . Just like you change your car’s engine oil to prevent issues with your set of wheels, this maintenance type involves timely checks and fixes to keep software bugs at bay.
  3. Perfective software maintenance . Once rolled out, your software should evolve. Perfective maintenance means optimizing, refining, and adding new features to deliver the best version of your product to end-users.
  4. Adaptive software maintenance . Moving to the cloud? Responding to the updated policies in the third-party add-ons your software uses? This type of maintenance entails everything that needs to be done to adjust your product to changes without affecting its value to your target audience.

IEEE/ISO/IEC 14764-2006 should also be your guide for maintenance planning and resource analysis. With a maintenance plan, you get on the same page with whoever takes care of your product post-launch. It lays out detailed guidelines about how, when, and what will be done for upkeep. It’s like a strategy you develop to leave no stone unturned in defining:

It’s an excellent idea to start formulating a maintenance plan during software engineering steps if the same team handles development and maintenance. Preparing it this early makes sure it covers all the bases as soon as your product becomes available to end-users.

Resource analysis is another critical thing to consider at the operations and maintenance stage. It should be carried out to attach a price tag to:

You aren’t supposed to scrutinize resources on your own. If you leave operations and maintenance to Relevant, we’ll do it together to define available personnel, environment, and financial resources. We use research findings and statistics-based methods to tally up expenses and help you budget for upkeep.

Our security standards

In a world where broken access control, spyware, and data breaches run rampant, ensuring security is a top-priority task. Is it a tall order? Absolutely. Is it impossible? Our answer is a resounding no.

Relevant’s commitment to security and safe practices is steadfast during all steps of software development. From idea validation to maintenance, we follow ISO/IEC 27001 standards. We also invest in comprehensive employee training on how to test mobile app security , web app security, and other kinds of software for upskilling in creating products without loopholes.

That’s how you know your product is secure from the technical perspective once it’s ready. It’ll come with many artifacts, plans, and policies so that you can keep up with high security standards at the organizational level:

These are only a few of the documents that accompany your product to meet security standards. You can get a full list of artifacts, plans, and policies after signing an NDA for software development with Relevant.

Our security practices also involve frequent risk assessment and threat modeling workshops. They get teams together to foster the understanding of potential hazards and empower them to do their jobs with safeguards in mind. The workshops are carried out throughout your SDLC. You can find some of the topics and practices discussed at the workshops in our guide to the security of web and mobile applications .

Wrapping up

The software product development life cycle is an extensive, multi-step process that starts when your idea is born and continues when it’s made into a full-blown solution. It takes a lot of effort to accomplish all those steps. But it’s easier to do that if they’re set in stone, like in this guide. We follow it every day at Relevant, and so can you.

Relevant’s nine software development steps take your product from preliminary research to deployment and maintenance. Stick to them so stay on track, whether you’re creating a web or mobile app.

FAQ

Your Next Read