Agile Development Practices

Software development paradigms are shifting. The development team’s abilities are growing increasingly important as organizations realize that traditional methodologies are not meeting goals—too many conventional projects fail to deliver on their expected value, and some don’t deliver at all. The term “Agile Development” refers to the use of several incremental, iterative procedures and practices, including Scrum, Extreme Programming (XP), and Feature-Driven Development. Learn how this approach focuses on keeping quality code simple, testing often, and delivering functional bits of the application as soon as they’re ready.


Agile Techniques for Meeting Customer Commitments

by Lance Young

Agile teams struggle with successfully applying Agile approaches to project planning and delivery. In particular, an area that needs to be explored is negotiating customer commitments within an Agile process. Common to Agile processes is delivering customer value in short cycles and small increments. Customer commitments are made for each increment and meeting these small commitments early in the project build the trust that is crucial in order for Agile to be successful. This Agile Journal article explains the key steps, and practices within each step, that will assist in making and delivering on customer commitments in an Agile fashion.

Published Article: Agile Techniques for Meeting Customer Commitments

 


Biomimicry: Innovation of the Future (Brought to you by the Past)

by William Rowden and David Socha

Knowledge of biological systems is increasingly contributing to multiple aspects of software development, including product innovation, algorithm inspiration, and guidance for understanding and acting in organizations. The theory of complex adaptive systems explains much of the empirical processes of Scrum and other agile processes. This presentation introduces Biomimicry’s use in software development as a well-established way of gaining product and process insight from natural systems.

Presentation: Biomimicry: Innovation of the Future (Brought to you by the Past)

 


Case Study: Electronic Evidence Discovery

Electronic discovery (eDiscovery) is a highly competitive, rapidly changing technology-enabled services industry. In the face of stiff competition, eDiscovery pioneer EED determined that incorporation of Agile and Scrum practices could help them drive a world-class research and development team to innovate faster and stay ahead. Learn how SolutionsIQ helped EED successfully deliver critical functionality using Agile software development methods in this case study.

Case Study: Electronic Evidence Discovery

 


Case Study: Implementing Distributed Extreme Programming

by Monica Yap

In 2004, WDSGlobal brought together three independent development regions (the U.S., England, and China) to form an around-the-clock Extreme Programming (XP) team. After a year with the globally distributed XP team, the company considered the transition to be a success. This white paper describes the challenges the team faced in this environment, lessons learned, and how issues such as global continuous integration, cultural differences, and conflicting priorities were resolved across regions.

Case Study: Implementing Distributed Extreme Programming

 


Case Study: PowerAdvocate

PowerAdvocate is an energy intelligence company delivering intelligence applications that incorporate the world’s largest FactBase of supply market data, helping energy executives restructure costs and steer company performance.

The company wanted to introduce its new product to meet an important client deadline while simultaneously looking at more dependable and predictable ways to deliver software. PowerAdvocate also wanted to improve its ability to deliver the most important business value for each of its products –- and wanted to achieve all of these objectives as quickly as possible. This case study describes how SolutionsIQ’s Agile coaching and training services helped PowerAdvocate reduce time to market through the implementation of Agile development methods.

Case Study: PowerAdvocate Case Study

 


Case Study: WashBoard

SolutionsIQ has delivered vital Web site improvements for the Washington Scholarship Coalition. The enhancements have streamlined the process for students in Washington State to find and apply for higher-education scholarships and funding. Learn about the challenges the Coalition was facing and the solution we developed to meet their needs.

Case Study: theWashBoard.org

 


Distributed Scrum: Why some teams make it work well and others don’t

by William Rowden

How does a geographically-distributed team collaborate across distance, culture, and even language? What can an organization do to encourage successful teamwork? What technologies and practices increase collaboration? This presentation explores the patterns that enable companies to successfully deliver software with a distributed team.

Presentation: Distributed Scrum: Why some teams make it work well and others don’t

 


Domain-Specific Testing Languages

by Mickey Phoenix and Rand Huso

