cure: before you begin,ensure consensus on the “win” and set priorites
symptom: never enough timefor good development, user testing or quality assurance
question do great plans promise great products?
you can not treat software development like a construction project
The Broken Analogy“A bridge is the sum of itsparts. The pieces of metaland welds and everythingelse all add up to a single, static bridge. A software system is the behavior created by the dynamic interaction of its parts” EffectiveUI The art of building great experiences in software
Things you would never have to deal with while constructing a bridge:
Can we move the bridge 17 feet to the left? It’s only 17 feet, so that’s not a big deal, right?
We aren’t very happy withhow the bridge looks so far.Can you propose a change in the kind of materials you’re using to make it more attractive?
Remember when you asked uswhether the bridge would ever need to support vehicle trafﬁc and not just pedestrian trafﬁc,and we weren’t sure, so we just settled on the cheaper pedestrian version? Well, wewere wrong. What can you do to make this work for our needs?
We’ve hired an offshore company to start building fromthe other side of the valley so we can cut the construction time in half. They’re making some improvements on your design, so please coordinate with them to make sure everything comes together ahead of schedule.
1. Using the term RIA2. Putting channel before product3. Skinning4. Avoiding conﬂict5. Developers aren’t involved in design6. Not deﬁning success7. Waterfall8. Requirements ahead of outcomes9. Ego10. Choosing the wrong platform