Be Agile In Learning Agile!
What led to Agile in the first place?
It was the period of waterfall techniques before agile. Before any coding could begin, the waterfall process required a great deal of documentation. Business requirements are first documented. The technologist created a technical requirements paper based on the business requirements. After that, there’s coding, integration, testing, and deployment. This entire process will most likely take over a year. However, the market, and consequently requirements, change frequently. Changes were quite costly to implement.
Iterative Incremental model
The construction of an iterative incremental model begins with a few high-prioritized needs. The deliverable is a working product increment. Based on the functionality of the increment and any or all of the new, modified, pending requirements, the next set of requirements is given to the subsequent iteration. The product’s working increment is improved as a result of the subsequent iteration. This process is repeated until the product satisfies all the specifications.
The model’s fundamental flaw is that the users are not involved in the development process, resulting in communication gaps and erroneous functionality.
Factors which caused the rise of agile
- Requirements changed rapidly.
- The team was more open to experimentation and adapting end-user demands.
- Despite having a large budget, companies were unable to attract talent if team members were regarded as subservient coders.
- They observed that when they committed to a brief period of time, such as 1–4 weeks, they weren’t bad at delivering what they claimed.
Agile is built on an incremental iterative methodology. It supports rapid and flexible response to changes and promotes a time-boxed iterative approach. It is a theoretical framework that does not prescribe any specific practises for a development team to follow. Scrum is a framework for agile development that specifies the principles that must be followed.
- Individuals and interactions over process and tools.
— self-organization and self-motivation of the team members
— continuous interaction for work, clarification, information among the team members
- Working software over comprehensive documentation
— Delivery of working software at short duration intervals helps gain customers trust and assurance in the team.
- Customer collaboration over contract negotiation
— Constant involvement of customer with the development team ensures communication of necessary modifications.
- Responding to changes over following a plan
— Focus on quick response to the proposed changes, which is made possible with short duration iterations.
The agile manifesto emphasizes the importance of trusting people and their capacity to collaborate.
Agile’s guiding principles
Frameworks for agile development
Scrum is the most widely used framework, and it focuses on task management in a team-based development environment. Scrum, in its most basic form, requires a Scrum Master to create an atmosphere in which:
- The work for a complex problem is ordered into a Product Backlog by a Product Owner.
- During a Sprint, the Scrum Team turns a selection of work into a value increment.
- The Scrum Team and its stakeholders review the results and make any necessary adjustments for the next Sprint.
- And then do it again.
Excessive Programming (XP)
It promotes frequent releases with short development cycles, with the goal of increasing productivity and introducing checkpoints where new client requirements can be implemented. XP takes a fresh approach to the analysis, development, and testing phases, resulting in a significant improvement in end-product quality.
Test-driven Development (TDD)
It is a software development technique based on the repeating of a very short development cycle: first, the developer creates an automated test case that outlines a desired improvement or new function, then produces the least amount of code necessary to pass that test, and last, the new code is brought up to acceptable standards.
It is a production practice that considers the expenditure of resources for any goal other than the creation of value for the end-customer to be wasteful, and thus a target for elimination. Working from the perspective of the customer who consumes a product or service, the term value is defined as any action or process that a customer would be willing to pay for.Lean is all about keeping value while doing less effort. Lean development can be summed up in seven concepts that are quite similar to lean manufacturing principles in concept:
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- Optimize the whole
It’s a system for increasing and maintaining productivity. Kanban is one way for achieving Just-In-Time (JIT), which is a strategy used by businesses to control inventory costs. Kanban evolved into a useful tool for managing a production system as a whole, and it has proven to be a great approach to encourage progress. Kanban is a continuous process in which objects are placed in queues, moved from one to the next as they are completed, and their spot is replaced by another.