Software Quality archives - Software Quality Insights

Software Quality Insights:

Software Quality

Mar 9 2009   12:41PM GMT

Agile, management tools help small team boost software quality



Posted by: Jan Stafford
Software Quality, Agile software development, Rally Software, software development

Scheduling, documentation, tracking bugs and –- most critically -– producing great products with a small development staff are the headaches Dan McRae, Comet Solutions Inc.’s software engineering manager, faces every day. I talked with McRae recently about how he’s combined best practices and lifecycle management products to get the upper hand on quality assurance (QA) and deliver strong products on deadline. Indeed, Comet estimates that these tactics have improved software quality by 25% and time-to-market by 10 to 20%.

McRae oversees a team of about 10 developers, two of which are dedicated to QA, although all do some QA work. They produce about four major and four point releases each year for Albuquerque, N.M.-based Comet, which provides design engineering workgroup software primarily aimed at enabling early simulation.

“Our biggest challenge is that we only have two full-time QA people,” McRae said. “The rest of us generate more features than they can thoroughly test. As manager, I direct what QA’s focus is. Some of those directions are based on word of mouth from our developers; but I also get direction from our chief technical officer, who points to things that are high-risk and need to be addressed. There are always challenges because there are always the latest defects that have the highest priority, and several of those pop before you can fully QA the previous ones.”

Comet’s development team uses agile development and automated tools to reduce the development and QA burden and improve quality overall.

Using waterfall methods for product development became very difficult as software and users’ needs became more complex. Under waterfall, it took too long to handle customer requirements and changes. Today, McRae’s team uses such agile techniques as daily standups to discuss current relevant issues, working on a two-week iteration and having release planning meetings based on Scrum practices.

While moving to agile processes, the development team found that its homegrown tools couldn’t evolve to improve the team’s ability to track defects, feature releases and scheduling.

“We had been using a home-concocted system for tracking defects and feature requests internally ourselves, and it wasn’t able to help us keep up with changes in customer requirements or QA,” said McRae. “That system didn’t have scheduling abilities, so planning was done on a kind of ad hoc basis.”

After scouting around for better tools, Comet’s team did a trial run on Rally Software’s Agile lifecycle management solutions. The trial led to adoption.

“Rally gave us a more robust system for defect tracking and feature request tracking. It also added scheduling, so we can schedule our development efforts, give a structured process to the collection, evaluation and implementation of feature requests as well as defects,” said McRae. “That gave us the opportunity to look ahead and plan our time out, knowing what features could be done in what time. Rally provided us with flexibility to swap and replace as needed.”

Today, when a new business need arises while development is in progress, McRae can look at the project plan in Rally and “see that we need to add certain features that require certain resources and determine what we can take out that was equivalent. Rally gave us the platform for making that judgment call without the guesswork that was part of the process before.”

Though the team has made great productivity gains, there are always improvements needed. Documentation is one area “that’s always a challenge,” McRae said.

“Any released software needs documentation, but if you don’t have a functioning product then documentation isn’t worth anything. There’s always the balancing act between building features and working on the product and trying to find time and the appropriate resources for the right level of documentation to be done. It’s something we don’t have a specific process to handle yet.”

McRae plans to look at Rally’s features to get some documentation metrics, such as finding which user stories and defects were completed. But he’d love to get his hands on an automated documentation tool. Any suggestions?

Feb 9 2009   2:38PM GMT

Book gives managers a software testing reality check



Posted by: Jan Stafford
Software testing, Software Quality, software development

Software testers and quality assurance managers know that perfect software doesn’t exist.

Unfortunately their project managers, company executives and legal teams often don’t, and these people have “unreasonable expectations,” experience “constant disappointments” and make “disastrous decisions” regarding software testing, said Gerald M. Weinberg, author of many IT and software quality books, in our recent phone conversation.

Weinberg wants those people to read his new book, Perfect Software And Other Illusions About Testing.

“This book is designed for people who don’t fully know what testing encompasses, but make decisions that affect how and how much software testing is done,” said Weinberg.

The current economic downturn and resulting budget cutbacks in software development make informing decision makers and influencers about when, how and why software must be tested even more urgent. While it seems obvious to software testers that cutting software testing is a sure way to produce faulty software, it’s not as obvious to managers.

“Management thinks of testing as what is done after the software is developed,” Weinberg said. “They schedule testing at the end of the process, and that’s the easiest place to cut if there’s a cost overrun.”

