Achieving An Agile Mindset With Icagile
Agile system is a clever and efficient way to optimize any type of process, creating a constant feedback loop between the developer team and client.
This is my personal notes from my certification in Agile.
1. Achieving an Agile Mindset with ICAgile
The keys to understand Agile system:
- Planning your project adaptively
- Focusing on value
- Enabling effective collaboration
- Creating short feedback cycles
Comparing the Waterfall system to Agile
Waterfall: Structured approaches define a specific set of steps that must be followed exactly. Think that is a “close model”. It is defined as structed development project. Waterfall projects can not progress without the other stage be finished and is hard to understand the timeline during the execution of the project.
“Team be not designed without the analysis be done”, it means the creation of a team depends of a preview planning all stages of the project.
Waterfall Process: Requirement analysis → Design: Creating of software and Hardware of what need → Development: Using what you designed and created the componentes → Testing: solution created. → Bug Fixing.
Waterfall flowchart
Agile Approach: best way of learning through experimentation. Adaptation the project planning base in the results of that learning. → Feedback cycles.
Agile flowchart
→ An emphasis on short feedback cycles is a hallmark of an agile approach
Agile flowchart
→ Many Cycles for each task.
→ Frequent feedback cycles can encourage greater customer involvement.
Common Challenges of Agile Approaches.
- Expectations of collaboration can be demanding
- Can be challenging for distributed teams(Example teams across the globe)
- Heavy customer involvement is expected(sometimes the clientes don’t have time)
Waterfall: Encourages the team to adhere to the plan → Planning
Agile approach: Empowers the team to adapt the pan to match reality → Collaboration
2. Overcoming the Challenges of a structured development process (Waterfall).
Don’t have constant feedback or is difficult to incorporate. Need to preview steps done.
If in the testing fases the client says that something was misunderstood is difficult to fix it.
However in Agile works in small batches, sometimes is just a single feature in each time, and sometimes they invite the cliente. With this feedback the team learn and adapt in the next feature.
→ Frequent feedback cycles can greatly improve the accuracy of what your team delivers.
→ Understand the risk increases the longer you wait to validate what your tem has produced. → constantly feedback helps
→ ≠ of Waterfall: That delay the feedback of risks. Any delay or all cost of the process can risk all the value of the process will be lost.
Waterfall progress
Agile however: incremental delivery, small parts of the product is delivery to the customer. The companies can start see the revenue of the investment in the project. If the project is cancel the value can be salved or used in other project.
Agile progress
→ Revenue generated from an early release can offset the cost of later development.
→ Structured → fixed bagged, project schedule and customer satisfaction.
→ Many Agile projects actually finish under budget and ahead of schedule.
Agile Methodologies:
SCRUM: is framework for developing complex projects(Focuses on feedback cycles)
Jeff Sutherland creator.
Scrum teams combine and incremental and iterative approach using Sprints → small incremental pieces and the feedback of each piece is used to the work performance the next interactions.
Formalizes the application of feedback from previous Sprints into later Sprints → Define time box where the teams works to deliver an incremental product to the customer. Can be 30 days, more commons are the 1 or 2 weeks.
Extreme Programming(ExP)
Kent Beck creator.
Emphasizes short feedback cycles.
→ ExP: Focuses on the technical side of product delivery.
→ ExP: Defines 12 specific practices teams must follow.
→ Scrum an Extreme Programming can coexist quite well → SCRUM as overall and ExP with the 12 rules (Many people use both)
Feature-driven Development(FDD)
Jeff De Luca creator.
Emphasizes the product the team is creating(Emphasizes the product)
Understand better the product → Inicial domain model to a product and divide in features no more than 2 weeks to deliver. Each feature follow a specific process and in the overall → Enfases in Rule like UML and modeling for exemple.
→ Defines a strict process the team must follow, where 2 weeks time of the features.
→ Designed with scale in mind.
Agile Method flowchart
3. Making Sense of the Agile Manifesto:
The Agile manifest is composed by a set of 4 values and 12 principles.
Values:
- Individuals and interactions over processes and tools :
- A team of talented individuals is of the utmost importance
- Processes are only support for a talented team
- Successful projects only occur when talented individuals have learned to work as a team
- Well-refined processes can serve as a multiplier for a successful team
- Working software over comprehensive documentation
- The True measure of a project’s success is whether it provides value to its customers
- Only working software can tell you whether the software provides value
- A hallmark of agile methodologies is the inclusion of fast feedback cycles →
- The only way to get actionable feedback is to put software in your customers’ hands
- Customer collaboration over contract negotiation
- Customers and teams should collaborate to find a path that is mutually beneficial
- Healthy relationships between the customers and team can shorten feedback cycles
- Frequent collaboration helps customers become more vested in project outcomes
- Responding to change over following a plan
- Agile methods encourage you to embrace unexpected developments
- As complexity increases the likelihood of unexpected events also increases
- Adaptive planning results in a more realistic plan for your projects
- Adaptive planning better positions your team to take advantage of emergent opportunities
4 Values of Agile Manifest
Individuals and interactions over processes and tools.
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Principles:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
- Your team must deliver what customer is expecting
- This is best achieved through frequent feedback cycles
- These cycles should be continues
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Change is inevitable
- Adaptive planning is essential to embracing this change