The 2014 CAST Research on Application Software Health (CRASH) report states that enterprise software built using a mixture of agile and waterfall methods will result in more robust and secure applications than those built using either agile or waterfall methods alone. InfoQ interviewed Bill Curtis about structural quality factors, and mixing agile and waterfall methods.
Agile software development teams have to assure that the products that they develop have sufficient quality. Management often also expect that they increase their velocity to be able to deliver more functionality faster to their customer. Several authors explored the relationship between quality and velocity and suggested ways to improve both quality and velocity.
Brannon B. King, a software developer working for Autonomous Solutions Inc., has published an article entitled Dangers of Violating SOLID Principles in C# in MSDN Magazine, May 2014. The author outlines some of the mistakes developers can make in their C# code, breaking the SOLID principles and leading to code that is more difficult to extend or maintain.
Patrick Smacchia has recently announced NDepend 5.0, the latest version of his .NET code analyzer coming with a number of enhancements: support for VS 2013, trend monitoring, new dashboard and a major UI facelift.
The New York Times has published the Objective-C coding conventions used by their iOS team, containing suggestions for source code layout, writing conditional expressions, variable names, methods, using booleans, etc.
This article contains the testimonies of several project leaders detailing the process used to achieve a low Coverity Scan defect density.
Program Verification Systems, the creator of PVS-Studio, a static code analyzer for C and C++, has published a list of programming errors, some of them being found in popular open source projects such as Chromium, TortoiseSVN, Apache HTTP Server, MySQL, and others.
Sonar Quality Dashboard version 3.0 has recently been released including separate commercial editions and a new plugin allowing developers to see how their individual commits affect project quality.
DRY reduces duplication and the maintenance problems coming with it, but misusing it leads to high coupling and reduced readability. The lesson: a software development principle should be applied considering other corresponding principles, patterns and practices.
In two recent papers, David Chappell, Principal of Chappell & Associates, outlines the different aspects of software quality – functional, structural, and process-, the groups of people directly interested in quality –users, developers, and sponsors-, and the outcome of defects in externally or internally facing software over time.
A Coverity study concludes that open source code using static analysis has on average a lower number of defects than commercial code, but they are on par when it comes to code of similar sizes.
In lean manufacturing, the definition of inventory is pretty clear. It is the extra material, work in progress material and material queued up for the next bit of work. Lean emphasizes on reducing the inventory because there is always an inventory handling costs. In software development, often requirements are seen as inventory, what about the code?
The privately owned US company Coverity claims that its newly released and browser-based software tool Coverity Integrity Control supports development organizations to set standard policies for code quality and security, and then manage, monitor and report on these policies as code is tested.
The latest version of open source code quality management tool Sonar supports architecture constraint rules and custom dashboards. SonarSource team recently released Sonar 2.4 version which also includes Maven 3 support and an update center to install and upgrade Sonar plugins.
Serena Yeoh, a Microsoft consultant and a contributor to Microsoft pattern&practices Application Architecture Guide, has created a Layered Architecture Sample for .NET 4.0 which was later ported to Azure, showcasing various .NET technologies (WPF, WCF, WF, ASP.NET, ADO.NET EF) used in an architecture based on the Layered Architecture design pattern.