Page 194 -
P. 194

Chapter 6  •  agile Modeling and prototyping     161

                 FOUR RESOURCE CONTROL VARIABLES OF AGILE MODELING.  Completing all the activities in
                 a project on time within all the constraints is admirable, but, as you have probably realized by
                 now, in order to accomplish this, project management is crucial. Managing a project doesn’t
                 mean simply getting all the tasks and resources together. It also means that the analyst is faced
                 with a number of trade-offs. Sometimes cost may be predetermined, and at other junctures time
                 may be the most important factor. These resource control variables (time, cost, quality, and
                 scope) are discussed next.

                 TIME.  You need to allow enough time to complete a project. Time, however, is split into many
                 separate pieces. You need time to listen to the customers, time to design, time to code, and time
                 to test.
                     One of our friends is an owner of a Chinese restaurant. Recently, he found himself short-
                 staffed as one of the members of his reliable crew returned to Hong Kong to get married. The
                 owner placed himself in the kitchen so the food was served on time, but he stopped greeting his
                 customers out front in the usual way. He sacrificed the listening activity to achieve another activity,
                 but in this case he found out it was hurting his business. Customers wanted the attention.
                     It is the same in systems development. You can create quality software but fail to listen. You
                 can design a perfect system but not allow enough time to test it. Time is difficult to manage. If
                 you find yourself running short of time, what do you do?
                     The agile approach challenges the notion that more time will give you the results you want.
                 Perhaps the customer would prefer that you finish on time rather than extend the deadline to add
                 another feature. Customers, we often find, are happy if some of the functionality is up and run-
                 ning on time. Our experience shows that often a customer is 80 percent satisfied with the first
                 20 percent of the functionality. This means that when you complete the final 80 percent of the
                 project, the customer may be only slightly happier than he or she was after you completed the
                 first 20 percent. The message here is be careful not to extend your deadline. The agile approach
                 insists on finishing on time.

                 COST.  Cost is the second variable we can consider adjusting. Suppose that the activities of
                 coding, designing, testing, and listening are weighing down the project, and the resources we
                 put into time, scope, and quality are not sufficient, even with a normal amount devoted to cost,
                 to balance the project. Essentially we might be required to contribute more resources that require
                 money to balance the project.
                     The easiest way to increase spending (and hence costs) is to hire more people. This may
                 appear to be the perfect solution. If we hire more programmers, we’ll finish faster. Right? Not
                 necessarily. Picture hiring two people to repair a roof and increase that number to four. Soon the
                 people are bumping into one another. Furthermore, they need to ask each other what still needs
                 to be done. And if there’s a lightning storm, no one will be working. Going from two to four
                 doesn’t mean it will take half the time. Consider the required increase in communication and
                 other intangible costs when you are considering hiring more people. Remember that when new
                 people join a team, they do not know the project or the team. They will slow down the original
                 members because the original members must devote time to getting new members up to speed.
                     Overtime doesn’t help much either. It increases the cost, but productivity doesn’t always
                 follow. Tired programmers are less effective than alert programmers. Tired programmers take a
                 long time to complete a task, and they also make mistakes that are even more time-consuming
                 to fix.
                     Is there anything else we can spend our money on to facilitate finishing a project? Perhaps.
                 In other chapters, you will read about a variety of tools that support analysts and programmers.
                 These tools are often wise investments. Analysts, for example, use graphical packages such as
                 Microsoft Visio to communicate ideas about a project to others, and CASE tools such as Visible
                 Analyst also help speed up projects.
                     Even new hardware could be a worthwhile expenditure. Laptops and smartphones improve
                 productivity away from the office. Larger visual displays, Bluetooth-enabled keyboards and
                 mice and more powerful graphics cards can also increase productivity.

                 QUALITY.  The third resource control variable is quality. If ideal systems are perfect, why is so
                 much effort placed in maintaining systems? Are we already practicing agile development by
                 sacrificing quality in software development? In Chapter 16 we will see the importance of quality
                 and methods (such as TQM and Six Sigma) which help ensure that software quality is high.
   189   190   191   192   193   194   195   196   197   198   199