An Agile workflow
Using an Agile workflow helps your team to be flexible and able to quickly respond to changes. It also means that your team is self-organizing, and that members of the team are able to deliver early and often.
Good communication is fundamental to Agile and the members of your team have to collaborate well with the product owner, stakeholders, and each other. The users of your app need to also be involved, right from the beginning. Their feedback is vital, and is critical for you to make the right decisions for your app development. Finally, at any time, you should be able to deliver a working version of the software. A good git workflow and being able to continuously deliver are key elements here. You will read more about this in Chapter 19, Building an Unfair Advantage.
What all agile methods have in common is that they promote the ability to change, continually learn as you go, and to delivery software as quickly as possible.
Some agile software development methodologies are as follows:
There are many more approaches, but these are the most interesting ones. Of course, Lean software development has the focus of this book. The key elements for this methodology are:
- Delivering as early as possible
- Making decisions as late as possible
- Gathering early feedback through Continuous Delivery
We will learn more about all these elements in the next chapters. Unlike the other methodologies, Lean is more focused on avoiding waste.
But, let's start with the basics first. Lean software development, Kanban, and Scrum have a lot in common. In this chapter, we will have a closer look at Kanban and Scrum, and discuss Lean in the rest of the book.