4 bodies of SAFE
lean, Agile, System thinking and Devops
Evolution of Agile methodology
Born out of Manufacturing practices
- Mass production(Henry Ford) => Eiji Toyoda ==> Taiichi Ohno ==> Lean Way
- Goals - make product faster, Cheaper, Quality, Verity
- Balanced productivity and Quality
Lean
- Framework for creating an efficient and effective organization
- Based on fundamental idea of respect for people
- Trust > Empower > Respect > Learn > Grow > Pride
- encourage the practice of continuous improvement
- has five principal (From "The machine that changed the world")
Define value
- value is what customer is willing to pay for
- Identify all the activities that contribute to these values
- reducing and eliminating unnecessary process and steps
- ensure that the run smoothly without interruptions or delays
- limit inventory and work in progress
- continuous improvement a part of organization culture
- Any action or steps in a process that does not add value
- Deviations show ineffective allocation of resource
- 3 types of Deviation
- Muri/ Overburden
- Mura/ Uneveness
- Muda/ Waste
- Muri - 100% utilization of resource >> Breakdown
- Mura - unevenness/fluctuations >> over / under production
- Muda - waste , is it necessary for customer?
In late 1990 the personal computer explosion happened
There was increase in consumer demands
Application delivery lag or crisis
Project ended up being cancelled halfway through
completed projects didn't meet project's original objective
The way that world's developer have been building software just weren't working.
Developers got to come up with something different.
Software developers started mixing new and old ideas and coming up with new mythologies.
Before agile methodology software was build through waterfall development.
if you don't know waterfall development let's know about in simple way
Waterfall model is a linear approach to software development. It mainly aims for a successful outcome as a result of meticulous planning at each pages in the process as follows
- Set project requirements and the scope of work
- Design a product based on those pre determined requirements
- Build the product
- Test the product
- Launch the finished product
Agile is a set of methods and practices that focuses on iterative development
ability to move quickly and easily by becoming more flexible and adoptable is agile
Requirements and solutions are obtained thanks to self organizing cross functional teams collaborating
Difference between agile and water fall
- (lifecycle) Agile model is a continuous iteration life cycle model for developing and testing software
- (Rigidity) agile methodology is a flexible way of building a software
- (collaboration) Agile model is a highly collaborative approach towards software development , yielding a better output
- (process) the entire process of development is divided into sprints
- (Changes) Changes may be made even after the initial planning is completed
- (Software Development) is a collection of many different projects
- (Testing) testing is performed in the same iteration as programming or building
Disadvantages of waterfall model
- Makes new implementing requirements and changes are difficult
- Software is not produce or made until late during life cycle
- Testing phase are only done at the last half of the project
- excludes the feedback of client or end user
17 people gathered at a ski resort in snowbird , Utan in 2001 to create a concrete solution to the major software development problems of the time
- (lifecycle) Waterfall model is linear sequential lifecycle model for developing and testing a software
- (Rigidity) waterfall methodology is a rigid, structured way of software development
- (collaboration) waterfall model is less flexible and follows a sequence of steps not allowing the team to collaborate
- (process) the software development is broken down into several phases
- (Changes) Development requirements cannot be changed once the project development begins
- (Software development) is completed as a single project or deliverable
- (Testing) testing phase comes after the building phase
- Individuals and Interactions over Processes and tools
- Working software over Comprehensive Documentation
- Customer Collaboration over contract negotiation
- Responding to a change over following a plan
- with incremental development the process is divided into small workable increments
- each successive increment builds on top of the work done in the previous increments
- over time functionalities are added based on what was already created
- Iterative development involves the development of a system by the following repeated cycle or iterations
- Based on the result from the most recent iteration of the process, changes are made. This helps the project evolve over time
- Agile involves consideration and creation of a working product in an iteration which is part of the overall final product
- Each iteration is an enhanced working increment of the final product
- This process continues until all the product functionalities are satisfied
- Organizations and users can use and experience the product and provide feedback that can be incorporated into the next iteration
- Causing product roadmaps to be built produced, tested and confirmed before the next iteration
- It is a framework that enables teams to create high quality software and improves their quality of life
- It enables software development with the appropriate engineering practices
- This method is used to design manage and improve the flow of system
- Organization can visualize their flow of work and limiting their work in progress
- Lean is a set of tools and principles that aims to identify and remove waste to increase the speed of process development
- It focuses on maximizing value to the client ensuring waste is minimized
- Scrum is a framework that is used by teams to establish a hypothesis, try it out reflect on the experience and adjust
- It is used to enable teams to incorporate practices from other frameworks depending on the team's requirements
- Crystal is an approach to software development that focuses on people and their interaction rather than tools and process
- it is aimed to streamline processes and improve optimization
- It works on the principle that projects are unique and dynamic
- Testing continuously to ensure the product improves continuously
- obtain feedback continuously to ensure the product meets business requirements
- All team roles (testing, developing etc.) need to be involved in the testing process
- active involvement of the business team and representative can provide quick feedback for each iteration
- clean and simplified code ensures it to be detect-free during the iteration
- the documentation created must be limited into a particular iteration
- Along with development and implementation testing is done to ensure the product is defect free
- continuous involvement of the user ensures the final product matches their requirements
- Measuring the burndown of deliverables which is usually represented using burndown charts
- velocity
- lead time
- cycle time
- code quality
- code covered in unit test
- Deployment success rate
- net promoter score
- Kanban system is visual system that enables better management of work as it moves through the processes
- It visualizes and provides visibility into the process workflows and the work passing through the process
- Kanban is also called a pull system because the new work is pulled in (taken up) from the list for execution and move them from in progress status to done
- Tracking the work will also become easier as the workflow is clearly visible and put on a display board. Modern organization can also use the digital display system
- The goal is identification of the constraints(i.e. potential bottleneck) in the processes and ensure they are addressed
- this ensures that the workflow becomes smoother and more efficient
- Github
- JiraSoftware
- Trello
- ZOHO
- Yodiz
- versionOne
- Not having the appropriate or sufficient tools and technologies
- the lack of active involvement from the customer
- the team member lacking in skill and capability
- the inability to design system based on unseen requirements
- adapting the agile culture to the organization
Agile | Scrum | |
---|---|---|
Definition | Agile is a set of principles that is iterative and incremental in nature | Scrum is an implementation of the agile methodology |
Guidelines | agile manifesto and 12 principle help an organization become agile | used in projects where the requirements are constantly changing. It also adheres to agile principles |
Roles | Agile manifesto mentions collaboration and interactions to become agile | Roles are defied the scrum master, the product owner and cross functional, self organizing teams |
Flexibility | the manifesto mentions the focus required on working software and change | It enables teams to react to change quickly |
Delivery | The methodology requires frequent delivery to the end user | with sprints builds are delivered to clients for feedback |
Collaboration | Stresses on individual and customer interactions | Daily stand up meetings helps and other scrum events |
- PMI-ACP Certification
- Scrum master certification
- Certified scrum master
- Prince 2 Agile certification
- Scrum product owner certification
- Product Owner
- Scrum Master
- Developers
Comments
Post a Comment