Software Engineering

For software engineers and those interested in learning about and developing skills in the area.

Comebacks for When They Say ‘Your Code Sucks’

Magnifying Glass Code Thumbnail
It’s tough enough to have people criticize your code, especially when the comments are coming from an intern. On Slashdot, one anonymous user had precisely that gripe. After ten years as a developer, the kid “started ripping into my on how terrible it is,” with complaints that are “simply because he does not have the experience with it to actually understand what the code is doing.” His bottom line question: He is a smart guy with lots of promise, he… continue…

More on Taking the Pain Out of Code Reviews

CSS Code
Code reviews are one of the most valuable exercises we conduct in software engineering. They’re also among the most painful. Last week, I looked at different approaches and the circumstances where each can be most effective. This week, we’ll get into source code management tools, and how the branching or commit mechanisms can affect how easy — or difficult — it is to isolate code for review. Source Code and Branching Code reviews are about units of code, usually one… continue…

10 Nice Ways to Say ‘Your Code Sucks’

Slipping and Falling
When you’ve got a colleague whose work looks more like Medusa’s hair than code that’s actually supposed to do something, you don’t have many good options: You can fix it yourself, complain to your manager, whisper about it to other team members, hold it all in until your head explodes or, maybe the scariest of all, go talk to the messy coder directly. The truth is, the scariest option is also the best. Most of the time, you can do… continue…

How to Take the Pain Out of Code Reviews

CSS Code
Code reviews. There may be nothing in software engineering that’s simultaneously more painful and more helpful. They’re helpful because they provide specific feedback looking at the code as code. They go beyond “Does it work?” and become learning opportunities for both the author and reviewer. But they’re painful because … well, have you been in those meetings? It’s always painstaking work to read so closely and look for small mistakes. Now do it in a three-hour meeting. It’s no wonder… continue…

Learn How to Program in Dart

Dart Language
This is the first tutorial in a series on learning to program in Dart, Google’s alternative to JavaScript. Although no other browser manufacturer has shown any interest in implementing Dart, JavaScript has certain flaws, particularly in maintaining large applications that effectively limit it. Big JavaScript applications are hard to debug and maintain. Google developed its Web Toolkit, or GWT, for developing applications in Java, then translating them to JavaScript. Dart takes a similar approach. You write and test your code in Dart,… continue…

Aligning User Stories, Use Cases and Requirements

Pair_programming_ thumbnail
In a previous post, I contended that requirements are still an important part of most enterprise environments, even those that might be using Agile lifecycle methodologies. However, I didn’t specify exactly how those requirements should be captured — or what even constitutes a requirement. This is an important question that spans both Agile and Waterfall methodologies. Many organizations feel that user stories are sufficient to build both code and project structures around. Is it out of the question to consider… continue…

5 Steps to Mastering Design Patterns

jigsaw_puzzle thumbnail
Design patterns are an important part of software engineering today, but what many folks don’t realize is how ubiquitous they are becoming within the full spectrum of IT activities. This is partly due to the flexible nature of patterns. Mastering design patterns is a critical part now of most IT architects’ roles, and from a larger perspective is also becoming increasingly important for most enterprises. Design patterns are meant to accomplish three critical things: Increase the speed of the design… continue…

Is Anti-Virus Passe?

security thumbnail
When security firm Imperva checked more than 80 unreported viruses against several anti-virus solutions, it found that none of the tested programs were able to detect previously unreported viruses and that 75 percent of solutions took a month or more to update their signatures. That isn’t good news, and while Imperva obviously has some self-interest here, their November Hacker Intelligence report, Assessing the Effectiveness of Anti-Virus Solutions, is worthy of a closer read nonetheless. What it means is that we have to depend on a… continue…

Javascript Guru Dishes on How to Be a Stylish Programmer

SVCC12_01
“[Programming] style is the part of the program the compiler ignores,” said Douglas Crockford, known to many programmers as the Guru of Javascript. Crockford laughs and said he sees himself more as a mahatma. We spoke at the 2012 Silicon Valley Code Camp at Foothill College in Los Altos, California. While style is personal taste, it can have a critical influence on your error rate. And reducing your error rate will make you more productive, said Crockford. “Qualities that you… continue…

When Software Engineers Whine With Reason

Frustrated Woman
Not long ago, Slashdot’s Jeff Cogswell set out to see if two business intelligence tools would come back with the same answer to a single question. Two months later, he’s come back with a horror story instead. Not about BI, but about the state of software installation. It’s a tale, he says, of “everything that can go wrong in the customer end of the software world, and some thoughts on what needs to be done, especially in an area known… continue…