Naturally, that’s when the QA manager should step in and explain why testing shouldn’t be cut; but often the lack of funds defeats such arguments at the end of a project.

Establishing processes wherein software is tested early and continually is a better practice than testing at the end of development. “There should be more people wearing testing hats at each stage of development, because mistakes made early are very hard to find later,” Weinberg said.

Reducing development costs by reducing testing is a penny-wise, pound-foolish approach. More and more, Weinberg said, software-related lawsuits and malpractice cases verdicts come down to what software wasn’t tested adequately.

Another common management mistake is not putting software support on the same ledger as development.

“Accurate cost accounting takes into account post-release costs,” Weinberg said. “Usually, the cost of fixing errors doesn’t get attributed to development managers and project managers. It should be.”

Weinberg hopes this book will help managers get “tuned into reality” about software testing. The key is getting it into the right people’s hands, he said, noting that testers and QA pros may want to keep it handy to do just that.

If you’re having trouble getting support for testing in any area or face testing cutbacks, our resident site experts can offer helpful advice. Just send your questions or describe your problem in an email to  editor at searchsoftwarequality.com. This software security pro wrote in and got advice on how to get management support for security quality.


Jan 16 2009   9:17PM GMT

How to maintain software quality, complete projects in a recession



Posted by: Jan Stafford
Software Quality, Agile software development, software development, recession

Software consultants, vendors and project managers are already seeing software project failures and slowdowns resulting from the new recession.

That finding and the advice for software developers and project managers offered in this post comes from interviews I’ve recently conducted with 13 software industry experts and the blogosphere.

“Companies are panicking due to the economy. They’re compressing projects and schedules. As a result, key projects are failing,” Lawrence Oliva — senior consultant/program manager with CH2M HILL, an Englewood, Colo.-based engineering and program management firm –- told me in a recent conversation. “In part, this is the result of trying to get things done faster with less resources.”

Consultants are seeing reductions in software testing being used to cut costs. That tactic is a recipe for project failure, said consultant Karen Johnson in my recent post about why software project fail.)

My sources also spoke of seeing several large, current software projects in crisis mode because senior developers were laid off and the remaining, less-experienced developers didn’t have the know-how needed. Unfortunately, many development groups have been running lean for a long time and running leaner pretty much means stopping development.

“Lean computing is nothing new,” Oliva said. “Companies have been operating at skeletal levels since the economic downturn of 2000, when that downturn caused intense development staffing cuts. It really is sad to think about having to be even leaner.”

That’s the situation, but it isn’t hopeless. Gleaned from my interviews, here are some tips for maintaining software quality and project success during this recession:

Analysts and others advise development teams that lean computing and the agile model can help them do more with less.

Some companies have already made this move and feel ready for tough times. For example, Des Moines, Iowa-based Principal Financial Group –- which provides software products for the financial industry — uses the agile model and has standardized project management, testing and quality assurance processes and tools used by all its development groups.

“Standardizing has reduced redundancies in tools, processes, documentation and more, running as lean as possible,” Principal’s senior IT system analyst Mark Ford told me. Principal uses HP Quality Center to manage development.

Project managers whose companies have not already made cuts to development staffing or budgets need to advise decision-making executives about the business benefits of their projects, industry insiders advised. Also, when cutbacks have taken place or are proposed, PMs need to explain the business impact and guide where the cuts will be made. IBM’s director of Rational offerings, David Locke, offers this advice:

“Always talk in the context of how the project will help the business. If I take this 10% off, I will have the least impact on the business. Give real information, not data. Remind managers that the company creates software to make our businesses more streamlined, more competitive and to deliver better ROI. Your company may need immediate cost savings, but eliminating software that could give the business the most cost-effective competitive edge is probably not the way to go. Talk about business impact, always.”

This is certainly an appropriate time for PMs to push for investments in software testing automation tools, like automated code checkers, experts told me. However, Oliva added:

“Don’t trust in those automated systems absolutely. You could get the wrong results from the use of automated systems.At some point human beings have to be involved. Delivering quality software is not a machine-to-machine process. Not having quality monitored and managed by humans is dangerous.”

Another suggested labor- and cost-saving move is adopting streamlined models of programming, like Extreme Programming or Structured Programming.

The most important strategy for weathering the recession is becoming more realistic about software needs and reducing complexity of software. “If companies do this, it could be the one good thing that comes from the recession,” Oliva said.

Continue the conversation: Please tell me what adjustments you and your development team are making to deal with the tight economy. You can respond by commenting below or writing to me at editor@searchsoftwarequality.com.

