Blog

What is agile?

Antecedent

Previously, projects used to take considerable time, especially in the delivery process. At that time, traditional methodologies from other industries, such as the waterfall methodology, predominated. This modality involved planning the project in an initial stage, followed by its development, testing, deployment, and other phases in a sequential manner. This approach generated a long time lag between the request for the product requirement and its final delivery. Unfortunately, this did not allow the team or the product to respond nimbly to changes in the market or competition. These methodologies did not take into account the need for flexibility, as they usually established a fixed budget, a fixed deadline, an immutable team and specific deliverables on inflexible dates.

In February 2001, 17 programming experts, including the creators of Scrum, met to see how they could better serve their customers’ needs, reduce lead times and avoid rigidity in the face of change. This is how the Agile Manifesto was born

 

Agile Manifesto

We are discovering better ways to develop software both through our own experience and by helping others. Through this work we have learned to value:

  • Individuals and interactions on processes and tools
  • Software in operation on extensive documentation
  • Collaboration with the client on contract negotiation
  • Response to change about following a plan

That is, although we value the elements on the right (bold text), we value those on the left more highly.

 

¿Qué es la agilidad?

The Agile approach is not just a methodology, a framework or a specific process for software development; rather, it is a dynamic set of principles and values that underpin its philosophy. Unlike rigid and predefined structures, Agile embraces flexibility and adaptability as fundamental pillars. Rather than imposing strict rules, Agile encourages collaboration, effective communication and iterative delivery of quality products. By adhering to its principles, teams can respond nimbly to changing customer requirements and market conditions. This holistic approach transcends the realm of software development and extends to various business contexts, promoting an agile mindset that seeks continuous improvement and customer satisfaction at the core of any process. In summary, Agile is presented as a conceptual framework that drives agility and innovation in all facets of management and development..

 

