- Understanding Software
- Max Kanat Alexander
- 513字
- 2021-07-08 10:22:29
Chapter 8. Complexity is a Prison
Sometimes, I think, people are worried that if they make their code too simple, then either:
- Somehow they're not demonstrating how intelligent they are, or how valuable they are, to their managers, or
- The project will become so simple to work on that anybody can just steal their job!
It's almost as though if they actually did their job right, then they'd lose it. Now, stated that way, that's obviously a nonsensical viewpoint. But, if you've ever worried about it, here's something to think about:
What if your code is so complex that you'll never be able to leave your job?
What if you made something so complicated that nobody else could understand it? Well, then you personally would be tied to that project forever and ever. If you wanted to work on some other project at your organization, your managers would protest, "But who else will maintain this code?" Whoever was assigned after you to work on your code would constantly be walking into your new office, saying, "Hey, how does this part work?"
Maybe you have no conscience, and you'll just leave the code to some hopeless replacement and ditch the company. However, I'm guessing that most people would feel tied to a project if they were sure that nobody else could ever take it over successfully. And really, even if you just take off and leave, somebody's going to be calling you up and saying, "Um, hey, you know that one piece of code where…" You'll get emails from "the new guy": "Hey, I hear you wrote this code, and I have this problem…" If you can't make somebody else understand your code and have them truly take it over, then you're going to be stuck with a piece of that job forever.
In the Bugzilla Project, I did the best I could to work myself out of a job. I loved working on Bugzilla, but I don't want to be tied to it every moment of my life. I wanted to go on vacation sometimes. I wanted to write music!
You can still hear my music and songs here by the way: http://youtube.com/user/imagineeighty and http://soundcloud.com/mkanat.
I wanted to be able to leave my computer for a month, and not have the whole world collapse. So I worked to make Bugzilla simple enough and well-designed enough that somebody else could take over the parts I worked on, some day. Maybe then I would go on and work on other things in Bugzilla, I thought to myself, or some other programming project that I had, or maybe I would go make an album! Who knew!
I knew I didn't want to be imprisoned by my own code.
If job security is so important to you that you'd tie yourself to a single job forever just to get it, then maybe you should re-evaluate your priorities in life! Otherwise, when you're making decisions about your project, one thing to remember is this:
Complexity is a prison; simplicity is freedom.
-Max
- Flutter開發(fā)實(shí)戰(zhàn)詳解
- Cassandra Design Patterns(Second Edition)
- Python:Master the Art of Design Patterns
- MongoDB權(quán)威指南(第3版)
- The Complete Coding Interview Guide in Java
- Python忍者秘籍
- Mastering ROS for Robotics Programming
- Learning Probabilistic Graphical Models in R
- Java系統(tǒng)化項目開發(fā)教程
- MySQL從入門到精通(軟件開發(fā)視頻大講堂)
- PLC應(yīng)用技術(shù)(三菱FX2N系列)
- 基于ARM Cortex-M4F內(nèi)核的MSP432 MCU開發(fā)實(shí)踐
- Quantum Computing and Blockchain in Business
- Azure Serverless Computing Cookbook
- Python Interviews