Building fast is not building well !
The above quote precisely fits well when it comes to Software engineering. Doesn't it? How many times we just got away without proper Code review to make the work live? How many times did we get away with horrible nested loops in your code? Do we even talk about page speed score for the website built? The answer- "These ideals don't work in the real world", says Chatur from 3 Idiots : )
A sad truth. Who will answer the impatient client who mails now and then? And if it's a product based company, Who will wait to turn a stone into gold, after a particular feature launches?
We talk about buzz words like Agile, Continuous delivery etc. etc., but we tend to get away with a basic word called "testing", testing in the real sense and not the UI here and there! We believe our junior developer to be just perfect to deliver in a few days, without any bugs and utmost perfection. Just to bash out in panic when the product encounters a high-priority bug at production!
Because In practical life, This quote fits well:
Software breaks before it bends, so it demands perfection in a universe that prefers statistics.
Expecting perfect work in a limited time with limited resources is equivalent to defying laws of gravity. We might do some rigorous planning and perfectly define the software requirements, but we can't predict how many sleepless nights a particular "Null pointer exception" will take! And how many hours will it take to resolve the Git conflict!
In other words, To always aim for perfection is rather stupid. It seems like the software industry took "Life is a race...." quite seriously : ) We are in a business of bombarding our codebase with new features, only to realise after years the mess we have created. No reinventing of the wheels, "I am not a tester" attitude", "I hate documentation", and just producing a working code within the deadline is bad for the developer as well as the whole technology community which thrives on innovation.
As Dave Farley pointed out in his video, Fixing both the time and scope of software release, making people crunch for hours and then just expecting things to work is expecting miracles. And, Even I don’t believe in magic : )
A good software like wine takes time.
Check out this video on how Poor software engineering can burst into a disaster one fine day…