Page 200 -
P. 200
Chapter 6 • agile Modeling and prototyping 167
Figure 6.7
There are six vital lessons that can
Short releases be drawn from the agile approach
allow systems to systems.
to evolve
Agile values are Pair programming
crucial to enhances overall
success quality
Lessons Gained
from Adopting
Agile Methods
Balanced resources Onsite customers
and activities support are mutually
project goals beneficial
40-hour
workweek improves
effectiveness
4. Daily scrum, a brief meeting in which communication is the number-one rule. Team mem-
bers need to explain what they did since the last meeting, whether they encountered any
obstacles, and what they plan to do before the next daily scrum.
5. Demo, working software that can be demonstrated to the customer.
Scrum is indeed a high-intensity methodology. It is just one of the approaches that adopts
the philosophy of agile modeling.
Lessons Learned from Agile Modeling
Often posed as an alternative way to develop systems, the agile approach seeks to address com-
mon complaints arising about the traditional SDLC approach (for example, being too time-
consuming, focusing on data rather than on humans, being too costly) by being rapid, iterative,
flexible, and participative in responding to changing human information requirements, business
conditions, and environments.
Several agile development projects have been chronicled in books, articles, and on websites.
Many of them were successes, some have been failures, but we can learn a great deal from study-
ing them, as well as the agile values, principles, and core practices. Following are the six major
lessons we draw from our examination of agile modeling. Figure 6.7 depicts the six lessons.
The first lesson is that short releases allow systems to evolve. Product updates are made
often, and changes are incorporated quickly. In this way the system is permitted to grow and
expand in ways that the customer finds useful. Through the use of short releases, the develop-
ment team compresses the time between releases of their product, improving the product later as
the dynamic situation demands.
The second lesson is that pair programming enhances overall quality. Although pair program-
ming is controversial, it clearly fosters other positive activities necessary in systems development
such as good communication, identifying with the customer, focusing on the most valuable aspects
of the project first, testing all code as it is developed, and integrating the new code after it success-
fully passes its tests.
The third lesson is that on-site customers are mutually beneficial to the business and the
agile development team. Customers serve as a ready reference and reality check, and the focus
of the system design will always be maintained via their presence: customers become more like
developers and developers empathize more fully with customers.