The 5 Phases of Software Development

The 5 Phases of Software Development

I recently finished my capstone project called DRIP with two other developers. We built a smart moisture sensor with a helpful pairing web app. While working on this, I learned a lot about the software development life cycle. My team for DRIP followed the agile method but this is how I experienced our process. 

Here are the stages we went through to successfully nail all of our development goals and deadlines.  

The Idea

Whether it's your original thought, an enhancement of someone else's, or a customer's request, this phase of development can feel uncomfortable because of all the uncertainties. Sometimes it's difficult to express an idea that lies in uncharted waters. Nonetheless, the longer you brainstorm with your team the clearer your vision becomes. Your team needs to promote an environment open to all ideas. Sometimes your idea isn't the right choice, but it gets everyone headed in the right direction. Put everything on the table, be welcoming and listen to others in this stage. 

Keeping your deadline in mind helps your idea not to grow out of scope (this happens easily). Don't be afraid to take on an ambitious project, but be realistic with yourself (and your customer) given your time constraints.  

Define Done

In my opinion, this is the most crucial phase to ensure a smooth development and deployment process. To move past this stage, everyone involved with the project should know exactly what is going to be built. 

This phase is in place to define your functional and non-functional requirements. Functional requirements gathering allows you to clearly express what your system does and must not do. Organize a list of features and user requirements to help you get going. Non-functional requirements focus on how your system is going to do the functional requirements. 

Ultimately, you want a clear and precise definition of what done looks like for your application. We made lots of diagrams, charts, UI-wireframes, and notes to express what done looked like for us.

The Tools

Choosing the right tools for the right tasks is crucial for building efficient and scalable software. First, decide on your platform(s). Is your application going to run on mobile, desktop, the web, or a combination of platforms? This will help you narrow down the array of tools available to choose from. All tools for developing software have pros and cons. So it's important to choose the right technology stack for your application. This stage requires a lot of research.

Online community and middleware were important to my team on DRIP when we chose Express with Node.js as our framework. Node.js has an awesome open-source community making it easy to find help and guidance. We used middleware to help us add features like authentication, encryption, and flashing messages on the screen.

Building

As a developer, this is when I realized the power of agile and its flexibility. We spent some time creating and refining a backlog of user stories for all of the features we needed to build. From there, we split up the user stories into week-long sprints. We had a ten week-long development and testing phase so we had ten sprints. 

Having all your user stories planned out helps you make better decisions when changes or roadblocks come up. Some aspects of our project ended up going faster than we thought and some went slower. Developing an intuition for when to shuffle the schedule around was key to hitting our big final deadline at the end of the ten weeks. 

Version 1.0

At this point, DRIP was ready for release and looking for feedback. After various people used our sensor and app we received lots of information that helped us make things better. Testing and updating are key to software longevity. There are always ways to make your application better and bugs to be found. DRIP could use more work and features for future updates. But I am happy with the way the project turned out and I learned so much from this experience. I am looking forward to what apps and tools I will get to help build in my future. 

If you would like to learn more about my capstone project, check out our GitHub repo and the live app here: https://drip-web-app.herokuapp.com/index

To view or add a comment, sign in

Others also viewed

Explore content categories