SDLC Methodologies

In my previous article, I have told you about Software Development Life Cycle, what it is and what are the roles in an SDLC. In this article I want to tell you about the methodologies that can be used in SDLC.

Let’s start with the beginning, and talk about what a methodology is. According to the Cambridge dictionary, a methodology is a system of ways of doing, teaching, or studying something. Another definition says that a methodology is a set of methods used in a particular area of study or activity. So just to make it simple, a methodology is in my opinion a set of guidelines for studying, teaching, working or performing other activities that need to follow a plan.

In IT, methodologies are a set of strategies and approaches which define the process of developing a software, creating a proper environment for delivering the expected results in the planned timeline.

In SDLC, there are various methodologies that can be used:

  1. Waterfall
  2. V-Model
  3. Incremental
  4. RAD
  5. Agile
  6. Iterative
  7. Spiral
  8. Prototype
  9. DevOps
  10. Lean
  11. Big Bang

The most common methodologies encountered in SDLC are Waterfall and Agile, but choosing the right one depends on the type of business you have. If for some projects Agile will bring success, for others it could not be such a good idea. So choosing the right methodology is the key to the success of the project.

Things to take into account when choosing the methodology:

  • Size of the project – If the project is very large, waterfall might not be very useful, because it is pretty inflexible and hard to manage
  • The changes that might appear during the process – If often changes are forseen, then you should choose a more flexible methodology, because changing in the middle of the development process in an inflexible one implies changing documentation, timeline, and even resources, which might increase the actual costs of the project
  • Cost of the eventual delivery delays – If the results must be delivered fast, then a methodology to sustain rapidity of the results would be suitable. Otherwise you might come across to making some promises you can’t keep and lose your clients
  • The size of the team – The larger the team, the harder to manage. You should take into account assigning tasks, making sure the deadlines are met and that the plan is followed
  • The technical knowledge of the team – If you don’t choose the right methodology in this case, you risk having a product that cannot be developed. You must create the proper environment to ensure that the team has the means to study and adapt during development
  • Lessons learned from previous projects (if any) – If you have passed through some previous projects, than you should make an analysis. What brought you success, what went wrong, what should you improve?

This are some minimal information about the SDLC methodologies. I will come back with some future articles in which I will provide detailed information about each one, so stay tuned.