If you can’t fully answer this simple question then your software project is in trouble. A clear list of requirements should always be on hand and easily referenced.
The truth is that the vast majority of software endeavors don’t document anything at all. If you can’t clearly state what your software does then you should race to find the right answer.
There is no easy way to watch a piece of software being built.
Developers and clients both have a problem of determining where they are at within a software process. Project management tools like Pivotal Tracker help developers keep track of their progress. Clients usually have little to no view of the development process beyond a bug tracking system. Neither is ideal.
Last week a thought hit me: What if building software was more like building a skyscraper?
Unpacking that thought further: What if there was a common view of the software process? Something everyone can understand.
I imagined a literal interpretation of this idea: an image of a skyscraper being built that represents the software development process. Floors represent the various tasks and work to be done. Workers (developers) can be seen as they spend time completing floors. Watch the building go up and always have a sense of where things are.
There are a couple of giant pitfalls in communication that I think this kind of idea can help mitigate:
Some of this stuff may seem obvious but developing someone else’s abstract idea is always harder than you think. We need better ideas and tools to keep everyone on the same page.
Software development is largely a communication problem. Writing code is easy. Setting and meeting client expectations on time and on budget is hard.

Kyle Shank, 26, is a software consultant at Reactualize and lives in the greater Boston area. He has worked within the software group at IBM in Massachusetts, North Carolina and Zurich, Switzerland. In 2005 he co-founded the first open source Ruby on Rails specific IDE RadRails based on Eclipse. Kyle graduated from the Rochester Institute of Technology in 2007 with a bachelors degree in Software Engineering.
reactualize (my consulting company)
flickr
twitter
github