> When people ask them what they need, the [users] dutifully list out their conscious knowledge. When a [developer] cranks out a patch, the result will be unsatisfactory: unless the [developer] is luckier than anyone deserves, the patch will fail to meet the requirements in the subconscious list. The [client] then says "We told you exactly what to do, how could you mess it up so badly???"
This story is universal. It's one of the few reasons why software projects are always late, over-budget and do not deliver the expected features.
What is really needed is someone who has a foot on each side, and is respected by both. If this someone comes from the developer side, he needs to take the time to learn how the client side does it's thing, and to feel the "pain" they feel. If it comes from the other side, he has to be someone capable of (and willing to) solving problems with logic, not political pressure.
Posted Jun 7, 2011 17:55 UTC (Tue) by PaulMcKenney (subscriber, #9624)
[Link]
And isn't this the problem that "extreme programming" and "agile methods" were supposed to solve? ;-)
Android, forking, and control: Communication
Posted Jun 7, 2011 18:35 UTC (Tue) by dlang (✭ supporter ✭, #313)
[Link]
kernel development is probably the best example of 'agile methods' that you can find.
there is no planned feature set for each release, instead each development team works on their set of features and when the merge window starts, anything that's ready gets pushed upstream.
but this only works if the development teams work on smallish features (or does their development in a way that gradually changes the result rather than big bang changes)