If you work in software development, chances are, you've heard of all the terms above.
Over the years, all of these terms have turned into buzzwords, with people using them witout even understanding what they really stand for. So, its common to hear things like waterfall is bad, or asking that a scrum team adjust their changes for newer requirements, or use kanban boards to keep track of stories.
In this post, let's have a look at what all these terms stand for.
Waterfall:
This represents a unidirectional flow of development process, where various steps are taken one after the other, in order. So, first goal is to do requirement collection, next an analysis of those requirements, followed by designing of solution, which is finally coded, implemented and integrated, to be released to the customer.
Waterfall works great when the requirements are static. That is, they are the same on the day of delivery, as given on day of initiation. However, most business requirements and projects are not static. Each of the steps above take time by themselves. Businesses are today much more dynamic, and even the customers are lot more demanding. Which is why, taking feedback becomes a necessity, and this is what is the achilles' heel of waterfall model is.
Lean:
So people looked into other domains to find out what stands out in other industries to make the process more efficient, and the final product less defective. One existing mecahnism they found was the Six Sigma and Lean management.
Six Sigma is a disciplined, statistical, data-driven approach for continuous improvement and eliminating defects in a product. The six sigma method was inspired by happenings at Motorola. Soon, within the larger industry, most notably Japanese carmakers, lean management starting taking hold. Lean management stood for eliminating waste, and this principle got adopted to the software industry. (Just like how design patterns were originally inspired from construction industry, or how biology inspires many genetic algorithms).
Agile:
However, lean also did not fulfill all the aspirations. For, technology is ever changing, and in the technology world, the tools, the requirements, the customers, and the product, all change very quickly, as compared to other industries. So, the existing strategies started feeling heavy, with all the business requirement documents, technical requirement documents, technical specification, change management document, and a lot of other processes.
Many lightweight software development frameworks starting coming up to the fore, to counter such heavyweight methods, as, one size does not fit all. The result was an umbrella of methods, like Scrum, Extreme programming etc. Even later, newer methods such as Behavior Driven Development, Test Driven Development, Kanban etc kept coming up.
Agile gained popularity as this umbrella above, with the coming up of the Agile Manifesto.
Scrum:
Scrum is one of the agile methods. Scrum is a software development framework. By that, it means that Scrum provides a designated structure in which a Scrum team must function - it provides the roles (product owner, scrum master, scrum team), the meetings, and even what interactions should happen between the different members.
Today, scrum has come up as one of the popular agile framework for software development, with its focus on incremental delivery and constant iterations to deliver a requirement every spring end
Kanban:
Kanban is a lean management tool that got picked up from the car maker Toyota. Kanban is used to achive JIT (Just In Time), and the focus of Kanban is to keep Work in Progress (WIP) to the minimum. It is very useful in projects where the work can be heavliy broken down into equal sized tasks. However, many do not consider it to be a complete software development method.
Over the years, all of these terms have turned into buzzwords, with people using them witout even understanding what they really stand for. So, its common to hear things like waterfall is bad, or asking that a scrum team adjust their changes for newer requirements, or use kanban boards to keep track of stories.
In this post, let's have a look at what all these terms stand for.
Waterfall:
This represents a unidirectional flow of development process, where various steps are taken one after the other, in order. So, first goal is to do requirement collection, next an analysis of those requirements, followed by designing of solution, which is finally coded, implemented and integrated, to be released to the customer.
Waterfall works great when the requirements are static. That is, they are the same on the day of delivery, as given on day of initiation. However, most business requirements and projects are not static. Each of the steps above take time by themselves. Businesses are today much more dynamic, and even the customers are lot more demanding. Which is why, taking feedback becomes a necessity, and this is what is the achilles' heel of waterfall model is.
Lean:
So people looked into other domains to find out what stands out in other industries to make the process more efficient, and the final product less defective. One existing mecahnism they found was the Six Sigma and Lean management.
Six Sigma is a disciplined, statistical, data-driven approach for continuous improvement and eliminating defects in a product. The six sigma method was inspired by happenings at Motorola. Soon, within the larger industry, most notably Japanese carmakers, lean management starting taking hold. Lean management stood for eliminating waste, and this principle got adopted to the software industry. (Just like how design patterns were originally inspired from construction industry, or how biology inspires many genetic algorithms).
Agile:
However, lean also did not fulfill all the aspirations. For, technology is ever changing, and in the technology world, the tools, the requirements, the customers, and the product, all change very quickly, as compared to other industries. So, the existing strategies started feeling heavy, with all the business requirement documents, technical requirement documents, technical specification, change management document, and a lot of other processes.
Many lightweight software development frameworks starting coming up to the fore, to counter such heavyweight methods, as, one size does not fit all. The result was an umbrella of methods, like Scrum, Extreme programming etc. Even later, newer methods such as Behavior Driven Development, Test Driven Development, Kanban etc kept coming up.
Agile gained popularity as this umbrella above, with the coming up of the Agile Manifesto.
Scrum:
Scrum is one of the agile methods. Scrum is a software development framework. By that, it means that Scrum provides a designated structure in which a Scrum team must function - it provides the roles (product owner, scrum master, scrum team), the meetings, and even what interactions should happen between the different members.
Today, scrum has come up as one of the popular agile framework for software development, with its focus on incremental delivery and constant iterations to deliver a requirement every spring end
Kanban:
Kanban is a lean management tool that got picked up from the car maker Toyota. Kanban is used to achive JIT (Just In Time), and the focus of Kanban is to keep Work in Progress (WIP) to the minimum. It is very useful in projects where the work can be heavliy broken down into equal sized tasks. However, many do not consider it to be a complete software development method.
I truly like you're composing style, incredible data, thankyou for posting.
ReplyDeletedata science course in malaysia
data science certification
data science course malaysia
data science malaysia
data scientist course malaysia
Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more.
ReplyDeletePMP Certification
PMP Certification in Malaysia
Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here.
ReplyDelete360DigiTMG PMP Certification
360DigiTMG PMP Certification in Malaysia
360DigiTMG PMP Course
360DigiTMG PMP Course in Malaysia
six sigma
ReplyDeletePositive site, where did u come up with the information on this posting? I'm pleased I discovered it though, ill be checking back soon to find out what additional posts you include. Six Sigma
ReplyDeleteYou are providing essential knowledge. It is helpful and important information of Lean Training Consultants Houston TX for us and everyone to increase knowledge. Continue sharing your data. Thanks once again for sharing it.
ReplyDelete