Choosing the right SDLC for your project is extremely important to the success of your project. SDLC methodologies are like aiding tools which facilitate in smooth software development as well as implementation of software project management best practices. There are many types of SDLC methodologies such as Agile Methodologies, Waterfall Model, XP, RUP, etc., but to know which one suits best to your needs is crucial to determine the success of your project.
Choosing wrong SDLC may hamper
- Quality of your software
- Software project management best practices
- The budget of your project
- Meeting project deadlines
- Pre-set project goals
But the question is how do you choose the right SDLC for your software project?
Though every SDLC model is touted to have positive and negative characteristics, these characteristics surface more in context of the nature of your software project. It is ideal to say that you may choose one SDLC model over others for your type of software development project, but (as experts would agree) there is no one SDLC model that may perfectly fit your project. You may have to define your own SDLC methodology picking and choosing the processes from two or more SDLC methodologies and then arriving at the one that suits your project the best. In short, you may have to customize your own SDLC model.
We can draw a corollary here from the use of a mechanic tool. We have a very simple and small kit for screw drivers of different shapes and sizes (see the image). The base (the handle) of the screw driver remains same whereas the top portion of the screw driver can be chosen from five or six different options, based on the type of screw that needs to be fixed. It’s that simple. To customize your SDLC methodology you need to define the ‘base’ which can be kept constant. This ‘base’ can be one of the SDLC methodologies itself from the many that exist today. You can then define which best practices can be adopted from other SDLC models which can lead to superior software development in your organization.
This leads us to ask – What are the factors that should be considered for choosing the SDLC? Here is the list:
- Complexity of the project
- Nature of the project development – whether it is a software maintenance project or an embedded product development
- Size of your organization, the project and the team
- Structure of your team – whether it is in house or geographically distributed
- Alignment with your organization’s stage of business and its business strategy – whether your organization is a startup with a new product launch or an established enterprise that is releasing a new product feature
- Engineering capabilities of your developers
- Culture of your organization – whether the teams are used to the collaborative work culture or not, as adopting some SDLC methodologies like agile, demands collaborative work culture
- The industry of your business, as different industries may have very different software development needs and objectives
This approach to choosing SDLC for your project requires you to objectively assess various SDLC models against the business context of your organization. By business context I mean factors such as your industry requirements, nature of the project and the business stage of your organization. Assessing the SDLC models against these criteria will help you align your business objectives. It will also help you increase developer productivity and facilitate in delivering superior software quality.
What do you think?