Here are some resources for more advice and information:

AddThis Social Bookmark Button     1 Comment     RSS Feed     Email a friend


Jan 13 2009   11:49PM GMT

Value of SANS’ list of top software errors rests on project managers



Posted by: Jan Stafford
Software testing, software development, Software Quality

Whether the CWE/SANS list of the 25 most dangerous programming errors will contribute to the creation of better software depends on whether managers, rather than developers, read it and take action, according to Jack Danahy, chief technology officer and co-founder of source code vulnerability analysis firm Ounce Labs Inc. I talked with Danahy today about the follow-up and follow-through that could make the list a valuable turning point in development, rather than a partially-remembered checklist.

“It’s one thing to come up with a list of 25 things that developers should consider, but we haven’t arrived at a point where anyone is meaningfully asking or requiring developers to consider these things,” Danahy said.

Project managers should support developers spending time to research these issues, in Danahy’s view. The best-case scenario would be that software development managers -– the program manager, business unit manager, software auditor, etc. -– would use this list in specifications, asking for metrics to make sure that those errors have been looked for and eliminated before the software rolls into production.

“Developers won’t remember this list off the top of their heads, but if it becomes codifed as a requirement they will remember,” Danahy said. “A team could come up with distilled list of 5to 12 key design criteria that would provide the essence of keeping these errors from happening.”

To read more opinions about the CWE/SANS research, check out software development pro Mike Kelly’s post on using the list and SearchSecurity.com’s news report.

What will your organization do with this list? Will it have an impact or be quickly forgotten? Sound off in our comments below or by writing to editor@searchsoftwarequality.com.


Jan 12 2009   1:06PM GMT

Why software projects fail and more will fail in 2009



Posted by: Jan Stafford
Add new tag, Software Quality, Development, Project management

Why do software projects fail? There are many reasons –- and they’re spelled out below –- and 2009 may bring more failures than usual as budget cuts spur project managers to make cuts in the wrong places. So said software quality consultants Lawrence Oliva and Karen Johnson when I talked to them about 2009’s software quality landscape.

Human error causes most software project failures, said Oliva — senior consultant/program manager with CH2M HILL, an Englewood, Colo.-based engineering and program management firm — so most are avoidable. Here is his list of the mistakes he sees most often and his comments:

1. Unclear requirements: “Most people don’t know what to build because they’ve never defined it. When they build the software, it fails because it doesn’t meet people’s needs.”

2. Overly optimistic and/or unrealistic schedules. “People rush or skip things if the schedule isn’t realistic. Also, companies are panicking due to the economy. They’re compressing projects and schedules.”

3. Lack of user input: This links back to requirements mistake #1. “Developers don’t talk to people who are going to use the software.”

4. Lack of executive sponsorship and support: “When management doesn’t support and protect the project, it can often be undermined by internal politics and budget cuts.”

5. Turnover and layoffs: “Projects often fail when key people leave the project early in its lifetime.” Companies’ modern habit of laying off senior and, thus, higher-paid workers -– such as senior developers –- in favor of less experienced, lower-paid workers puzzles Oliva and me. “It doesn’t make sense, because the more experienced people take a humongous amount stability, experience with them that usually isn’t available any other place,” he said. “That hurts a project and hurts a company.”

I agreed, noting that the time lost due to less experienced workers’ mistakes and learning curve probably negates the savings in salaries paid. Oliva and I discussed that companies could do total-cost-of-layoff analyses; but Oliva said companies probably wouldn’t take the time to do that. “In a poor economy, companies often make hasty and project-wrecking decisions,” Oliva said. 

Besides layoffs, the recession is leading to other foolhardy cutbacks. It seems obvious that skipping testing is a path to software project failures, but software testing consultant Karen Johnson is seeing companies do just that. Johnson told me that companies are cutting down on or even skipping software testing altogether as a recessionary cost-saving method. If this trend continues, look for more embarrassing outages caused by admitted software failures or for “undisclosed reasons.”

While researching software failures, I read a Code Diesel post on software failures by developer Sameer Bora. To Oliva’s reasons why projects fail, Bora adds these common mistakes: sloppy development practices and poor reporting. Bora also created a handy chart on why software projects fail. Printed out or used as a screensaver, even, it could provide a visual reminder of project pitfalls.

Now it’s your turn: Do these reasons for failure ring a bell? Can you think of others? Let me know by commenting below or writing to me at  Trackback URL