12 Agile Principles

  1. Customer satisfaction
    • Principle: our top priority is customer satisfaction through early and continuous delivery of valuable software.
      • In order to build customer loyalty we seek to satisfy them with the product or service delivered, in this sense we focus on giving value from the first moment, taking into account their needs, at each stage of the project, through timely communication.

        Any change or adaptation is made if the result benefits the client, although in many occasions it is not so easy to carry out such changes and without failing to comply with the delivery deadlines already established; which, it is worth mentioning, will be continuous and in short periods of time, being able to detect, adjust or rectify the client’s perspective.

        Exemplifying:

        Suppose a customer wants to have a means of transportation. In a non-agile approach, a car would be built and, in each iteration, a part of the vehicle would be delivered: one wheel in the first, two wheels in the second, and so on until the car is complete. However, this methodology does not reflect agility, as the customer cannot use the means of transport until it has been fully assembled.

        Contrasting it with an agile approach, the first iteration would provide a skateboard, the second a scooter, and gradually, in successive iterations, move towards building a car. In each phase, the customer experiences tangible improvements in its transport capacity. This agile approach allows for continuous delivery of functional solutions, adapting to customer needs and preferences at each step, rather than waiting until the final product is fully developed.

  2. Be open to change
    • Principle: We accept that requirements may change, even at late stages of development. Agile processes leverage change to provide competitive advantage to the customer.
      • From experience we know that requirements can be modified, regardless of how far along the project is, using an adaptive methodology means reviewing and reacting quickly to changes; sometimes even the initial design is modified, the key is to take advantage of the change to provide a competitive advantage to our client.

        It is important to emphasize that the fact that they request a change gives us peace of mind that communication is flowing, so that we can understand the real needs of the client and make the necessary adaptations in time.

        Example:

        In the practice of delivering small functionalities, the flexibility to adjust the product according to the needs is observed. If, for example, a skateboard is initially provided and it is identified that a scooter would be more beneficial, an iteration is performed to improve the product. This approach responds to the premise of maintaining optimal usability for end users and ensuring continued customer satisfaction. Unlike waterfall methodologies, where planning is carried out in an initial phase, here the planning process is developed gradually. As we move forward in the project, we acquire greater knowledge about our users, customers and business model, allowing continuous adjustments and ensuring constant adaptation to the demands of the environment, which contributes to improving the quality of the product and the user experience.

  3. Frequent deliveries
    • Principle: we deliver functional software frequently, between two weeks and two months, depending on the Sprint of the project, it is always positive to have more iterations in less time.
      • The process is executed gradually, dividing the project in small parts, achieving deliveries in a few weeks, in this way the customer receives step by step the software code, being able to check its functionality continuously, in this way we can perceive if the product or service meets the purpose for which it was designed, the feedback in each sprint gives us the opportunity to adapt or move forward with the project.
  4. Collaborative work
    • Principle: Business managers and developers work together on a daily basis throughout the project.
      • In an agile environment it is required that all those involved interact on a daily basis, even if the activities are managed independently, and that everyone is aware of their tasks, without an authoritarian figure directing the management.

        It is recommended that work be divided, holding frequent follow-up meetings to coordinate efforts and better organize the work.

  5. Motivate the team
    • Principle: projects are developed around motivated individuals. They must be given the environment and support they need, and entrusted with the execution of the work.
      • Communication and team selection play an important role here. In agile environments, information must flow quickly and although all team members are self-managed, short but frequent meetings will serve to learn their skills, listen to them and motivate them.
  6. Open and direct communication
    • Principle: The most efficient and effective method of communicating information to the development team and among its members is face-to-face conversation.
      • Project members must be in continuous communication through different channels, however, sometimes face-to-face conversation is necessary and even if they are in different departments, levels in the organization or work remotely, it is necessary to have intermittent contact, in case doubts arise or information needs to be communicated.
  7. Simple language
    • Principle: Software in operation is the main measure of progress.
      • We want our clients to be involved in all phases of the project so that they feel committed and satisfied, avoiding delays or stagnation of the development, here the language is crucial, we must express ourselves in a simple way, avoiding technical details since most of them are not computer literate. Avoid technicalities to get the feedback we need, as they can lose the thread of the conversation, causing the message not to be understood or not to get through.
  8. Maintaining a sustainable pace
    • Principle: Agile processes promote sustainable development. Promoters, developers and users must be able to maintain a steady pace indefinitely.
      • The methodology is based on maintaining a sustained rhythm over time, where the software or service is developed and analyzed at each stage in order to make improvements, seeking an excellent result.

        A key factor in increasing productivity is to determine the tasks that provide the most value and complete them. However, we cannot get confused with time management, for example: working overtime to speed up a process, as this can affect quality and remember that the objective is to achieve a quality product or service that satisfies the customer.

  9. Pursuit of excellence
    • Principle: Continuous attention to technical excellence and good design improves Agility.
      • Design and technical excellence are important in agile projects, so it is reviewed and adjusted in each iteration, while the software is being developed, incremental improvements are made to ensure proper functionality and achieve excellence.

        The approach is proactive, team members are in constant pursuit of product or service excellence, therefore, the integration, testing and continuous improvement of software features greatly improve the final result.

  10. The simple and the brief
    • Principle: Simplicity, or the art of maximizing the amount of work not done, is essential.
      • The customer will feel satisfied and comfortable if the deliverables are on time and easy to analyze, resulting in an active and continuous collaboration.

        In a project, time is scarce, for this reason it is necessary to take advantage of it and manage it in a practical and simple way.

  11. Autonomous equipment
    • Principle: The best architectures, requirements and designs emerge from self-organized teams.
      • The fundamental idea is to create self-organized teams for the project to be successful, where the leader plays the role of a facilitator who distributes tasks and shares responsibility. In an agile environment all team members are responsible for the project, each member must feel respected and free to decide how it is more comfortable to perform their work, without forgetting that they must maintain contact, since no one can work in isolation.
  12. Feedback
    • Principle: At regular intervals the team reflects on how to be more effective and then adjusts and refines its behavior accordingly.
      • The feedback obtained from Stakeholders throughout the development process is crucial because we always seek to improve in each iteration and implement improvements, even if sometimes we think they are small or not significant enough, sometimes these adjustments make the difference.

In conclusion, the 12 principles of agility provide a robust and adaptable framework for software development and, more broadly, for project management in a variety of contexts. These principles focus on flexibility, collaboration, and delivering consistent value to the customer. The essence of agility lies in responding to change effectively, prioritizing customer satisfaction, fostering communication and collaboration within the team, and continually striving for technical excellence. Adopting these principles involves an iterative and incremental approach, allowing for adjustments as a better understanding of the project and its users is gained. Ultimately, agility is presented as a dynamic path to success, where adaptability and continuous improvement are key to meeting the evolving challenges of software development and project management.