Less functionality can make a better product according to the “Worse is Better” concept described 25 years ago by Richard P. Gabriel. According to Kevlin Henney and Frank Buschmann we can learn from the worse is better concept for development and architecture with agile and lean.
In a blog post on bad code and technical debt Steve Freeman described how Chris Matts came up with the metaphor of an unhedged call option for bad code. This post is being intensively discussed on Reddit and on Hacker News recently. InfoQ interviewed Steve and Chris about using metaphors for bad code and code smells, trade-offs and costs of low quality code, and responsibilities for code quality.
Exercism.io helps developers to increases their craftsmanship in a language through feedback and discussion. It’s a community and tool where developers can write code and discuss it to strengthen their problem-solving skills. InfoQ did an interview with the creator of exercism Katrina Owen and with Richard Thomson who contributed the C++ language track for exercism.
JetBrains has announced new RTM versions for their .NET tools, including ReSharper 9, dotTrace 6, dotCover 3, dotMemory 4.2, dotPeek 1.3 and TeamCity Add-in 9.0. JetBrains has created a single installer and platform for these tools. When attempting to install ReSharper, developers are presented with the option to install other .NET tools which will share the platform.
The real requirements of a product are not the functions that are needed, or user stories that have to be delivered. It is the possible improvement of performance that customers can get from using the product said Matteo Vaccari. At the XP Days Benelux 2014 conference he facilitated a workshop together with Antonio Carpentieri about defining the value that is needed by customers.
How can you recruit good people and help them becoming successful without challenging your established workforce too much? According to Ralph van Roosmalen and Daan van Osch finding the right people will be one of the biggest problems in IT. At the XP Days Benelux 2014 conference Ralph and Daan will give a presentation in which they share experiences from IT recruiting at RES Software.
This post describes the relation of Agility and Modularity. Why modularity is important and how can we use it is described in OSGi white paper.
The software craftsmanship movement talks about practicing as a way to to develop programming skills to become software craftsmen. Technical practices are considered to be important, it takes time to learn them and become better programmers.
Martin Fowler describes Sacrificial Architecture. This post highlights the need and benefits of sacrificial Architecture.
Sixth edition of the World Quality Report, co-sponsored by Capgemini, Sogeti and HP 2014-15, highlights recent changes in testing practices, emerging trends such as agile testing, test environment management, mobility, data analytics, cloud and Internet of things.
Complexity is a direct indicator of software quality and costs: if the complexity for any code is high, the quality of that code will be lower and it will cost more to manage it. Complexity measurements can be used to estimate development and test activities and to decide where refactoring is needed to improve quality and prevent problems.
Creating and maintaining a Quality Management System (QMS) can be difficult, certainly when organizations have multiple product lines where different regulations and standards are applicable. InfoQ interviewed Willem van den Biggelaar about the benefits of having a QMS, dealing with multiple regulations, assuring adherence, how a QMS can support agility and deploying a QMS in an agile way.
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.
Long working days, deadlines and team pressure can impact the quality of the software that agile teams deliver. What can we do to prevent that from happening and enable teams to improve the quality of their software? Some suggestions are to arrange for scope and deadline slack, adopt pull systems, and to make sure that people can slow down and get enough sleep.