AddThis Social Bookmark Button     0 Comments     RSS Feed     Email a friend


Dec 17 2008   5:02PM GMT

Open source, agile help move to lean software development



Posted by: Jan Stafford
Development, Software Quality, Agile software development, Spring Application Framework, Open source development tools

Bloated applications, platforms and architectures slow application development and make quality control and everyday usage time-consuming and nonproductive, said Forrester Research principal analyst John R. Rymer in a phone conversation yesterday. In this post, I’ll share Rymer’s thoughts on why software pros should join the lean software movement and his advice on how to create appropriately sized and efficient software. 

Forrester’s newly-published report, Lean Software is Agile, Fit-to-Purpose, and Efficient, lays out how software got so fat, costly and inefficient; the evidence that IT organizations are moving to lean software; the challenges involved in lightweight software development; and strategies for joining the movement. Rymer told me that the demand for lean or lightweight software is coming from conventional business application users, the ones who first signed up for mainstream — and now bloated — apps from IBM, Microsoft, Oracle and other major software vendors. Many took the path of least resistance, as in following the safe IT path that spawned the saying: “Nobody ever gets fired for choosing IBM.”  

While major software vendors piled on features that add complexity and can foster customer lock-in, in came the lean software approach of Linux and open source developers. 

“Open source is the driving factor for lean computing,” said Rymer. “Now people can replace conventional application servers, for example, with open source application servers and get lower cost and more innovative features. People are comfortable with open source software, which is now in its second wave of adoption.”  

Agile development is another popular path away from traditional “big-bang” software development.  

“Agile development is independent of any technical platform or development approach,” said Rymer. “It’s a method. What’s neat about this is that people are delivering application features sometimes every two weeks or each month. Rather than deliver the big-bang project after years of work, they’re delivering applications in increments. They’re working in an incremental fashion to deliver features over time, providing value quickly and continue to add value. That’s a way to modulate your costs, to spread your costs and investment over a period of time.” 

This Forrester report’s recommendations advise software pros to update their application platform and tools strategies. How do your tools and platforms fit with the lean software approach? Right now, many organizations are working with platforms that are too bloated and nonproductive, Rymer said. 

“A lot of shops adopted J2EE, and they’re really struggling now to keep up with the demand for new applications. It’s not a real productive environment. Just coding things up in Java takes a lot of time.” 

The era of one-development-platform shops should be over, Rymer said. 

“If you have a variety of application scenarios, don’t assume you have to adopt one platform to do all of them. There are a variety of tools now. People who choose to use Spring (Application Framework), for example, are oftentimes using it alongside their J2EE. They can run the Spring on an extra app server. So, it’s not like there are these hairy choices that force you to throw away what you’ve got. Pick the right tool for the job, and if you’re smart about it you can integrate these things.”  

Rymer suggested that the PHP framework is built for speedy development. It’s now “a real framework and not a collection of modules,” he said. “You can build certain Web applications very quickly, much more quickly than you can with either conventional .NET or Java development.”  

Don’t think that lean computing is a movement to oust established vendors, Rymer noted before we signed off. Remember that even Microsoft is involved in the second wave of open source development tools adoption. “If you want to use Ruby or Python in the .NET world, you can,” he said. When change is driven by developer and business IT pros, big vendors like IBM, Microsoft and Oracle will join in. 


Dec 10 2008   4:03PM GMT

Security boost for LAMP stack



Posted by: Michelle Davidson
Security, Software Quality

LAMP, an open-source Web development platform based on Linux, Apache, MySQL, and PHP, is getting some added protection from attacks thanks to Metaforic.

Metaforic, a provider of anti-tamper solutions, announced that upon request it will provide free versions of secured Apache and MySQL to enterprises. Utilizing a lightweight version of MetaFortress, Metaforic will provide anti-tamper protection and continuous integrity checking for critical parts of the LAMP stack to help defend against multi-vector attacks designed to discover and exploit the weakest point of an organization’s server infrastructure.

The move is important because as more enterprises deploy open-source technology, cybercriminals will target the security vulnerabilities within that infrastructure. And those criminals are looking for any weak spot, whether it’s the operating system, Web server, database system, or the application layer.

MetaFortress Open is specifically targeted at network infrastructure applications. Like the flagship MetaFortress, Open is an anti-tamper solution that inserts security and integrity checks into an application’s source code to prevent against hacking and unauthorized usage.


Dec 9 2008   7:13PM GMT

Recession causing software developers to rethink processes



