We spent the better part of a decade celebrating our avoidance of Big Design Up Front (BDUF).
I jumped on the Agile Software Development hay-wagon. It was
- liberating,
- professionally acceptable, and
- socially, much cooler,
Agilists like me eschewed BDUF. Our approach to design was emergent. We programmed on the fly.
Yes we were faster. Yes we delivered.
In some cases we moved software into production more frequently than the Milkman delivered milk.
The question I ruminate over is
The cows are still grazing, but I for one, contributed to several steaming cow pies in the name of agile software development.Did we deliver lasting value?
The voices I respect in our community suggest we're avoiding the fruits of experience design considerations at our peril. Sorry Milkman, but delivery isn't everything.
Software Delivery is the milk jug, NOT the experience of gulping cold, fresh milkThere are signs our community is moving beyond the ominous clouds of Deliverence - pun intended - toward reasonable preparation & design discovery.
Building Benches
Design is premeditation. It is never an immutable concept. It is never written in stone. Ideally, my premeditations grow with me into active (perhaps subconscious) meditation during execution whether programming or building benches.
Last weekend I built a cedar bench. Much thought was devoted to who would be sitting on the bench BEFORE I cut wood. I considered comfort and aesthetic appeal. I chose a height of 19" following simulated user acceptance tests. I made a sketch. I thought about the materials in the context of human contact (choosing naturally rot-resistant cedar over treated lumber).
Our golden retrievers Lucy & Libby seem to be turning their noses up at my handiwork, but my family likes it. I had premeditated design considerations, but allowed myself the freedom to adapt on the fly.
Last weekend I built a cedar bench. Much thought was devoted to who would be sitting on the bench BEFORE I cut wood. I considered comfort and aesthetic appeal. I chose a height of 19" following simulated user acceptance tests. I made a sketch. I thought about the materials in the context of human contact (choosing naturally rot-resistant cedar over treated lumber).
Our golden retrievers Lucy & Libby seem to be turning their noses up at my handiwork, but my family likes it. I had premeditated design considerations, but allowed myself the freedom to adapt on the fly.
Sound Preparation
Sound preparation is not the same as BDUF. I prepare to build something with the tacit understanding I will adapt as the unforeseen emerges.
Sound preparation allows for informed improvisationLike performers, well-prepared programmers are freer to improvise because preparation considers eventualities - not all eventualities, but some. Preparation frees us to be creative without mucking things up, even if all we start with are a few baseline considerations like
- Who's going to use it?
- What do they need?
- What do they like or dislike most?




6 comments: