Life cycles of Software Development

Enjoy your reading.

Have you ever heard about Waterfall, Spiral, Agile? No? Well, I was in the same situation a few months before I started working for a tech company. Now the picture is a little more clear and I’m confident enough to write about topics like these. Honestly, I’m not going to talk about those words in this posts, but I’ll talk about something quite related: The Software Development Life Cycle.

So imagine that you are working as a software developer and you want to start building things using that outstanding algorithmic mind you have. The only problem is that when the problem comes in, it is bigger than expected and you don’t know what to do (merge sort doesn’t work here). Then, the question is, how do companies deal with new tasks in a daily basis? The answer is through a well structured Software Development Life Cycle (SDLC).

Step 1. Planning

There’s one person (the client) who wants a new feature in a product. It may be, a way to upload images to a platform to edit them. The client tells his need to your product owner (the person that is the bridge between your dev team and the client) and they agree to rise a new task.

Step 2. Requirement Analysis

After the task is stated, maybe it takes a long time to be done because nobody knows how to do it, so you call the best software developers at your disposal and have a meeting with the product owner to find out how to do it, you list all the requirements and in a certain way you refine the task

Step 3. Design

The task is refined but you still don’t dare to start programming because maybe your solution is very crazy. Then you have a meeting with a software architect and maybe a senior developer to discuss the high level and low level design of your program. Here is when you think about dependencies, scalability, design patterns, etc. Even if it looks as an extra step, is fundamental in a company that is looking for innovation and adaptability.

Step 4. Implementation

During this step, you choose your favorite snack, a cool soda and your favorite music playlist to start coding. But not so fast, every time you commit something, you should ask your mates for a code review. You always have something to learn from others and through continuous code reviews you will become a better programmer.

Step 5. Testing

You can use software tools for unit testing, integration testing and so on, but also you can delegate this issue to a QA (Quality Assurance) Engineer. The QA team will try to broke your code in every possible way and if they find a little bug in your solution, they will return your task to the previous step.

Step 6. Deployment & Maintenance

During this step, all the work you did will go to Production, this means that your change was applied successfully and the client can enjoy it. Normally, the people in charge of deploys are some engineers from the DevOps team, but it may vary. Also, you have to solve any future bug that the users discover, this is, maintain your solution working.

A little more about SDLC

References: https://www.tutorialspoint.com/sdlc/sdlc_overview.htm

Deja un comentario