How it works Static code analysis Technical paper

Choose a category:

What users want

January 28th, 2008 by Nigel Cheshire. Posted in Software Quality

I stumbled upon this post by Solidworks user (and expert) Matt Lombard. In the post, Matt is actually comparing this year’s Solidworks World show with last year’s show. But what caught my eye was a comment he made at the end of the post:

“Several SolidWorks employees tried to explain to me about how development is taking more responsibility for software quality instead of passing the buck to QA, which is a great thing, you might even say OBVIOUS, but in the end, users don’t care about HOW it happens, we just care THAT it happens. Don’t regale me with tales of your great feats, just show me software that works predictably.”

Sometimes it’s helpful to remind ourselves that few users are interested in what we may or may not be doing to improve software quality. They just want software that works.

Glitch Watch - Air transportation edition

January 25th, 2008 by Nigel Cheshire. Posted in Glitch Watch

Speculation has been rife about the cause of last week’s crash landing of British Airways flight 038 from Beijing to London’s Heathrow airport.
BA 038
Initially, theories included a bird strike, fuel contamination and maintenance errors. By Monday of this week, software was the focus of attention, primarily owing to the fact that it was believed that both engines had stopped at the same time, suggesting a “commanded” shutdown. Then yesterday it emerged that one of the engines was believed to have been still turning, even after the plane crash-landed.

Whatever the final cause is determined to be, the good news is that the crew and all 136 passengers on board escaped with no serious injuries.

Meanwhile, Moscow’s Domodedovo airport was thrown into disarray on Saturday after the passport control computer system crashed. No flights were delayed, but passengers had to wait in long lines while the problems were fixed. Imagine that, having to wait in long lines at an airport.

Finally, closer to home (for us, at least), the air traffic control system at the Boston Center in Nashua, NH, had to be rebooted this week, causing delays at Boston’s Logan airport. Imagine that, delays at Logan. Controllers had to use a backup system for about 45 minutes while the main system was rebooted. Information about some flights had to be entered manually, via phone calls to other ATC centers, which is what caused the slowdown. John Hansman of MIT, an adviser to the FAA said, “It’s a large and complicated system which has been running for 30 years, and every once in a while it’s going to have a problem.”

Video: Programming - art or science?

January 21st, 2008 by Rich Sharpe. Posted in Enerjy.tv

Last week I attended the CodeMash conference in Sandusky, OH, which included a list of impressive speakers giving some excellent sessions.Neal Ford’s keynote “Engineering & Polyglot Programming” discussed how we describe our profession to non-technical people (family, friends, people in the public who ask what you do….).

Ford explained how most of us use the (much despised) engineering metaphor; specifically using the example of building bridges, then went on to clarify that software development is not like traditional engineering at all.

This got me thinking (yet again) about whether software development is an art or science. So I caught up with Neal and Stelligent president (and author of The Disco Blog) Andy Glover, and asked them their opinion on the issue.

Video thumbnail. Click to play
Click To Play

Glitch Watch - Software implicated in Airbus “rocky ride”

January 18th, 2008 by Nigel Cheshire. Posted in Glitch Watch

Queensland, Australia: Transport Minister John Mickel is coming under fire after a series of problems rolling out a new integrated ticketing system for public transportation authority Translink. 179 brand new ticketing machines were out of commission on Wednesday morning owing to a software problem. By 4:00 pm most were back up and running, with about a dozen still out of action. Apparently this is the latest in a string of problems and delays that have dogged the $99m project.

Airbus A319Meanwhile, according to South Africa’s Independent newspaper, German motorists were treated to gas at 3 cents a liter on Tuesday. The Berlin gas station owner was putting the price of gas up by 3 cents, but the system thought he meant to increase from zero, not the previous price. After five hours of long lines, the local police had to be called to help close the gas station down.

Finally, Air Canada passengers experienced a rocky ride on flight 190 from Victoria last Thursday. According to Canada’s CBC news, the plane suddenly pivoted from one side to another, sending the coffee cart, laptops, books, and even people who weren’t wearing their seat belts flying. The pilot blamed the incident on computer failure, flying the plane manually to an emergency landing in Calgary. Passenger Kathryn Bowler said, “The cockpit crew took a lurching aircraft quickly out of a terrifying ride into a manually controlled, outstanding landing, to the applause and cheers of us all.”

Software quality in plain English

January 17th, 2008 by Nigel Cheshire. Posted in Legacy Code, Software Quality, Unit Testing

As we have just launched a new version of our Web site, I have been thinking a lot about communication recently. I think that there is way too much mystery in the way that we communicate with each other about software quality issues. Agile, TDD, BDD, Scrum, DSDM, EssUP - these terms can seem exclusionary to anyone who is not familiar with them. If we are going to spread the ideas behind these terms, we need to make it easy for people to understand.

When we launched our new site, we worked with a small company based in Seattle, WA called Common Craft to create a video explaining what Enerjy is. Lee and Sachi have developed a video-based format they call Paperworks, as a way of easily communicating potentially complex concepts. Working with them gave me an amazing appreciation for what they do - explaining Enerjy in less than three minutes was an incredible challenge, and I think they pulled it off.

Last month, Rich posted a video podcast on testing legacy code. One of the folks he interviewed was Rob Myers from Net Objectives. In the interview, Rob plugged his “Streamzine” on testing legacy code (registration required). The format is Powerpoint intermixed with a demo. I really like the way this is presented - any time Rob introduces a new concept, he pauses to explain it. The demo is well paced, and really does a nice job of explaining many of these concepts in a practical way. Although it’s about an hour in length, it’s time well spent for anyone interested in testing legacy code.

Glitch Watch - Sewage in Lake Elsinore

