The software development life cycle or SDLC is the path that a software solution goes through from start to finish. It’s a model to follow which helps development teams and individuals deliver better quality software. Ask ten different developers what the stages of the SDLC are and you’ll get ten different answers. The purpose is to help deliver what the customer wants when they want it.
Requirements: software has to come from somewhere. Someone will come up with an idea or have a problem that they need fixed. We’ll call this person the client. It’s your job as a developer to turn the client’s idea into a working piece of software. In order to to that you must understand what the client really wants. You do this by gathering a list of requirements. These requirements will turn into features of the finished product.
Say your client want’s a mobile app where users can buy products. Start there and list all the things required like a payment system, a storage system for all the items/customer information. Then clarify with the customer. Do they want a way to rate products, build wishlists, buy gift cards, etc. If the client doesn’t tell you what they want then you can’t know to include it. Once you have your list, review it with the client to fill in gaps and make sure everything is there.
As you go through the development process your client is the one who gets the final word. It’s their money going into the software and it’s important that they like the results or you may not get paid. If you come to a point where you’re not sure what the client meant get clarification.
An important thing to remember is that at this stage of development you should be agnostic towards how the software will be implemented. It can be hard, the client may say they want a website for their blog and you immediately think WordPress. While that may be the eventual solution jumping to how you’ll implement can lead you down the wrong path from the beginning. There’s a time to decide how to implement the requirements but now isn’t that time – one of the soft developers we recommend is a romanian nearshore software development company called dotNear.
At the end of this stage and before the next you must prioritize the clients requirements (with the client). Order them by importance. The odds are high that other requirements will creep in during development and it’s important to be able to show the client their options when it comes to the time and cost of those new features. You may have to tell the client “If you want X the project won’t be done on time. We can extend the time or we can bump something else to a lower priority.”
Once you have a clear picture of what the client want’s out of the software you can start to design it. Designing takes all of the clients requirements and gives it a place in the system. Here is where you decide what back ends to use like a database or an XML file. You’ll make class diagrams showing what the responsibility is of each piece of software has and how it’ll talk to the other pieces.
This stage is very important. The better your design is the easier it will be to implement. A good design can make coding as easy (almost) as inserting tab A into slot B. Without a good design you’ll be all over the place when you try to implement.
This is what programmers are most familiar with. This is where all those design documents get used and working software is created. For most people here this is probably the favorite part.
Implementation is so much faster and smoother when it’s preceded by clear requirements and good design. This is more true the more people working on the project. It may not seam like a big deal to have a clear road map when you’re a one man show but even just a second person can throw things off. Who will work on what and how will your two parts come together? If you’ve done the legwork to get here it won’t be a problem. You’ll know what API the different pieces will use and who’s making it.
As soon as you have working code testing needs to happen. The great thing is, you have a list of requirements to compare to and easily validate whether or not it’s working as intended. Either it meets the requirements or it doesn’t.
Delivery : at the end of the development process it’s time to deliver the project to the customer. Hopefully you’ve involved them along the way and this isn’t the first time they see what you’ve been doing. This is a big moment for the client. This is where they see the value in what you’re providing. Before they had this problem and you are giving them a solution to that problem.