Generative AI
ChatGPT and Generative AI – why NOW is the time to understand them?
Agile methods evolved in the late 1990s. They were a polemic against the increasing reluctance of companies and project managers to use a rigid, linear cascade method (Waterfall). In an ever-changing business environment, they did not work particularly well in the IT industry. The creation of Agile has helped to overcome new challenges faced by the field of technology.
In a traditionally managed organization, senior management is generally responsible for making decisions. In the case of complex strategies and resulting problems, the answers also come from above. Such a situation creates a considerable challenge and a risk for leaders and project managers.
The new management model, so-called agile, initially referred to software development. Nowadays, more and more organizations decide to transfer Agile's ideas and techniques to other fields of activity.
In an agile organizational structure, the priority is teamwork based on direct communication between stakeholders and managers. Encouraging the whole team to experiment and make hypotheses becomes a kind of an organizational exercise.
The complexity of present-day projects makes agility work in dynamic environments where there is potential for change and evolution of requirements, understood as requirements management. Project members are entrusted with the competencies necessary to complete each of their cycles. Delegating so much responsibility for the created products to project teams has a positive impact on employee motivation.
Representatives of new ideas, mainly in the United States, have been looking for an alternative approach to the software development process for years. In 2001, the pioneers of change met at a conference to create a joint agreement.
Agile, as a set of principles, is a great father of all agile methods
It is worth noting that since Agile came to life at the conference it has been referred to as a project management methodology, when in fact it is not. It is more of a software philosophy than a description of a ready-made process that applies directly to the project.
Agile is based on the Agile Software Development Manifesto – a declaration of publicly available principles and values for all agile methods. According to the Agile Manifesto, when creating software, better methods are discovered, and its most essential assumptions state that:
When talking about Agile in the context of the design process itself, adjectives like flexible, transparent, open, iterative are usually mentioned. Agile projects are characterized by several tasks that are developed, performed, and adapted to the situation but are not a pre-planned process.
Being agile gives teams a chance to react to unpredictability through incremental, iterative work processes. This involves creating a step-by-step plan, rather than deep and linear planning at the beginning of the project. It focuses on continuous improvement and speed.
Agile: flexible, transparent, open, iterative
The elements influencing the project are unpredictable; therefore, agile methods focus on adaptation to changing situations, appropriate, and continuous communication both among the project team and between them and their client.
Although the level of flexibility in Agile is usually positive, it also involves some compromises. Setting a delivery date can be difficult, documentation can be incomplete, and the final product can vary significantly from the original.
There is quite a smooth agreement between the project originator and the client on agility. The assumption that agile is valued by both sides for not being Waterfall-like and understood as doing more and faster, with less and less effort, may, in practice, disappoint the latter. Although it may turn out to be faster, more profitable, and less risky for companies that struggle with a variety of uncertainties and difficulties in their field of business, agile's flexibility will be convenient for them.
Agile means flexibility for the project’s client, which gives them a chance to change their mind frequently during the project. The customer may then feel that the contractor will do more for less; or that he will never make the final decision because they may change their mind until the last moment. But this level of flexibility is always expensive. The client may, yes, change his mind, but it takes time, and time costs money.
The client must be active at all times during the project, have all the permissions to make decisions, provide fast and real-time feedback to keep the work in constant motion. These conditions may be difficult to fulfill in hierarchical and management-oriented organizations.
The customer must answer himself the question whether he trusts the designer enough to pay for a possible failure on the road to success. Agile, in turn, requires maturity from customers – they should understand that with agile, it is not possible to determine precisely, what they will get, nor when they will get it. Still, with a certain amount of trust and systematic cooperation, designers will do their best.
As a set of principles, Agile is the great father of agile methods. Agile is, therefore, a generic term used to designate other Agile implementation concepts, including Scrum, Lean, eXtreme Programming (XP), Kanban, and Scrumban.
Agile projects can be managed using the selected version. Some focus on speed and performance, such as Lean or Kanban, others on improving communication and teamwork, such as Scrum. Others focus on rules and processes, such as XP, and others mix these elements, such as Scrumban. We have described them in detail in the separate article.
Project management methods in IT are divided into traditional (cascade) and modern (agile). Read about traditional methods such as Waterfall or PRINCE2.
What is Web Accesibility? What guidelines are included in WCAG? How can we make internet use easier for people with disabilities? Read in the article.