Source Code Analysis in an Agile World
Posted by China Sourcing CommentatorSep 2
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: Agile.
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.
After providing brief overviews of Agile and SCA, and discussing the importance of bug-free code in enabling Agile 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.
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, including business people.
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.
In short, Agile fully embraces change and Agile teams are structured in such a way that they can receive and act on constant feedback provided by the build process, by other developers, from QA, and from business stakeholders.
The ubiquitous nature of software today, coupled with the pressure to rapidly develop market-ready features and products in just weeks, has led to two related phenomena:
One of the main types of tools that can provide a vibrant team that AIDS writing better code. Source code analysis tools to identify a large number of automated software errors or security holes on your desktop directly from the developer – before any code is built, or integration sent from the team. This minimizes drag through the alteration of the project and enables Agile to run more efficiently: the time developers spend writing innovative code, while the test team will spend the time to test the characteristics of the project T & # xF6, no, instead of the code to detect a secular subjects and cross-check them again and again.
SCA may be right on your agile team, particularly if you find a lot of quality problems or security issues and will have to undertake märkimisvä ärse amount of rework due.
About Klocwork
Article Source:China Sourcing Blog
Popularity: unranked [?]
Stumble Upon
Del.icio.us
Buzz
Leave a Reply