Software developers Rules #41

 


Don’t gold plate.  Work to the requirements and if you have an idea to do something more / different / better, follow the change management process.  I have seen more problems created by "Oh, it was easy to add, so I just put it in" than any other single cause.

Don't hide problems.  If something isn't working, don't hack in workarounds.  Find the root cause.  The more layers of convoluted crap that gets into the code, the more difficult and expensive it becomes to test, maintain and upgrade.

Keep it simple.  I used to work with a developer that just loved to prove how smart they were by building these stupidly complex patterns and expressions.  I don't care if you can jam 23 lines of code into a single 70 element long expression.  It's going to create a problem for anyone trying to decipher and maintain it in the future.  The simpler and more straightforward the code and logic, the better it is for the customer and the team who has to support it.

Document the crap out of everything.  Assume that someone looking at your code has just dug it up out of a code vault 20 years from now and has none of the background that you have.  They need to be able to understand what you're doing and why.  Document accordingly.  I just assume that this is a way of paying it forward.  I will one day be in that situation of having to debug someone else’s code and that person may have seen my documentation and learned to emulate it. 

Build for reuse.  This is less of an issue these days than it was in the time of monolithic mega-programs.  I learned to code on systems where you had to fit code into 4k overlays.  You learn to modularize functionality and find neat ways to build complex systems "Lego-style". That was really the precursor to object oriented design and development and its part of most modern languages. But I still occasionally come across code that's written as 100,000 lines in main () (or the equivalent) with a handful of callouts. If there was every justification for beating sense into someone, that's high on my list.

Comments

Popular posts from this blog

Best Data Loss Prevention Software Tools part-1 #53

Levels of Programming #47

Best Data Loss Prevention Software Tools part-2 #54