Now that Tech·Ed is over, I’ve
got some time for things like playing Xbox, yard work and reading. I
just finished The Footsteps of
God
(not bad, but not great – fine for airplane reading below 10,000 feet
and after my battery died). On the technical side, I’ve been rereading
ATL
Internals
for a COM based coding project I’m working on in my nearly-non-existent
spare time. I also just started Software
Factories
by Keith Short and Jack Greenfield
(with contributions by Steve Cook and Stuart Kent). Keith and Jack are
architects in the Visual Studio Enterprise Tools Group. They are
responsible for driving Microsoft’s model based development tools
initiative and are heavily involved in the creation of the Whitehorse
tools. Software Factories isn’t available yet – access to an early
electronic copy is one of the perks of knowing the authors and having
one of them speak as part of my Tech·Ed
track.
Software Factories is about approaching application development with an
industrialized manufacturing mindset, rather than the hand-crafted
mindset we have today. It’s interesting how well this dovetails with
Pat’s
Metropolis
work – both draw parallels to and learn from the Industrial Revolution.
To quote from the website:
The industry continues to hand-stitch applications distributed over
multiple platforms housed by multiple businesses located around the
planet, automating business processes like health insurance claim
processing and international currency arbitrage, using strings,
integers and line by line conditional logic. Most developers build
every application as though it is the first of its kind anywhere.
Without significant changes in our methods and practices, global
demand for software development and maintenance will vastly exceed the
pace at which the industry can deliver in the very near future.
Scaling up to much higher levels of productivity will require the
ability to rapidly configure, adapt and assemble independently
developed, self describing, location independent components to produce
families of similar but distinct systems. It will require a transition
from craftsmanship to manufacturing like the ones we have seen in
other industries, and will eventually produce more advanced earmarks
of industrialization, such as supply chains, value chain integration
and mass customization.
We must synthesize…key innovations in software development…into a
cohesive approach to software development that can learn from the best
patterns of industrialized manufacturing.
This is what we mean by Software Factories. The industrialization of
software development.
The book is fascinating, and I only just got started. The book should be
available soon. Going forward, you can expect coverage on Architecture
Center, as well as the
official Software Factories
website. In the meantime, keep an
eye on Keith’s blog, check out
this
piece
from the Architecture Center Update as well as this
article
on domain-specific languages, and watch Keith’s session from The
Architecture Strategy
Series.