- Rules, values, and assumptions
- Traditional and modern programming: what exactly has changed
- Traditional and modern programming: Cascade Methods versus Agile Methods
- How we do IT? We choose Agile methodology
Agile work methodologies are gaining more and more popularity, especially in the IT industry. They are ideal as a product management process in which teams are self-organizing and cross-functional. What advantages give Agile Methods and how Agile Software Development looks in practice, explains our Agile Project Manager, Sylwia Stańczak.
Rules, values, and assumptions
Agile philosophy is a way of thinking and working. In 2001, traditional methods became insufficient, so a group of 17 American programmers created the Manifesto for Agile Software Development in response to the rapid development of the IT branch and programming market. Manifesto consisted of 12 rules and 4 main values which should guide teams in their daily work:
- people and interactions over processes and tools,
- working software over extensive documentation,
- cooperation with the client beyond formal arrangements,
- responding to change over strictly following a plan.
According to agile philosophy, the elements on the right are still valuable, but those bolded on the left are more valuable to programmers.
Traditional and modern programming: what exactly has changed
-Agile completely changed the perception of product management. According to its assumptions, software development should be more important than paperwork and bureaucracy, and customer satisfaction is a priority for the team. Traditionally, the scope of the contract, budget and previously defined functionalities were paramount - any changes required formal matters to be dealt with, changes to the contract's provisions or were simply almost impossible to implement. It was entirely destructive for the product and cooperation with the client. - says Sylwia.
Traditionally, the essence was to stick with the plan from the very beginning till the end of the project. As an Agile part, in the following stages of work, each of which lasts a maximum of 4 weeks, you can adjust the functionality of the product on an ongoing basis. It will be implemented after the customer's comments and feedback at the end of each iteration.
Agile perspective established customer-oriented approach and customer participation in the works: client receives the product cyclically, in short periods, and checks whether it meets his expectations. Before, the customer used to receive the final product upon completion of any design work. It was usually too late to change anything.
Another change is a motivating work environment. The team can see that it has a tangible impact on the product development process, and each of its members can suggest new solutions. - I see that people really appreciate this. Previously, the architect was the one who used to invent the product. The developer did not have an impact on the product development and arrangements with the client. Now everything is different. - notes our PM.
A crucial role in Agile is face-to-face communication and relations between team members. Only direct contact and good communication can guarantee correct information flow in the team and proper cooperation.
There is also an emphasis on cross-functionality and self-management of the team. From the beginning of work, throughout the entire work process on the product, each of the specialists closely cooperates with the rest, and everyone has the competence to produce products. The team regularly improves performance and analyzes its work: it is well visible in Scrum. Its last stage is a retrospective phase to look at the process during the last sprint: relationships in the team, tools, practice, etc. Based on the analysis, the team can add an improvement at the next stage of product development.
-A premise is a flexible approach to changes and design while maintaining complete transparency towards all team members about the stage of the product. Change is an opportunity to make a better product. Traditionally, when the framework of the project and functionalities were defined, possible change risked breaking the plan defined at the very beginning. Now, planning is done at the beginning of the four-week phases. Each of them may be followed by a change in the direction of the product's development, which is a chance to gain a competitive advantage. - notices Sylwia.
According to cascade methods, the relations in the team were not so important. Sometimes team members did not even know each other, as they were responsible for carrying out only their narrow part of the work and did not have a chance to communicate. Design work began with the analysis stage, mainly attended by system architects or analysts who strictly adhered to the initially developed plan. After completing their work, they transferred the responsibility for the project to another team. The traditional approach focuses on achieving predetermined functionalities based on a plan created at the beginning of the project. Individual stages follow one after another: analysis, design, programming, testing, etc. That is true when certain things cannot be done simultaneously (for example, when building a house).
Traditional and modern programming: Cascade Methods versus Agile Methods
Disadvantages of traditional methodologies:
- lack of flexibility in the event of budget changes and differences
- the high importance of bureaucracy and documentation at every stage of work
- product release at the end of the entire process
- the client does not participate in the process, does not give feedback, and does not have an influence on what product will get
Advantages of Agile methodologies:
- focus on business value and the goal to be achieved
- the client actively participates in the progress of work on the product
- faster product release
- the sense of responsibility for the created product among team members is growing - everyone has their share in the work at every stage
- a quick sample of the team's capabilities and checking if its idea is feasible
- possibility of introducing current changes
- client directly participates in the process
- ongoing feedback from the client - the developer can see if they like the project
- better relations with the client due to close cooperation what can pay off in the future with further cooperation
- satisfaction with work on the product, cooperation with the client, and influence on the shape of the product
How we do IT? We choose Agile methodology
In Agile Software Development, we choose a goal, our point of reference, and define the product's functionalities. We can say for sure that at the same time, we have massive freedom in creating the product: if we find a different way to achieve our goal during the sprint phase and presentation, it is implemented in subsequent stages. It helps measure the product's progress by delivering working software that has business value for the customer. And that is what is the essence of the Agile Software Development.