January 11th, 2008 by Nigel Cheshire. Posted in Glitch Watch

Happy Friday! Some 5,000 Atlanta city workers were not paid on time last week, according to the Atlanta Journal-Constitution. The problem was blamed on a bank transmission error, and Atlanta CFO Janice Davis was at pains to point out that the problem had nothing to do with the $46m conversion to a new Oracle-based payroll system which had been completed earlier in the week. One year behind schedule.

lakeelsinore.jpgMeanwhile, a system slowdown at the American Association of Motor Vehicle Administrators (who knew such an organization even existed?) caused problems for motor vehicle licensing authorities in Ohio and North Carolina. According to 16-year-old Jessica Cantrell in Raleigh, who had hoped to get her license that day, “It really sucks.”

Finally, the San Diego Union Tribune reports that computer problems caused about 60,000 gallons of partially treated sewage to flow into Lake Elsinore last weekend. Greg Morrison of the Elsinore Valley Municipal Water District said that all the bacteria in the sewage was dead, so wouldn’t be harmful to fish or humans. That’s alright then.

Welcome to the New Enerjy!

January 10th, 2008 by Nigel Cheshire. Posted in Enerjy

It’s Thursday morning, and yesterday we pressed the button on launching the New Enerjy. That means a shiny new Web site, not to mention a brand new (free beta) product. I won’t spend too much time here talking about the new product, there’s plenty to read on the new Web site. Plus, we had our talented friends at Common Craft create a short video describing what it is and how to use it.

Suffice it to say that Enerjy is based on roughly 12 months of research that we have been embroiled in leading up to yesterday’s launch. Our previous product, CQ2, was great for tracking code quality metrics. But often people would ask us: “where is the proof that improving these metrics will reduce defects?” To be honest, there wasn’t any. So we set out to answer that question, by analyzing hundreds of thousands of Java source code files, and correlating more than 200 metrics to defect rates. We found that some metrics, and even some combinations of metrics, turn out to be good predictors - to within about 85% accuracy - of bugginess.

So, if you’re interested, I invite you to try out the new Enerjy. It’s an Eclipse plug-in, and can be downloaded directly from within Eclipse. Most importantly, let us know what you think.

Programming, construction metaphors and snobbery

January 8th, 2008 by Nigel Cheshire. Posted in Software Quality

Joel Spolsky wrote a thought-provoking post today about the suitability (or lack of it) of “existing computer science education” to training students how to develop software. Spolsky proposes a BFA in software development that would consist of 1/3 liberal arts and 2/3 software development work - on real projects.

This has triggered a debate in the comments about whether programming is art or science, but to me, that’s a red herring. Reddit user Twylite comments:

To use the oft-cited (and much despised) construction metaphor:

  • we need people to develop the underlying theory that makes building possible. –> physicists, computer scientists
  • we need people who can understand the requirements (explicit and implicit, like safety and affordability), conceive of a solution in its entirety, and be involved in the process of realising that solution (without actually getting their hands dirty, often). –> Architects, mechanical and civil engineers, software engineers
  • We need people who are skilled at building the bits that go into the solution, be it laying bricks, installing plumbing and electrics, painting and fitting, implementing algorithms and queries, configuring web servers and databases, designing page layouts. –> Tradesmen = bricklayers, plumbers, electricians, programmers, graphics designers, system/DB administrators

Having grown up in the U.K., it’s always surprised me how late in academic life U.S. students are made to specialize. (As a junior in high school in England, I was forced to choose 3 or possibly 4 subjects to study, with stern advice to choose either an arts or a science bias. By the time I entered college, I new exactly what my bachelor’s degree would be in.) Perhaps we need to specialize just a tad more, and fit the training a little tighter to the vocation.

And, I hope that as an industry, we’re not in danger of becoming snobbish when comparing “computer scientists” with “software engineers” or even, heaven forbid, mere “programmers”. Just like their construction industry counterparts, they all have equally important roles.

Video: Code coverage tools

January 7th, 2008 by Rich Sharpe. Posted in Code Coverage, Enerjy.tv, Software Quality, Unit Testing

Unit Testing is one of our passions, and a natural extension to this is Code Coverage measurement. Tools such as Cobertura (Open Source) and Clover have been around for many years, and are gaining popularity in many teams I visit. Recently, there have been a few blogs commenting on the benefits and potential pitfalls of using this type of tool.

Video thumbnail. Click to play
Click To Play

Glitch Watch - Auld Lang Syne edition

January 4th, 2008 by Nigel Cheshire. Posted in Glitch Watch

Seattle’s damp squib fireworks celebration on New Year’s eve has been well covered on Slashdot and elsewhere, so we won’t spend too many column inches on it here. But if you haven’t seen the video, it is quite amusing.

My mother flatly refuses to buy anything online. And, after his experience at last week’s Liberty Bowl, Durward Dunn from New Orleans might just agree with her. He bought his seat at the Memphis, TN stadium online at Ticketmaster.com, but when he arrived at the stadium, he found that his seat did not exist. Turns out the stadium renumbered the seats back in 2005, but Ticketmaster’s online system was not updated. Anyway, Dunn was so happy about his team’s win that he waived the Bowl’s offer to reimburse the cost of his ticket.

Meanwhile, seniors in the wee Scots town of Kirkintilloch were unable to collect their state pension payouts from the local post office in the run up to Christmas, according to the Kirkintilloch Herald. Staff were unable to access the system from December 22nd until Christmas eve. Elderly customers were advised to try a different post office.

Kirkintilloch

 

Finally, there were reports that many Verizon Wireless customers were unable to place calls in the first few hours of the New Year, as software problems were exacerbated by high call volumes. The glitch was fixed by 4:00 am - by which time I’m sure many people had given up and gone to bed.