Page 96 -
P. 96

Chapter 3   Exercises  79




                          3.5. Explain why test-first development helps the programmer to develop a better understanding
                              of the system requirements. What are the potential difficulties with test-first development?
                          3.6. Suggest four reasons why the productivity rate of programmers working as a pair might be
                              more than half that of two programmers working individually.
                          3.7. Compare and contrast the Scrum approach to project management with conventional
                              plan-based approaches, as discussed in Chapter 23. The comparisons should be based
                              on the effectiveness of each approach for planning the allocation of people to projects,
                              estimating the cost of projects, maintaining team cohesion, and managing changes in
                              project team membership.
                          3.8. You are a software manager in a company that develops critical control software
                              for aircraft. You are responsible for the development of a software design support
                              system that supports the translation of software requirements to a formal software
                              specification (discussed in Chapter 13). Comment on the advantages and disadvantages
                              of the following development strategies:
                              a. Collect the requirements for such a system from software engineers and external
                                stakeholders (such as the regulatory certification authority) and develop the system
                                using a plan-driven approach.

                              b. Develop a prototype using a scripting language, such as Ruby or Python, evaluate
                                this prototype with software engineers and other stakeholders, then review the
                                system requirements. Redevelop the final system using Java.
                              c. Develop the system in Java using an agile approach with a user involved in the
                                development team.

                          3.9. It has been suggested that one of the problems of having a user closely involved with
                              a software development team is that they ‘go native’; that is, they adopt the outlook of
                              the development team and lose sight of the needs of their user colleagues. Suggest three
                              ways how you might avoid this problem and discuss the advantages and disadvantages
                              of each approach.
                         3.10. To reduce costs and the environmental impact of commuting, your company decides to
                              close a number of offices and to provide support for staff to work from home. However,
                              the senior management who introduce the policy are unaware that software is developed
                              using agile methods, which rely on close team working and pair programming. Discuss
                              the difficulties that this new policy might cause and how you might get around these
                              problems.
   91   92   93   94   95   96   97   98   99   100   101