Page 91 -
P. 91

74   Chapter 3   Agile software development


                                    ‘Scrum master’ is a facilitator who arranges daily meetings, tracks the backlog of
                                    work to be done, records decisions, measures progress against the backlog, and com-
                                    municates with customers and management outside of the team.
                                      The whole team attends the daily meetings, which are sometimes ‘stand-up’
                                    meetings to keep them short and focused. During the meeting, all team members
                                    share information, describe their progress since the last meeting, problems that have
                                    arisen, and what is planned for the following day. This means that everyone on the
                                    team knows what is going on and, if problems arise, can replan short-term work to
                                    cope with them. Everyone participates in this short-term planning—there is no top-
                                    down direction from the Scrum master.
                                      There are many anecdotal reports of the successful use of Scrum available on the
                                    Web. Rising and Janoff (2000) discuss its successful use in a telecommunication
                                    software development environment, and they list its advantages as follows:

                                    1.  The product is broken down into a set of manageable and understandable
                                        chunks.
                                    2.  Unstable requirements do not hold up progress.
                                    3.  The whole team has visibility of everything and consequently team communica-
                                        tion is improved.
                                    4.  Customers see on-time delivery of increments and gain feedback on how the
                                        product works.
                                    5.  Trust between customers and developers is established and a positive culture is
                                        created in which everyone expects the project to succeed.

                                      Scrum, as originally designed, was intended for use with co-located teams where
                                    all team members could get together every day in stand-up meetings. However,
                                    much software development now involves distributed teams with team members
                                    located in different places around the world. Consequently, there are various experi-
                                    ments going on to develop Scrum for distributed development environments (Smits
                                    and Pshigoda, 2007; Sutherland et al., 2007).




                              3.5 Scaling agile methods


                                    Agile methods were developed for use by small programming teams who could
                                    work together in the same room and communicate informally. Agile methods have
                                    therefore been mostly used for the development of small and medium-sized systems.
                                    Of course, the need for faster delivery of software, which is more suited to customer
                                    needs, also applies to larger systems. Consequently, there has been a great deal of
                                    interest in scaling agile methods to cope with larger systems, developed by large
                                    organizations.
   86   87   88   89   90   91   92   93   94   95   96