Common technical conversation: “Well, why don’t we just make a generic system, and then we’ll tweak it to work with every specific implementation as we roll it out?”
There follows a long conversation from any good project manager that runs roughly like this:
a) In order to avoid having to completely rework much of the innards of a “generic” system, you need to know all the ways in which the specific systems could be exceptional.
b) In almost every case, if you knew the data in (a), there would be no reason to build a “generic” system, because you could simply start building the specific systems.
c) No, customer, your case is not an exception to (b).
d) OK, happy to do it your way. Please sign this spec, and pay attention to the bit that states that change requests void deadline commitments and will be charged extra at a higher than standard rate.
Most “simple projects,” at least in the tech world, tend to be complex projects that have not been subject to sufficient scrutiny to have their complexities identified.
Emphasis mine. Via Will Obamacare’s Exchanges Be Ready on Time? – The Daily Beast.
Let’s Just Build A Generic System!: Common technical conversation: “Well, why don’t we just make a generic sys… http://t.co/TyCMeEaiBR
Let’s Just Build A Generic System! – Paul M. Jones http://t.co/FLTnW4OMkQ
New #PHP Post: Let’s Just Build A Generic System! http://t.co/N10q81l7oU
“Most simple projects … tend to be complex projects that have not been subject to sufficient scrutiny” http://t.co/jNU9B5kMM1
RT @craigmarvelley: “Most simple projects … tend to be complex projects that have not been subject to sufficient scrutiny” http://t.co/j …
I have found that having several, *really* well thought out “generic systems” available for pretty common use cases (common to our business operations, anyway) to work out pretty well, actually. Some of those generic systems are simple, and some are not.
When people come looking for a specific solution that they have twisted into something ridiculously complex, I present to them their options.
1.) Tweak your requirements to allow use of the generic system, and get it done in a couple of days or weeks.
2.) Build a specific system that rigidly implements your requirements to the letter, and we’ll roll in out several months from now . . . assuming that your requirements are absolutely complete right now. They are complete, right? Right?
They almost always choose #1. The people that choose #2 never do it again.
RT @craigmarvelley: “Most simple projects … tend to be complex projects that have not been subject to sufficient scrutiny” http://t.co/j …
Mandatory, short reading for all consultants and project managers: http://t.co/sw0MiNPkHP
“simple projects” …tend to be complex projects that have not been subject to sufficient scrutiny…. http://t.co/jgJd3dyYWe
#php Let’s Just Build A Generic System! – http://t.co/sNonhOQad5
Great idea! I wait for results 🙂
Obligatory XKCD: http://xkcd.com/974/
Nice idea with the charged extra :-). It’s true that there is no such thing as a generic system that can solve everything (i don’t count C or other programming languages as a system).
Problem here is that even if you create really complex system that allows your client to do everything he needs it will be too complex for him to use and he will not be able to use it.