Product Development
Comparing Agile methodologies
Main Agile methodologies
Agile is an approach to software development that seeks the continuous delivery of working software created in rapid iterations. Let us compare some of the most used Ajile Methodologies here.
1. Scrum
Scrum is, undoubtedly, the most used of the many frameworks of the Agile methodology. Scrum is characterised by cycles or stages of development, known as sprints, and by the maximisation of development time for a software product. It is usually used in the management of development projects for software products, but it can also be used in a business-related context.
Every day there are small 15-minute meetings, the daily scrum, that take the role of synchronising activities and finding the best way to plan the workday.
Advantages
|
Disadvantages
|
• There is a lot of motivation in teams, because programmers want to meet the deadline of every sprint.
• The transparency allows for the project to be followed by all members of a team or even an organisation.
• The focus on quality is a constant in the scrum method, resulting in fewer mistakes.
• The dynamics of this method allow developers to reorganise priorities, ensuring that sprints that have not yet been completed get more attention
|
• The segmentation of the project and the search for agility of the development can sometimes lead the team to lose track of the project as a whole, focusing only on one part.
• Each developer's role may not be well defined, resulting in some confusion amongst team members.
|
2. Kanban
The word Kanban is of Japanese origin and its meaning is linked to a time concept, “just-in-time”. In practice, the Kanban method exists in a board or table (Kanban board), divided into columns, that shows every flow of the software production. As the development evolves, the information contained in the table changes, and when a new task comes into play, a new “card” is created.
The Kanban method requires communication and transparency so that the members of a team can know exactly at what stage the development is and can see the status of the project at any time.
Advantages
|
Disadvantages
|
• Ability to view all tasks of one project (Completed, In Progress or In Testing, for example).
• It is possible to limit the number of running tasks (that is, the amount of work, bearing in mind its resolution or deliverability).
• Focus on the duration of a cycle – how long it takes a task to go from backlog to the final stage.
• Allows continuous deliveries.
|
• It is possible for members of a team to misinterpret the information show on the Kanban Board, especially when it is revealed as outdated.
• Since there are no timeframes in Kanban, you can face time related problems, such as delays, associated with each and every stage.
|
3. Extreme Programming (XP)
This is a typical Agile Development framework, developed by Kent Beck, and can be adapted to development companies of various dimensions. It is a methodology that emphasises values such as Communication, Simplicity, Feedback, Courage and Respect and prioritises customer satisfaction over everything else. This methodology offers trust to the developers by motivating them to accept changes in the customer’s requirements, even if they arrive in a later stage of the development cycle.
Teamwork is extremely important in XP, since when there is a problem, it is solved by the whole team of managers, developers or customers. They are all essential pieces of the same puzzle, hence creating a fertile environment for high productivity and efficiency in a team. In Extreme Programming, software is tested from day one, collecting feedback to improve development.
Advantages
|
Disadvantages
|
• The simplicity of the written code works as an advantage, since it allows for its improvement at any given time.
• The whole process and the whole cycle of XP development is visible, therefore creating goals for developers and showing results in a relatively fast way.
• Software development turns out to be more agile than in other methodologies, precisely because of the constant testing.
• XP also contributes to uplifting the talent of the teams and to their withholding.
|
• The extreme focus on code can lead to less importance being paid to design, hence requiring extra attention to that matter.
• This framework may not work in the best way possible if all team members are not working in the same geographical area.
• In XP projects, a registry of possible errors is not always maintained, and that lack of monitoring can lead to similar bugs in the future.
|
4. Lean Development
Lean Development is a methodology that comes directly from Lean Manufacturing, created by Toyota, and applied to software development. This method offers a conceptual framework and follows values, principles and good development practices that can be applied to an Agile development approach.
There are seven essential principles: Deleting the things that do not matter (everything that does not bring effective value to the customer’s project is deleted). Quality development (creating quality in development requires discipline and control of the quantity of residuals created). Creating knowledge (the team is motivated to document the whole infrastructure to later retain that value). Differing commitments (this point encourages the team not to focus too much on planning and anticipating ideas without having a prior and complete understanding of the requirements of the business). Fast delivery (deliver value to the customer as soon as possible). Respecting the team (communicating and managing conflicts are two essential points). Optimise the whole (the development sequence has to be perfected enough to be able to delete errors in the code, in order to create a flow of true value).
Advantages
|
Disadvantages
|
• Allows the team to delete superfluous activity, therefore saving time and money.
• Decreases the time needed to deliver functionalities, since it prepares the development team in the decision-making process, hence increasing general motivation.
• Easily scalable methodology and easily adaptable to projects of any dimension.
|
• It is very dependent on the development team’s ability and on the following of Lean principles, which means it will be necessary to have extremely dedicated and talented developers.
• It is easier to lose focus, since various tasks are divided into a number of elements.
• It requires some documents, in particular on the characteristics of the business which is the subject of the work. Otherwise, there is a risk that the development may be done incorrectly and present errors.
|
5. Crystal
This is a family of Agile methodologies which includes variants such as Crystal Clear (up to an 8-person team), Crystal Yellow (up to a 10 to 20-person team), Crystal Orange (up to a 20 to 50-person team) and Crystal Red (for big teams with 50 to 1000 people). Crystal focuses on principles such as People, Interactions, Community, Skills, Talent and Communication, aiming to deliver the best possible software development process. The core of this development process is interaction and symbiosis, which have to exist between the people allocated to the projects and processes in order to bring efficiency to the development.
According to its founder, Alistair Cockburn, “Crystal is a family of software development methodologies, which works with the power invested by people, and is extremely light and stretch-to-fit”. Basically, Cockburn believes that the talent and the way team members interact brings benefits for the whole project.
Advantages
|
Disadvantages
|
• It ensures frequent deliveries, in order to identify eventual problems in every stage.
• There is always space to improve characteristics, taking some time from software development and allowing for a discussion about how to perfect processes.
• Allows for a closer communication and promotes interaction and sharing of knowledge between team members.
|
• The fact that there are variants in the methodology family means that the principles might vary with the size of the team and the size of the project, resulting in projects that might not be so straightforward.
• It might not work in teams scattered through different areas, because of the constant need to communicate and reflect.
• Planning and development is not dependent on the requirements.
|