Give me something Quick and Dirty !?
That’s one of the most common statement that gets good engineers agitated .
It used to disturb me the most when I was a young Architect .But with experience now am able to understand the situation from where this statement originates .Once you see this it will also help you feel calm at workplace by not feeling Us vs They conflict or feeling that your craftsmanship has been questioned .
Here is where it originates
Clarity and certainty are the two most important things that Managers/Directors get asked about . The world will look like heaven if software engineers could given their managers certainty that the job will be done with quality and on what-time . And guess what , this almost doesn’t happen .
So the second thing that manager will seek is clarity . Are you past the roadblock ? what could he do to help you ? and so on. And finally it again comes down to : the next certain date of delivery.
The world of the software engineers
This is in stark contrast with the world the software engineer. To begin with there is lot of ambiguity in the requirements .It has always been there ! There is also lot of interdependency with everyone else’s work . And on top of that there are all the patterns , designs ideals and cross cutting concerns one need to take care of . This is one of the main reason we all could write solution to our LeetCode algorithm problems in a near predictable timeframe but we cant be sure of when our teams can finish the project .
The issue oftentimes is that we as software engineers are poor at communicating all these dependencies that we feel and know .Hell we even expect “them” to know it beforehand !
In great teams there are individuals or mechanisms that help developers verbalize and communicate it .But it is not so common .
What Quick and Dirty actually implies
This where the Quick and Dirty comes in ! The manager ,pushed to the walls of deadline is asking you.
1. Can you please do the most direct code to the requirements , the design ideals can be applied later .
2. Make working assumptions on the missing pieces .
3. Eliminate the dependencies on others to the maximum extent possible .
4. Look for something already available or even an alternative approach.
5. Brute force is allowed instead of elegance (for now).
6. Do not produce buggy or insecure code .
So the call for Quick and Dirty is really a call for software engineer to move from craftsman’s role to the role of savior ,communicator and negotiator (bargainer if there is a word like that ).
What has been your experience with the call to Quick and Dirty ?Did you avert the crisis ? Did you bargain of extra time to make everything proper later ?
ps: What happened to the work of Tech Managers you may ask ?that in next blog