Domain-Specific Testing Languages (DSTLs) express customer requirements as tests with the needed scope, granularity, and transparency. Dynamically extensible DSTLs help keep the core testing tool simple while creating automated test scripts the customer can easily read, verify, and use as requirements documents. In this presentation, you’ll get practical tips to foster test code re-use and reduce test maintenance costs, especially on large and long-running projects. You’ll also learn to use “refactor into abstraction” and “intentional testing” as two complementary paradigms for making stronger, more expressive, more maintainable tests.

Presentation: Domain Specific Testing Languages

Video: Domain Specific Testing Languages

 


Implementing Value-Based Extreme Programming

by Monica Yap

Agile methods such as Scrum and Extreme Programming are not known for carefully tracking time and cost estimates. On most projects, schedule slips are common and cost increases are predictable. At the end of every iteration, some stories get dropped, usually because the scope or some other factor of the story wasn’t fully understood. Every slip and increase reduces total business value, and project overruns force other projects to be delayed or canceled. In this white paper, Monica Yap describes how one company addressed these challenges and the lessons that were learned along the way.

Published Article: Implementing Value-Based Extreme Programming

 


Lean Workflow: A Parable in Pictures

by William Rowden

This session from Agile India 2012 is an introduction to Lean, its pillars and principles, primarily in pictures. It covers the definition of Lean, idealized workflow, lead time vs. utilization and efficiency, value stream maps and wastes, and the Kanban Pull System.

Presentation: Lean Workflow: A Parable in Pictures

 


Managing Software Debt

by Chris Sterling

Many software developers have to deal with legacy code at some point in their careers. Seemingly simple changes can become frustrating endeavors. Code may be hard to read and unnecessarily complex. Test scripts and requirements are often out of sync with the existing system. The build is nearly always cryptic, minimally sufficient, and difficult to successfully configure and execute. It is almost impossible to find the proper place to make a requested change without breaking unexpected portions of the application. And the people who originally worked on the application? Long gone. How did the software get like this? It is almost certain the people who developed this application did not intend to create such a mess. This article and video explore the multitude of factors involved in the development of software with debt.

Published Article: Managing Software Debt

Video: Managing Software Debt

 


Narrative Testing

by Mickey Phoenix and Rand Huso

Narrative Testing leverages script-based testing tools and DSTLs to express Story Tests in the user’s own language. Developers and customers cooperate to create customer-readable scripts based on User Stories, which are executed interactively against the application UI. Through Narrative Testing, customers are able to view the executing test and tie steps in the test to changes in the application state, increasing customer confidence in testing. This presentation shares practical tips and real-world experiences for the interactive creation of executable Narrative Tests with the user.

Presentation: Narrative Testing

Video: Narrative Testing

 


Successful Distributed Agile Team Working Patterns

by Monica Yap

Distributed development is rapidly transforming software development processes across organizations. Typical distributed situations involve companies with geographically dispersed sites: city-wide, regionally, nationally, and internationally. Successful distributed development allows teams to develop high-quality software faster, leading to  improved business agility and a greater capacity to handle the pressures  of globalization and competition. But the challenges of realizing these competitive advantages are significant. Learn about some common successful distributed team working patterns that have been successfully used on distributed Agile development projects – patterns that complement and strengthen each other to help teams work effectively – in this white paper and presentation.

Presentation: Successful Distributed Agile Team Working Patterns

White Paper: Successful Distributed Agile Team Working Patterns

 


Technical Debt

by Chris Sterling

Software debt accumulates when focus remains on immediate completion while neglecting changeability of the system over time. The accumulation of debt does not impact software delivery immediately, and may even create a sense of increased feature delivery, and businesses respond well to the pace of delivered functionality and the illusion of earlier returns on investment. Team members may complain about the quality of delivered functionality while debt is accumulating, but do not force the issue due to enthusiastic acceptance and false expectations they have set with the business. Learn the basics about technical debt and some different approaches for dealing with it.

Video: Technical Debt

 


Whose Bug Is It Anyway?

by Vibhu Srinivasan

Scrum teams are constrained to work in a timebox or shorter sprint cycles. Typical teams tend to have more developers than testers. Over the years, many teams have come to practice unit testing and TDD, but teams still heavily depend on the tester to catch bugs. This presentation explores the mismatch in thinking between developers and testers, and explores how to reduce this gap and build quality into software.

Presentation: Whose Bug is it Anyway?