What Is An Agile Methodology?
An agile methodology is a set of agile techniques applied according to a more or less rigid strategy, aimed at improving the productivity of a team.
There are many techniques a team can adopt to become agile. The most important thing is not to apply many of them, what we are going to learn during this course is what they are and how they can help a team to function better as such. In this unit we will review some of the most widely used agile methodologies, formed by strategies and techniques of various kinds (not everything is labeled “agile” but many “details” can be used to streamline teams).
Each team is made up of people with different qualities, whatever the members of your team are, surely you will always find a technique or a set of them that achieve a better functioning of the team in a given project.
Next we will see a brief description of some of the agile methodologies most used by software development companies.
- Kanban is basically a blackboard with different columns adapted to the characteristics of the project in which cards (post-its) are placed with the tasks to be carried out, the columns are changed according to the actual process of the project (they are placed in the column “In process” when you are working on that task, they move to “With impediments” when an impediment is found to carry it out, they move to “Finished” when it is finished .).
- One of the agile principles encourages ” face-to-face ” team meetings . It is evident that it works in teams that coincide in space and time, the physical contact between the members of a team provides more information than the virtual contact provided by the multiple devices that we have interconnected.
- However, in highly mobile or geographically dispersed teams, it is necessary to resort to online meetings, either with the use of the telephone, videoconferencing .In these cases it is preferable to have a distributed Kanban board, in which all team members can intervene and the rest members of the company (or the world as is the case of Kanban of Trello development ) can see the real progress of the project.
- Extreme programming or eXtreme Programming is a software engineering development methodology formulated by Kent Beck
- It is the most prominent of the agile software development processes. Like these, extreme programming differs from traditional methodologies primarily in that it places more emphasis on adaptability than predictability.
- Proponents of XP view requirement changes on the fly as a natural, unavoidable, and even desirable aspect of project development.
- They believe that being able to adapt to changing requirements at any point in the life of the project is a better and more realistic approach than trying to define all requirements at the beginning of the project and then invest effort in controlling changes in requirements.
2. Goals To Apply XP
- Any team that applies XP to improve its productivity, I will seek the following objectives: Establish the best Software Engineering practices in project development. Improve project productivity. Guarantee the Quality of the Software by developing, making it exceed the client’s expectations.
3. The 5 Basic Principles of XP
- The basic principles of extreme programming are: simplicity, communication, feedback, courage and respect.
We Are Going To Detail These 5 Principles:
- It is the basis of extreme programming. Design is simplified to speed development and ease maintenance. A complex code design together with successive modifications by different developers make the complexity increase exponentially.
Also Read : All You Need To Know About Workflow
- It is done in different ways. For programmers, the code communicates better the simpler it is. If the code is complex you have to make an effort to make it intelligible.
- Self-documenting code is more reliable than comments as comments quickly become out of date with code as it is modified. Only what is not going to change should be connected, for example the purpose of a class or the functionality of a method.
- As the client is integrated into the project, their opinion on the status of the project is known in real time.
- One of them is always to design and program for today and not for tomorrow. This is an effort to avoid getting bogged down in design and requiring too much time and work to implement the rest of the project. Courage allows developers to feel comfortable rebuilding their code when necessary.
- It manifests itself in various ways. Team members respect each other, because programmers cannot make changes that cause existing tests to fail or delay the work of their colleagues.
- Members respect their work because they are always striving for high product quality and searching for the optimal or most efficient design for the solution through code refactoring. The team members respect the work of the rest by not doing less to others, a better self-esteem in the team raises their production rate.