Posted by: Michelle Davidson
Software Quality

With the recession weighing down on all of us, I’ve heard a few people talk about not letting this crisis go to waste. Ryan Martens in his column last week said now is the time for companies to take a close look at their development processes and make changes that will reduce costs now as well as in the future.

HP Software is also talking about taking advantage of the crisis. Mark Sarbiewski, director of product marketing at HP Software, said the company recommends leveraging the crisis to do three things:

  1. Get control of IT spending — Determine priorities and eliminate low-priority things.

  2. Put solutions in place now that allow you to centralize, eliminate redundancy, and maximize your experts

  3. Drive through process change and automation — Standardize on best practices and automate, focusing on the development process and operations.

To help companies accomplish those things, HP Software today announced two significant products: HP Quality Center 10.0 and HP Universal Configuration Management Database (UCMDB) 8.0.

“We look at Quality Center 10.0 as the heart of how you can change the software development life cycle,” Sarbiewski said. “It includes requirements management, test management, and defect management all in one place.”

At any time you can see how you’re doing against the software requirements. Additionally, HP has improved the ability to share things between projects.

“In Quality Center 10.0 we’ve expanded beyond the simple project model and can promote processes to all projects and share things with all projects throughout the entire cycle,” Sarbiewski said.

Quality Center 10.0 also integrates with HP’s other testing solutions.

To help on the operations side, HP Universal Configuration Management Database (UCMDB) 8.0 can help organizations continually track how everything connects and manage change across all the tiers.

“We’ve now integrated this dependency map into all those systems. I’m monitoring the parts of the biz service and all the pieces support it. I can automatically notify if I see something going wrong in any piece,” Sarbiewski said. “We’re moving from being reactive to being predictive.”


Dec 4 2008   5:06PM GMT

Praising unit testing



Posted by: Michelle Davidson
Software testing, Software Quality

A few weeks ago I wrote about how many programmers don’t consider unit testing a priority. Reasons given:

  • They don’t know about it
  • Good unit tests are hard to write
  • It’s a waste of time and productivity
  • Writing the tests would take too long (especially if they’re doing frequent iterations)
  • Regression testing is more effective

Since writing that editorial, a few people have spoken up in favor of unit testing, saying it must be a priority.

Ralph Perry wrote, “Without an effective unit and integration test process, my experience is QA/system test becomes a dumping ground, code/build/dump with frequent loads just to get to a stable testable product.”

While Jaideep Khanduja wrote, “A lot of flaws or shortcomings of the product can only be tracked only through unit testing.”

This past week Kevlin Henney, an independent consultant and trainer based in the UK and a frequent contributor to SearchSoftwareQuality.com, added to the discussion with his article, “Making unit testing a priority.” Henney says there is an expectation that programmers do some sort of testing of their own code. The key is that they must write good unit tests, and doing so takes practice and skill. Bad unit tests “can be worse for a project than no unit tests at all,” he said.

But saying you won’t run unit tests because it’s hard to do well is “a curious and somewhat dubious justification,” he said. Instead, make an effort to improve your skills. Your projects will be better off for it.


Dec 4 2008   3:38PM GMT

Software simulation tool integrated with IBM’s requirements product



Posted by: Michelle Davidson
Software Quality, Requirements management, Requirements gathering

iRise Connect for IBM Rational Requirements Composer will soon be available. This integration, built on IBM’s open Jazz technology platform will make high-fidelity iRise visualizations instantly accessible from within IBM Rational Requirements Composer.

This integration is designed to eliminate wasteful cost overruns and delays by ensuring IT organizations are documenting and tracking the right business needs the first time.

The iRise solution gives business analysts and project managers the ability to build working simulations of software before development begins. (Read “Simulation software a cure for hospital’s requirements validation ills” to learn how one customer uses the product.)

IBM Rational Requirements Composer is a collaborative toolset that provides the ability to visually capture requirements information as process sketches, storyboards, user-interface sketches, and rich text to better articulate and communicate the context of requirements.

The combination of the two products gives requirements professionals the ability to embed live, high-fidelity software visualizations directly into the Requirements Composer product by leveraging iRise SmartView. Business analysts, business stakeholders, developers, projects managers, and other IBM users can interact with “live” visualizations and fully experience simulated pages, scenarios, and masters directly within the Requirements Composer environment.

The visualization assets are then published in real time from iRise to the Requirements Composer repository and can be linked into the web of requirements artifacts.

For more information, visit iRise’s website.