Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

15 workplace barriers to better code

What's standing between you and the next generation of great software?

  • Print
  • Feedback

Page 2 of 5

Measuring the productivity can actually make the code base worse by encouraging long files full of feature-rich, overly engineered code.

There is no real solution for this problem. We need to track bugs. We need to organize our workflow and coordinate the creation of the software. It's impossible to measure elegance.

 Programming productivity obstacle No. 4: Prima donna developers
As far as programmers are concerned, there is only one coworker worse than a boss: the other developer who created the last iteration of the code but no longer works on the project. Just as every home contractor will disparage the skills of the last carpenter, every programmer can quickly identify the horrible, inexcusable, completely brain-dead behavior of the last generation.

This may be true, of course, but it's rarely as bad as the programmer makes it sounds. If anything, it's often not a problem caused by lack of skills. There are different styles, and they change over time. The last generation didn't have access to the same libraries that we do today. They couldn't read the latest book on best practices.

This prima donna attitude about prior programming efforts can often slow down a project. The mixture of pride and self-interest can lead programmers to throw away perfectly adequate code just so they can rebuild it "the right way."

 Programming productivity obstacle No. 5: The "fix it later" mind-set, aka "technical debt"
There's never enough time in the day or days in a project plan to build what we need to build. We cut corners, patch code, and take out the virtual duct tape. A smart manager once called this "technical debt" after figuring out the bean counters understood that "debt" was something that must be paid off. Bean counters understand "debt" even if they don't understand code.

Every project has some technical debt. Sometimes it can be paid off quickly, but often the next generation shows up and finds it's starting off in a hole. They need to build what the last generation never did. It's like the national debt but not as big.

 Programming productivity obstacle No. 6: Nonprogrammer managers
There will always be smiling, happy folks who majored in anything except computer science involved in your programming project. Perhaps they married the boss's kid; perhaps they were in the right place at the right time. But the boss made them manager, even as they're trying to figure out the buttons on their BlackBerry. What's worse, they don't have a single ounce of Asperger's in them, so they insist on staring at your eyes throughout the meeting.

There are some programmers who like these glad-handers because fooling them is easy. If you tell them the Johnson DB is failing big time, they'll believe you and pass this ominous news up the chain. Someone has to take the flak from the upper managers. But others recognize that these guys just call meetings and get in the way. They can give little guidance, and the best they can offer is a bit of quality testing.

 Programming productivity obstacle No. 7: Programmer managers
While programmers may grouse about having to interact with nonprogrammer managers, they often quietly say that managers with programming talent can be worse -- sometimes much worse.


  • Print
  • Feedback