Coding as design
"The fallacy in traditional “waterfall” development has been to view software coding as production, and to apply manufacturing principles to it. Coding is more of a fine-grained design activity than a production activity – we are creating the first instance of a product." - Agile 101: Beginning the Agile Journey for Software Design in Healthcare - 2012
I started reading this paper and the quote above really struck me. There is an art to writing good code and many developers refer to what we do as a craft. Our product is not stamped out like a car door. It is sculpted like the clay models used to perfect the final design of the car.
Design by nature is iterative, fails quickly and requires conversations with the customer. Marketing and design firms don't go for months without talking to their customer. A design is sketched out and a conversation is had with the customer to refine and adjust it to meet their needs and timeframe. Software is no different.
A production line assumes the input is perfect and checks the output is identical to the input. Design takes an idea, describes it on paper, and creates something new from those ideas. Agile treats software as design, as it should be.
EDIT: When I find the place with the quote above I will post it. Another good quote:
"Customer Bill of Rights As the customer, you have the right to:
An overall plan, to know what can be accomplished, when, and at what cost; • Get the most possible value out of every programming week;
See progress in a running system, proven to work by passing repeatable tests that you specify;
Change your mind, to substitute functionality, and to change priorities without paying exorbitant costs;
Be informed of schedule changes, in time to choose how to reduce scope to restore the original date, even cancel at any time and be left with a useful working system reflecting investment to date.
Developer Bill of Rights As the Developer, you have the right to:
Know what is needed, with clear declarations of priority;
Produce quality work at all times;
Ask for and receive help from peers, superiors, and customers;
Make and update your own estimates;
Accept your responsibilities instead of having them assigned to you"
The bill of rights originally came from here: http://practicalagility.blogspot.com/2011/06/worth-repeating-xp-bills-of-rights.html












