Creating Software with the Software Development Life Cycle (SDLC)

Kirstie Rodriguez
7 min readFeb 17, 2021

You have done it! You learned the basics of programming, the quirky syntax, the lifesaver methods, and the necessary structure. You have created programs, websites, and web apps. You took it further and learned some snazzy tools to make your creations better. You have completed all these steps, surpassed all these challenges, and now you have started the milestone slightly dreaded by many, frightening by all; group projects.

Teamwork makes the dream work. Image from unDraw.

You will work synchronously with others as a team to develop a product. No longer will you just share the screen, but find a way to work independently together. But one big question starts to arise: “How do we create something together?”

May I Introduce, the Software Development Life Cycle (SDLC).

Software Development Life Cycle (SDLC) Flowchart from KitelyTech.com

The software development life cycle breaks down the process of designing and building software into several essential phases; Planning, Analysis, Design, Implementation, Testing & Deployment, and Maintenance. By following these phases, your team can develop most efficiently.

Planning

We must start with a plan. You will discuss with your team and the product owner (the customer who hires you to build the software, or the teacher who gives you the assignment) what you are supposed to build, how detailed the scope of the project should be, and set up boundaries to keep the project on track. If possible, other stakeholders (people who stand to benefit from your work) would participate and provide feedback to ensure their requirements are satisfied.

Determine your MVP — Minimum Viable Product

Speak up, no question is too big or small! Image from unDraw.

Ask yourself these questions:

  1. What do you want your product to do?
  2. What can be completed in the allotted time?
  3. How much will this project cost you financially (or mentally or physically)?

After answering these questions, you will have a good idea of what your minimum viable product should be.

Analysis

Now we decide what it is our end users can do with our product through detailed user stories and document them digitally.

User Stories

Think of How and the 5 Ws: Who, What, Where, When, and Why.

You may have had those social studies assignments that asked you to write about current events. So you scanned through the newspaper, picked an article that piqued your interest, picked up your pencil and thought “What are the 5 Ws of this story?” Well, thank you Ms. Moskowitz, because those 5 Ws are used to construct your user stories.

A user story is a single sentence with this structure:

As a <who>, I want <what> so that <why>.”

Depending on the context, some of the provided words will also change but these user stories allow you and your team to detail the specific processes that your end users will perform. “As a user, I want to be able to login so that I can view my saved posts.” This user story shows who will be using the product (general user), what the user wants to do with it (logging in) and why (to view their saved posts). This is one generic example, but it shows the developers what a user can see or do during a certain process. You can make your user stories more specific, like adding where this user story happens, or when an element may pop up.

Project Management Software

Scrummin’ it up! Image from unDraw.

All of these user stories will live inside your choice of project management software, such as Jira, Trello, Asana, and GitHub Projects. Learn how to better utilize your digital project manager. For example, there can be many user stories that are related, so group them! In GitHub Projects, there is a feature called “Milestones” inside of the Issues tab. It lets you group user stories, and shows the progress of each milestone as a percentage of completed user stories. Each project management software has its own features, so take some time and learn them. They may save you time and headaches later on.

Design

During this phase, your team will dive into the nitty-gritty technical details of how this product will be developed.

Determine the Tech Stack

Your team will figure out which technologies, programming languages, and platforms you will be using to make your product. There are many libraries, tools, and frameworks you can use to stop yourself from reinventing the wheel, but each will take some time for you to learn and try to incorporate into your project, so consider the tradeoff when determining your stack.

(Diagrams and ) Model Behavior

You will create your Entity Relationship Diagrams (ERDs), flowcharts that model the steps of a user story, and any other documentation that you feel will display the functionalities of your product’s features.

Sketch it out.

Wireframes let everyone see what the final product should look like. Image from unDraw.

A picture is worth a thousand words, and hopefully saves that many lines of code. Wireframes are images you construct that outline how your product will look. There are many online tools you can use: Moqups, Whimsical, Creately, Figma, Invision, to name a few. You can see a general skeleton of how the software will look. You can add more details if you like, such as where users interactions can occur with an element or a color scheme.

Implementation

Image from unDraw.

Ah, at last! The thing I know how to do. At this phase, coding begins. Yes, it was arduous to reach here, but after enduring the previous phases, you and your team have a strong idea of what you want to build, how it is going to be structured, and which technologies you will be using to achieve the end result. Assign user stories in your project management software, and get to coding!

I hear these words “vertical slices” and “stand-ups” — what are they?

Excellent question! These words actually come from a specific software development methodology called Agile. Agile builds upon the SDLC with its own framework for working together. Vertical slices is a way of dividing the tasks and user stories based on the main feature involved. A stand-up is a meeting developers will take each day to discuss 3 things: what they did yesterday, what they will do today, and what issues are blocking them. Fun fact: user stories are derived from the agile methodology too!

“I’m stuck”

It happens; we have all been there. You may be questioning when is it acceptable to ask for help, I myself have questioned it many times. Answer these questions:

  1. What is the problem? Is there an error code? What did you decode from the error message? What line/file does the error occur?
  2. What have you done to try and solve the problem? Is the problem I am thinking the actual error? Why did that solution not work? Did I check Google/Bing/DuckDuckGo/<enter search engine of choice>?
  3. Have you run out of solutions? Have I exhausted all other resources (lectures, StackOverflow, YouTube)?

With these answers, you should feel confident to ask your teammate or team in general for help with your issue.

Testing & Deployment

Business tend to hire a quality assurance (QA) team to test your team’s code. They will perform a multitude of tests to ensure the product meets the business requirements discussed in the planning phase.

Get your code reviewed! Image from unDraw.

In a small team, you may need to test the product yourself. If that is the case, then writing and executing tests throughout development may prove to be more beneficial. Code reviews can also help you uncover bugs or quirks, and help improve your code’s DRYness and syntax.

Once the project has been fully written and tested, you can deploy and share your creation with the world!

Online Party, Let’s Celebrate! Image from unDraw.

Maintenance

As time progresses, technologies will evolve that your code relies on and maintenance will need to occur to keep your product running smoothly. With more technologies added, the more maintenance will be needed to ensure updates do not break your code.

Keeping it clean and running. Image from unDraw.

I hope this quick overview of the software development life cycle and how it can help your team code aids you on your journey. Best of luck with your project!

Don’t drop mics for real; they are expensive! Image from unDraw.

--

--