Articles

Scaling Agile Development via Architecture

Every system has an architecture, even systems developed using agile methodologies. Whether you attempt to define that architecture up front in detail or whether it emerges over time is up to you. My experience is that most agile teams follow a strategy somewhere between these two extremes. That strategy, combined with proving your architectural ideas as soon as possible through working code. This article summarizes a collection of strategies for addressing architectural concerns on agile projects and discusses how such strategies can be applied to scale agile methods to large development efforts.

 

Scott W. Ambler's picture Scott W. Ambler
Web Services Interface Design - Pitfalls and Proven Techniques

Designing Web services is all about the interface. Although tools for Web services development have advanced to the point where exposing application functionality is simple, the ease of building Web services does not diminish the need for careful planning and a highly functional design. Dave Mount opens his presentation by spinning the cautionary tale of slapping together a Web services interface on a poorly structured application. This scenario serves as a reference point for a subsequent discussion of the pitfalls of a poorly designed interface. Dave illustrates techniques for correcting problems and improving the Web services interface. Looking at high profile Web services provided by Google, eBay, and Salesforce.com, he shows how an external perspective that emphasizes consistency and conceptual clarity is key to Web services interface design.

Dave Mount, J-Soup Software, Inc
STAREAST 2006: Apprenticeships: A Forgotten Concept in Testing

The system of apprenticeship was first developed in the late Middle Ages. The uneducated and inexperienced were employed by a master craftsman in exchange for formal training in a particular craft. So why does apprenticeship seldom happen within software testing? Do we subconsciously believe that just about anyone can test software? Join Lloyd Roden and discover what apprenticeship training is and-even more importantly-what it is not. Learn how this practice can be easily adapted to suit software testing. Find out about the advantages and disadvantages of several apprenticeship models: Chief Tester, Hierarchical, Buddy, and Coterie. With personal experiences to share, Lloyd shows how projects will benefit immediately with the rebirth of the apprenticeship system in your test team.

  • Four apprenticeship models that can apply to software testers
  • Measures of the benefits and return on investment of apprenticeships
Lloyd Roden, Grove Consultants
Test Driven Development - It's Not Just for Unit Testing

Test-driven development (TDD) is a new approach for software construction in which developers write automated unit tests before writing the code. These automated tests are always rerun after any codes changes. Proponents assert that TDD delivers software that is easier to maintain and of higher quality than using traditional development approaches. Based on experiences gained from real-world projects employing TDD, Peter Zimmerer shares his view of TDD's advantages and disadvantages and how the TDD concept can be extended to all levels of testing. Learn how to use TDD practices that support preventive testing throughout development and result in new levels of cooperation between developers and testers. Take away practical approaches and hints for introducing and practicing test-driven development in your organization.

Peter Zimmerer, Siemens
Let's End the Defect Report-Fix-Check-Rework-Cycle

Find out how teams transitioning to Agile practices must re-think their workflows and project metrics originally designed to handle many hundreds of defect reports that occur in typical testlast development cycles. Richard Leavitt discusses how a real-world implementation of key practices like early testing and continual integration-though not without bumps and bruises-lowered the number of open defect reports by an order of magnitude. These practices also can improve how the team communicates, reduce delays, and provide more direct measures of project status, feature progress, and release readiness.

Richard Leavitt, Rally Software Development
Systematic Techniques for Fault Detection and Isolation

Selecting the appropriate testing techniques and test cases improves test efficiency, reduces time to market, and gives you confidence that the system is ready to ship. Using real-world case studies as examples, Madhav Phadke explains the fundamentals of robust test case selection and how code coverage can improve your test results. He discusses ways for testers to support debugging and faster repairs by isolating defects to a specific part of the software. Learn to select test outputs based on "total function evaluation" rather than end customer outputs and ways to use orthogonal arrays for testing combinations of parameters. Take away a list of free or inexpensive tools that can speed up your testing process.

Madhav Phadke, Phadke Associates
Model Driven Architecture: It's Not Your Father's UML

Software engineering has come a long way, but programmers still spend a lot of time on tasks that could be automated. Fortunately, there's model driven architecture with its new generation of modeling tools that go way beyond the average UML. Learn how MDA addresses the challenges of today's highly networked, constantly changing systems environment and provides an architecture that assures portability, platform independence, productivity, and much more.

Timothy Korson
Release Management—Making It Lean and Agile

Release management is an awesome responsibility that plays a vital role in the success of a software development project. Releasing is often considered to be an activity that happens near the end of the process—a necessary evil, perhaps, but no more.

Robert Cowham's picture Robert Cowham
Model Driven Architecture (MDA) - What's in it for Developers and Testers?

According to the Object Management Group (OMG), the benefits of Model Driven Architecture (MDA) are significant to businesses and developers alike: reduced overall product life costs, faster development, better application quality, rapid deployment of new technology, and a higher ROI on new technology. In short, the hype is that MDA enables system integration strategies that are better, faster, and cheaper. However, the MDA approach represents a fundamental change in the way software is developed, and it revolutionizes how you allocate test resources and how you create system tests. Timothy Korson outlines the MDA process and then suggests ways to change quality assurance activities to mesh with the MDA development style. Take away a realistic view of the current state of MDA practices compared to the MDA promise and vision, offered by the OMG.

Timothy Korson, QualSys Solutions
Mission Critical: Visualize, Personalize, Humanize

Connect with an expert to learn how to work smarter and discover new ways to uncover more defects. In this issue, Michael Bolton takes a close look at one of the key skills of Rapid Testing: critical thinking.

Michael Bolton's picture Michael Bolton

Pages

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.