Since I started to work as project manager always I have been wondering how to choose the right methodology considering different aspects like number of members in a team, timing , budget, etc. However, I never found a clear and right answer in each project in which I was involved.
First of all, it is necessary define two main concepts in software development: heavyweight and lightweight methodologies. Heavyweight methodologies are considered to be the traditional way of developing software. These methodologies are based on a sequential series of steps, such as requirements definition, solution building, testing and deployment. Heavyweight methodologies require defining and documenting a stable set of requirements at the beginning of a project. On the other hand, lightweight methodologies (also knows as “agile methodologies”) are a group of software development methods in which solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
Given the previous definitions , it’s possible find some common elements between these two approaches to manage and develop software: organizational culture, size of the project team, rate of expected change, primary project goal, requirement management , project communication and customer relationship.
This is only a general overview, in my next post I will discuss more in depth about each point and particularly when you should choose heavyweight or agile methodologies. Furthermore, I will discuss the main methods for both from the perspective of a junior project manager.