BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Delivering Quality Content on InfoQ

  • Implementation Decision Rationales – Program Comprehension in Agile

    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.

  • Agile Team Meets a Fixed Price Contract

    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.

  • Are You a Software Architect?

    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?

  • Agile Lessons from a Management Guru

    Deming was one of a select group of thought leaders who have shaped modern management over the last century. He is best known for the impact he had on Japanese businesses with his teachings on design, manufacturing, sales and quality. The first three of Deming's fourteen points are examined in detail in the context of Agile software development.

  • Deployment is the Goal

    When we write software, we're very good at getting requirements and turning them into code. To turn that beautiful code into working software we need to deploy and test it. Often, we fail to emphasize the latter as well as the former. Do you have a backlog of "code complete" software waiting to be deployed, tested, signed-off and made live?

  • Layered Architecture for Test Automation

    In test automation, code involved in testing is not only test logic, but also a bunch of other supporting code, like URL concatenation, XML parsing, UI, etc. Test logic can be buried in this unrelated code, which has nothing to do with test logic itself, making test code hard to read and maintain. In this article, the layered architecture of test automation is presented to solve this problem.

  • Book Excerpt and Review: Release It!

    'Release It!: Design and Deploy Production-Ready Software' by Michael Nygard, which is nominated for a 2008 Jolt Award, discusses what it takes to make production-ready software and explains how this differs from feature-complete software. InfoQ spoke with Nygard about the areas that the book covers and some questions around how the book's philosophy fits in with concepts such as Agile.

  • Book Excerpt: Continuous Integration means Continuous Testing

    Continuous Integration, a basic XP practice, has now become an accepted development best practice. InfoQ presents Chapter 6: Continuous Testing, with advice and examples for writing good tests to ensure system quality, from the book "Continuous Integration: Improving Software Quality and Reducing Risk," which aims help teams make CI a transparent "non-event".

  • Implementing Automated Governance for Coding Standards

    Most development organizations of a significant size have some form of coding standards and best practices. Simply documenting these standards and keeping them up to date can be a significant challenge and enforcing them even harder. Our organization has found that enforcing coding standards and best practices in an automated fashion through our build process has been highly effective.

  • Agile, Architecture and the 5am Production Problem

    Can refactoring and unit testing really create robust “working software” that survives the real world? In this story adapted from his book Release It! Michael Nygard contends that "abstractions leak": we need to attend to architecture, even in Agile projects, to guard ourselves against the 5AM failures that occur when foundational abstractions misbehave.

  • Unit-Testing XML

    There are many occasions where software creates XML output: XML documents are used for data interchange between different applications, web application create (X)HTML output or respond to AJAX requests with XML, and this has to be tested as much as anything else. In this article, Stefan Bodewig explains how to perform those tests with the XMLUnit framework he has co-authored.

  • Agile User Interface Development

    The wider adoption of Agile software development has raised questions about how an approach that shuns up-front design and analysis can coexist with the emerging practice of user-centered design, which has a detailed user research and modeling phase before development begins. In this article Dave Churchville explores how the disciplines can be used together for an effective development process.

BT