Long ago in 2000 at a job I suggested to the development teams that an approach we could use is to start on day one with a shippable product. That is, using Stubs, Mocks, and fake data, we could create the complete app that is testable and shippable from day one. Since the first customers are the investors and potential partners, they would get to see what we really intended to create up front, in working code, not fancy PowerPoint presentations. The working code would have served as the presentation and the base on which to build the eventual product to ship to external customers.
This was not just a test-driven development (TDD) approach, I said. For example, we could use a Command Line Interface until we have the Rich Internet Application framework ready, we could use flat-files until we knew what the data model should be, etc. The “product” was in flux based on potential customer feedback. So, it was really to do the simplest thing that will get the application doing real work as soon as possible.
The advantages I thought could have been:
- Faster to market
- Better API (no fluff)
- System always testable
- Infrastructure for testing and QA
- Usable for presentation
What was the response? Nothing. Oh well. It would have been great to see what could have been accomplished.
I was reminded of the above as I stumbled upon “Architecture Review: Mock-Driven Three-Layer Architecture“ on James Shore’s The Art of Agile blog.
Now there has been much more creative work and new agile languages that would have made my idea more doable. In fact, many of today’s successful frameworks are responses to the excess complexity that I had to deal with then.
- 17JAN2011: So, I was right! Continuous Deployment to Production 50 Times a Day
- July 3, 2013: Hexagonal architecture via Uncle Bob: Architecture is About Intent, not Frameworks
“Potentially Shippable product – A Myth or Reality?”: http://agileworld.blogspot.com/2009/11/potentially-shippable-product-myth-or.html
Continuous Integration: http://en.wikipedia.org/wiki/Continuous_integration
“Learn how to Pivot — or you’re toast”: http://bit.ly/aa80CL
Mock Object: http://en.wikipedia.org/wiki/Mock_object
“Mocks Aren’t Stubs”, http://martinfowler.com/articles/mocksArentStubs.html
“Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))”, http://www.amazon.com/exec/obidos/ASIN/0321601912