Programming: College vs Corporation

Disclaimer: This is based solely on my own experience. Other people will likely have different experiences, and the analogy does not apply to greenfield projects.

Programming in College is like being given complete blueprints and all the tools and materials you need to build a nice little cottage on a neat and clean foundation. Once you’ve built enough little cottages of varying design for different purposes, and maybe even a full house, it is assumed that you are ready for professional life.

This is a problem.

Programming for a corporation in the professional world is like being given a small screwdriver and some duct tape, then sent out to patch holes in and make additions to a huge mansion. Sometimes you find a whole room that was never connected to the main building, or one that has long since been boarded off but no one bothered to remove. The plumbing leaks and the shutters bang loudly and the doors never quite close. There’s a cockroach infestation and some sort of squirrel in the attic. The original blueprints were lost long ago, and those who have been maintaining the place for years are jaded and critical of the way it is built. You all keep tweaking away with your little screwdrivers and duct tape, begging for a complete do-over or at least a hammer. Everyone praises you for removing old walls and rooms that are never used, but cautions you not to be too hasty because nobody knows quite how the wiring is done. On top of it all, there are dozens or hundreds of people living in the mansion as you work, and you have to be careful to never disturb them. If you make the mistake of letting them know who you are, you might be plagued with requests to fix the things wrong with their rooms. Doing a good job only increases such requests. You want to make the building better, but the requests seem like asking for velvet pillows when the problem is bedbugs. You give the pillows willingly, but making them is a distraction from killing the bugs.

I’m not sure if there is a solution. I think Uncle Bob’s clean coding guidelines are an attempt at one.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s