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.