The biggest downside of experiment based engineering is that if you aren't careful you can easily slip into programming by coincidence rather than intentional engineering. This can lead to unstable systems that nobody understands.
The key question: when new requirements (an inevitability) force you to re-engineer a key element of your system (an inevitability) will you have to perform more "experiments" to figure out which random mutations of your previous design yield the desired results or will you be able to mostly plan ahead of time how to change your design to have the desired characteristics?
If it's the former then you may be faced with the prospect of a change of requirements that you are incapable of coping with, causing your business plan to die. Many software companies have met that fate.
Comments
The biggest downside of experiment based engineering is that if you aren't careful you can easily slip into programming by coincidence rather than intentional engineering. This can lead to unstable systems that nobody understands.
The key question: when new requirements (an inevitability) force you to re-engineer a key element of your system (an inevitability) will you have to perform more "experiments" to figure out which random mutations of your previous design yield the desired results or will you be able to mostly plan ahead of time how to change your design to have the desired characteristics?
If it's the former then you may be faced with the prospect of a change of requirements that you are incapable of coping with, causing your business plan to die. Many software companies have met that fate.