Given the fact that the bulk of a developer's work is maintaining and enhancing existing code, Fabian Kiss makes the case for a lightweight approach to documenting the rationale and decision process behind design decisions to help later developers tie the source code syntax to its meaning in the application domain. Using simple tags and clearly thought out rationale to provide just-enough value.
Fixed price contracts are evil - this is what can often be heard from agilists. On the other hand those contracts are reality which many agile teams have to face. But what if we try to tame it instead of fighting against it? How can a company execute this kind of contract using agile practices to achieve better results with lower risk? This article will try to answer those questions.
The line between development and architecture is tricky. Some say it's fake, that architecture is an extension of the design process undertaken by developers; others say it's a chasm that can only be crossed by lofty developers who believe you must abstract your abstractions and not worry about implementation details. There's a balance in the middle, but how do you move from one to the other?
This article takes a look at Edward Deming's work and it's applicability to Agile methods. 2
To turn code into working software we need to deploy and test it. Often, we fail to emphasize the latter as well as the former. 2
In this article, the layered architecture of test automation is presented to solve the problem of test logic getting buried in unrelated supporting code. 9
'Release It!: Design and Deploy Production-Ready Software' by Michael Nygard discusses what it takes to make production-ready software and explains how this differs from feature-complete software. 4
Continuous Integration has become a standard development best practice - but it's not always done well. InfoQ presents advice and examples in Chapter 6: Continuous Testing from a new CI book. 4
Mark Figley talks about enforcing coding standards and best practices in an automated fashion through the build process. 5
Can refactoring and TDD create “working software” that survives real life? Michael Nygard suggests that "leaky abstractions" ambush us at 5AM when we've paid too little attention to architecture. 25
Today, almost every modern application consumes or produces XML. Stefan Bodewig explains the challenges in testing XML-based applications, and shows how to use the XMLUnit Java Framework to do so. 8
Agile software development, shunning up-front design, has grown up in parallel to the emergence of "user-centered design," with its detailed user research and modeling. Can these be used together? 7