Everyone it seems is doing agile development but the truth is that many
organizations don't have a firm grasp on the process of agile software
development even if you think you're doing agile development you may not be
doing agile development is a lot like running a restaurant everyone has their
own specific tasks but they have to work together so all the pieces come together
at the right time and they have to be able to make all sorts of meals based on
whatever customers happen to want each day the team is only successful when the
product is satisfactorily delivered to the customer the process in a restaurant
starts with the food orders the server collects the orders on tickets that the
kitchen then works through in software development business units ask for the
products they want developed providing their user stories and requirements in
other words their order tickets the agile team has to take all those tickets
and figure out how to make all the products so that they all get delivered
at the right time to the various business teams that's called the Kanban
process based on the Japanese word Kanban for the tickets to used in
project planning the scrum master in consultation with the product owner and
development team organizes the tickets into groups that can be tackled at once
the groups are then placed in order so the first things that need to get done
get done first and so on in a restaurant tickets are organized for similar
reasons so the person preparing the ingredients knows what to prepare in
time for the chef making the specific dish and so the whole meal comes
together at the right time in agile development these groups are called
sprints typically a two-week period where the various developers work on
their tickets so they're done in time for the next sprint in a restaurant the
executive chef shows the cooking team everything that needs to be done for
this set of orders the cooks commit to what dishes they will work on in agile
development the same process occurs in what is called the scrum process
in agile development teams developers likewise commit for the code they will
deliver for the current sprints the cooks make the food adjusting the
seasoning and methods as needed based on the ingredients they have and any issues
that come up while cooking to deliver the meal the customer expects as well as
from any feedback from the waitstaff and customers agile development works the
same way developers implement what they committed to making adjustments as they
go to deliver the desired result based on feedback from stakeholders the
product manager and their own insights our restaurants cooks are always looking
to make the food better and the preparation process better as they cook
they discuss and record where they need to make improvements with the
ingredients or cooking process then make adjustments in their future work agile
development teams do the same thing giving each other feedback during the
development work as well as at the end of each sprint in what is called a
retrospective at a restaurant when a batch of orders is done the next batch
starts up following the same process this continues until service is
completed in agile development the Sprint's continue until the product is
delivered when that happens the team starts over again on a new product in a
restaurant consistency is important for every item on the menu it's almost an
assembly line for food to accomplish that the executive chef works out the
recipes and then teaches them to the cooks and sous chefs typically prep
cooks also cut up all the vegetables and other ingredients in advance to precise
specifications so they're ready to use when the cook needs them in agile
development some of the work can be automated such as code management and
automated testing likewise continuous integration ensures all the
ingredients are prepared and then assembled properly to form the item
continuous delivery lets you deliver code within each sprint not wait until
the end of each sprint that gets the software to the business faster though
in smaller chunks it's like a dim sum or tapas restaurant that lets
order different bites of food throughout the meal delivering each when ready
rather than delivering the whole meal all at once