Many other
realities fall somewhere in between the two poles a) of pure, traditional,
segmented software engineering, where highly detailed "complete
designs" are handed off to programmers, and b) Extreme Programming and
micro-size development teams, where programmers are the stars of the show. In
the "middle realities" between these poles there are designers, lead
programmers, or "architects" who create a design (in isolation or in
collaboration with some or all of the programmers), but the design itself is
(intentionally or unintentionally) not a complete design. The programmer’s job
is to fill in the blanks in the design as she writes the code.
There is one thing that all of the points along
this spectrum have in common: even in the "programmers just write the
code" software engineering view, all programmers
are also software designers. That bears repeating: all programmers are also
software designers. In an article for IEEE Software magazine called "Software Engineering Is Not Enough,"
James A. Whitaker and Steve At kin do an excellent job of skewering the idea
that code construction is a rote activity. Imagine that you know nothing about
software development. Certainly, you might expect that software engineering
texts would be about engineering software. The only design decisions made at
the coding level address the small implementation details that enable the
procedural design to be coded. The nature of
designs is that they abstract many details that must eventually be coded. [Whitaker,
2002, p.108]
No comments:
Post a Comment