Around 1994, Chris Sells explained to me how he designs software for use by other programmers:
“First I write the code I would want to write if I were the other programmer. Then I do whatever it takes to make that code the real implementation.”
I know the TDD folks have a similar approach, but the focus there is more on iterative development and implementation as well as making sure that tests get written as an integral part of the process (all good things btw).
Sells took it further, in that the code you would want to write as “the other programmer“ is what drives the design of the API/object model and in fact is where you start the overall design process.
Not principled architecture.
Not UML.
Not Patterns.
Not even by defining the interfaces themselves.
One or more of these things obviously have a role to play (especially the last one :-)), but none of them are as useful a starting point as the simple “what would my customer want to write“ exercise that Chris turned me on to.
I look at a lot of programming APIs and OMs (not just .NET ones) and I think there's no way they'd be as complex if only the original developers had applied the Sellsian approach.
Posted
Jan 24 2007, 09:21 PM
by
don-box