Intro
Alan Cooper, author of “About Face” and Visual Basic, asks what programming is and isn’t. It isn’t art, science or engineering. It is craft. Programmers are smart, hard-working and eager to please.
The most important part of software are the interstices, the interfaces. Using existing libraries and API’s is alluring, like taking a highway through a swamp. But the library or tool may not be really suited to the task.
We regularly throw away our tools and jump onto new toys. Agile is the new toy. But there’s is no silver bullet. And we have to consider the context to define ‘good’. Agile is unique because it’s the first time developers create a revolution based on people and process, not technique and tools.
The problem with waterfall isn’t only the handoffs. Even worse is the abdication of responsibility and accountability. All roles must remain involved and responsible throughout the four stages of software development:
- Big ideas
- Design
- Engineering
- Construction
Alan posits that mixing the four stages is the most common source of failure. Agile intends to fix the broken process. Programmers feel surrounded by incompetence. Programmers like Agile as a defence against that incompetence. Agile is a coping tool. Coping with unreasonable clients, incompetent designers, documentation and process excess, foolish managers (who are mostly well-intentioned but use obsolete, industrial-age tools based on command-and-control). Managers have come to expect failure. Success seems random.
Interaction designers and agile programmers are allies. Both of them are craftsmen, work hard and build tangible, testable deliverables. Interaction designers can help programmers to understand business goals and users.
Cooper’s thesis: we can know what users need. Interaction designers are the ones who can discover this.
As expected the slides are gorgeous. They are available at Alan’s Journal.
I’m left wondering a few things:
- Are Interaction designers the only people who understand customers? Are sessions like the ‘Nine Boxes‘, which help everybody to understand customers, useless?
- Do developers and interaction designers have to be allies against incompetent managers, or can we work together with competent managers?
- Will Alan’s 4 step process (Big Ideas, Design, Engineering, Construction) be misunderstood as a sequential lifecycle? Talking about this keynote, I heard some people say that they got the impression that Alan advocated going back to a waterfall-like sequential process?
- Can we really talk about ‘construction’ in the software domain? If the job is predictable and repeatable we will automate it.
- There is more to time than being first on the market. Money now is worth more than money later; we can invest our early income in more projects.