3 ms·
“How can I get Bill to stop writing spaghetti code” is only superficially a technical problem. In reality, it presents a human problem. Actually, it's a manag
by edw519 10y ago
“How can I get Bill to stop writing spaghetti code” is only superficially a technical problem. In reality, it presents a human problem.
Actually, it's a management problem. Management must establish and enforce proper process and culture.
Necessary but not sufficient:
1. Code standards, determined and agreed upon together
2. Peer review against those standards
3. Requirements Definition policies and procedures
4. Function Specification policies and procedures
5. Unit Testing policies and procedures
6. Technical debt policies and procedures (when to grandfather)
None of this has to be that complicated. When the rules are understandable, logical, and everyone agrees to play by them, this takes the monkey off everyone's back. You don't have to worry about approaching Bill about his bad code. You have a "business framework" you can rely upon to take care of that for you. Then no one's the bad guy. This is just good basic I.T. management.
Spaghetti code by others is the norm. I have maintained the shitty code of thousands of others. If they're gone, I cuss them all day long. If they're still here, I'm nice. I help management build the processes needed so that I can stay nice. I do my job. I expect management to do theirs.
- asimuvPR 10y agoGood points. Code ends up being a reflection of internal structure. Management is tasked with defining that structure. If it gets to the point where a developer has to fight for good structure then management has failed and there isn't much to do if they can't see any issue.
- nialo 10y agoI agree with this pretty much completely, although I wonder a little how it works at places like my current one, with 4 total programmers. I just wanted to add that probably every 'human problem' or 'people problem' at the individual programmer level is really a management problem. This is the same as how every manufacturing defect is really a process problem.
- ska 10y agoWorks well with small teams. Small teams mostly implies smaller projects & scope, so that scales the documentation nicely. Also, you have fewer communication barriers to defeat.
- csharpminor 10y agoYou're absolutely right, but I'll just note that many, many companies do not have management with the technical acumen to facilitate those decisions. That kind of leadership is a luxury.
- smonff 10y agoBill is also surely a part of management.
- JoeAltmaier 10y agoThat's a big-company solution? When its just a room full of guys, maybe a better approach is to hire more carefully. A half-dozen developers need a skeletal process, especially in a startup.
- ryandrake 10y agoConsistent enforcement is key. You can have all the policies and procedures in the world but if not everyone is motivated to follow them all the time, they're pointless. Also required: the ability to stick to the policies and procedures in the face of "Just ignore the rules this one time--we urgently have to ship this month!!" Cave once, and suddenly every month becomes "urgent".