Artipot - Free Ezine Articles
 
Home » Computers » Programming

Source Code Analysis in an Agile World

By Sarfaraz Khan
Feb 23, 2009
To keep pace with ever-increasing customer demands on software functionality and time-to-market expectations, software developers have had to evolve the way they develop code to be both faster and higher quality. As part of this trend, the Waterfall method of software development began to give way in the late 1990s to a more lightweight method of software development.

The use of Agile has grown in the last decade and is still maturing. Software organizations are constantly looking for ways to improve their Agile environments, and minimizing software bugs is one area of focus. This paper will demonstrate that several of the core principles of Agile cannot be fully realized without implementing a repeatable process for ensuring code that is as bug-free as possible.

The approach recommended in this paper is the use of automated source code analysis (SCA) technology to locate and describe areas of weakness in software source code, such as security vulnerabilities, logic errors, code vulnerability analysis, implementation defects, concurrency violations, rare boundary conditions, or any number of other types of problem-causing code.

Discussing the importance of bug-free code in enabling development, this paper demonstrates how key elements of SCA enhance the Agile development processes and empower Agile teams. You will learn the relationship between bug-free code and Agile development, as well as how to deploy SCA tools seamlessly into your Agile development process to ensure that it runs at peak optimization.

A Brief Overview

Simply put, Agile software development is an approach that provides flexibility to accommodate continuous change throughout the software development cycle. It stresses rapid delivery of working software, empowerment of developers, and emphasises collaboration between developers and the rest of the team.

Agile contrasts with the still popular Waterfall development approach, which is front-end loaded with comprehensive scope and requirements definitions, and which employs clear, consecutive hand-offs from requirements definition to design to coding and then to quality assurance. In contrast, Agile incorporates a continuous stream of requirements gathering that continues throughout development.

Business people are involved early and often throughout the release cycle, ensuring that the software being developed meets the true needs of both the end-user and the business. Change to the requirements and to the overall feature set is expected to occur as outside opportunities or threats arise.

One of the most important types of tools that an Agile team can deploy is one that aids in writing better-quality code. Source code analysis tools provide an automated method to detect a significant number of software bugs or security vulnerabilities right at the developer's desktop - before any code is delivered to the integration build or testing team.

This minimizes project drag caused by rework and enables Agile to run more efficiently: developers spend their time writing innovative code, while testing teams spend their time testing how the features of the project work rather than uncovering mundane code issues and retesting these again and again.
About the Author
Please Rate:

Rating:

(Average: Not rated)
Views:131 
Print Article Email Article Reprint Article Comments (0)
More Articles from Programming
Top Articles in Programming