Agile in IT is currently a very fashionable buzzword that we meet in a variety of places. We often hear about agile blogs, companies, software house agencies or contracts. According to its textbook definition agile is a type of software development based on an iterative-incremental model, created as an alternative to the waterfall methodology (classic model). The most important assumption of the method is the observation of customer expectations or changes in the environment and an agile response to the changing circumstances.
The history of Agile in IT
Agile was invented in 2001 by a group of programmers during a ski trip in the mountains of Utah. In addition to the fun of skiing, 17 practitioners debated the current problems of the cascading model of software development. The main problem with the Waterflow approach was the flow of information and reaction to changes between the business (customer expectations) and the project team. Before the introduction of Agile in IT, the development implementation was estimated in advance, which resulted in a strong underestimation during the duration and implementation of the project.
Introducing changes and corrections was sometimes difficult and time-consuming. The frustration of the teams grew, and the projects often did not come to fruition or ended up with a poorly functional product, which was not adapted to the realities of the market or competition.
The gentlemen quickly identified the problem as a project management failure. The problem arose from the sales stage, i.e. estimating the entire project in advance, to its release. After three days of joint discussions, the group of developers came to an agreement, thus creating a set of rules known today as Manifesto for Agile Software Development – a set of 12 principles that define an agile approach to software management and development.
Agile vs Cascade waterfall
Approach
| Waterfall (cascade approach) | Agile in it (agile approach) |
|
|
The Agile Manifesto
1. Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
2. Welcome changing requirements, even late in
development. Agile processes harness change for
the customer’s competitive advantage.
3. Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale.
4. Business people and developers must work
together daily throughout the project.
5. Build projects around motivated individuals.
Give them the environment and support they need,
and trust them to get the job done.
6. The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence
and good design enhances agility.
10. Simplicity–the art of maximizing the amount
of work not done–is essential.
11. The best architectures, requirements, and designs
emerge from self-organizing teams.
12. At regular intervals, the team reflects on how
to become more effective, then tunes and adjusts
its behavior accordingly.
Stages of project implementation based on agile in IT
Based on the agile methodology in IT, the following stages are followed one after the other:
- plan (planning)
- design
- develop (programming)
- test (testing)
- release (implementation)
- feedback
The steps above are designed to create a repeatable cycle until the task is completed. The next cycles are to serve the possible correction of the prepared task on the basis of information from the client or flexible introduction of changes created at the development stage.
Planning
The main focus of the stage planning is to gather all the requirements for the product. Thanks to this, we are able to define the story of the project and all the necessary functionalities of the product from the customers’ business point of view. This stage is crucial for the development of the entire project, therefore it should be carried out with due diligence. So that the client’s requirements are thoroughly understood and documented. Communication and establishing of the cooperation rules between the client and the project team, schedule, communication and budget are also of paramount importance.
Projects
Designing is a stage related to mapping customer requirements in a graphic form. It is also a key element from the point of view of later development. At this stage, all modules or details should be clarified.
Programming
The stage aimed at implementing the programming of previous graphic designs and established functionalities.
Testing
Testing of a given element in terms of compliance with the specification and customer requirements. Verification in terms of user behaviour and compliance with design assumptions.
Feedback
Providing feedback from the client to the project team. Feedback most often concerns possible errors resulting from additional customer tests, changes in the customer’s expectations regarding the final appearance / functionality of a feature or alterations resulting from changes in the market / law / competition / new product, etc.
Summary
In a very fast and dynamically changing environment, flexible software development with focus on quality and customer satisfaction is now a standard at Software House and agencies. It is worth noting that working using the agile methodology is based primarily on team trust, flexible approach to changes, maintaining customer satisfaction, simplicity, and working software.
Sources:
https://pl.wikipedia.org/wiki/Programowanie_zwinne
See also categories: Social Media in eCommerce | PPC Campaigns | Shopify technologies | eCommerce SEO | E-mail marketing | eCommerce project management | eCommerce marketing | eCommerce management | eCommerce development | eCommerce b2b | eCommerce automation | eCommerce analytics | Content marketing | Case Study eCommerce | News | Other


