Bog'liq Software Engineering Architecture-driven Software Development ( PDFDrive )
107 6.2 Evolution of software technologies
used to hold the software development team accountable. The Agile proponents
do not want to be held accountable. (Wouldn’t every employee enjoy being
compensated with no accountability? Agile is every derelict’s dream employ-
ment arrangement!)
4. Responding to change over following a plan. Change is inevitable, but there
must be a plan upon which progress can be measured. By suggesting that a
software product can be produced without a plan is hypocritical. Every product
development project must have a plan against which progress can be measured
and the development team held accountable. Oh, that’s right! With Agile, soft-
ware development organizations are not held accountable. So what benefit is a
plan? The definition of design is to create a detailed plan of something. Besides,
as the customers keep changing their desires, the software development team
can enjoy a prolonged engagement and continued employment because they
cannot be held accountable for schedule delays. (When will the product be fin-
ished? Who cares!)
The authors and proponents of the Agile Manifesto certainly did not intend for
Agile’s guiding principles to be interpreted so blatantly and conspicuously. They
obviously have given up trying to follow standard project management and soft-
ware development techniques due to the high rate of disappointing results while
encumbered by these practices. They were unaware of any approach that would
result in the achievement of software development plans, objectives, or agreements.
They determined that their best chance for success was to do what they had been
trained to do—program. This resulted in a manifesto for a technical discipline that
abolishes plans, schedules, design and documentation, agreements, or culpability
when the project fails.
When a dance couple trains unrelentingly to win the world championship in the Waltz competition, they are dedicated to their profession. When their opportu- nity finally presents itself and the music begins …
and it’s a tango …
the couple dances the waltz. After all, the waltz is what they have been trained to execute and any other response would lead to disappointment, so why not dance the dance they know how to perform? The previous assessment of Agile must be taken in context. Agile is a program-
ming methodology and works well as a form of software implementation. However,
Agile cannot succeed unless it is fortified by software engineering and a predefined
software architecture. The proponents of Agile are just unaware of software engi-
neering as described in this manuscript and therefore are attempting to “do the best
that they can.” As I reviewed my initial treatise on the Agile Manifesto I became
aware that what they are proposing has value when it is relegated to the software
implementation stage of software development. The usefulness of Agile or any
other software methodology is greatly enhanced when coupled with a preceding
software engineering effort. The next section discusses how an architecture-driven
approach to software development, which combines software engineering and an