How mock objects make Gantt charts (more) useless
jakegoulding.posterous.com
jakegoulding.posterous.com
Not that many support doing so, nor do most suport the full range of what they're supposed to be able to do. That's a different issue. Personally, I think the single greatest flaw with Gantt charts is that they're (technically) supposed to always have everything add up to 100%. Which means either you set something up to do it for you, or you have incredible book-keeping that becomes ridiculous when you have changes or more than a handful of entries.
Thanks for the link to the app, but I hope I don't have to create any Gantt charts myself. :-)
In a Gantt chart, you'd also probably have all those under the same higher-level WBS number[1], so they're conceptually grouped. Reflecting how they are all related, and are developed at the same time. Or maybe you'd group the entire project until completion under a single one. Or something.
In any case, you'd have something like:
{ 1: project scope }
{ 1.1: stub it out } {1.2: finish it } {1.3: deploy it}
[build] \
[mock] - [integrate] - [build] - [test] - [deploy]
[mock] / \ [build] /
which is fully within Gantt capabilities.Not that I'm really a fan of Gantt charts. But most of that has to do with how the UIs have been implemented, which tend to prevent at-a-glance information, because the details are decoupled from the chart. Useful for managers, not so useful for the ones making those parts. They're also usually just a spreadsheet with a static chart nearby, which prevents a lot of simple twiddling of details that are difficult in spreadsheet form.
But the only difference I see so far is that the mock-objects have a shade on the left which shows they're mock. Which is something that is possible to do within a Gantt chart, if not something that's implemented frequently enough to make it practical.
My real point is that project plans often devolve into "we must do A before B before C", which artificially serializes development. This sequential nature has often been presented in Gantt chart form, so perhaps my ire has been poorly aimed.
A little sensationalist, yes, but I'm really not seeing any conceptual difference that's not part of the basic behavior of Gantt charts. If I'm missing something (fully possible, I'm a bit distracted), I'd be interested in knowing what it is.
They are just not designed for agile programmers. They can be used for software, and are somewhat useful, if only because nobody ever reads the spec, but they can see what must be done on the Gantt chart.
Scary.
I also call out this fact later, when I list some potential downsides to developing this way: "The cumulative time for the sequential method is seven developer-weeks, but the parallel method takes ten developer-weeks."
The time to define interfaces and/or contracts should be a wash. If you design up front, then you can just use that, and if you are working in a more agile manner, your teams can communicate and experiment with getting the right interface. Either way, you have to spend time.