Pair programming and agile development have become popular buzzwords in recent years, but these practices have been fundamental to how Pivotal Labs develops and delivers products since its inception. As a result, companies often collaborate directly with Labs to develop applications, while also learning modern techniques of close collaboration and iterative development. Members of IDEO Labs, the research and development group within global design agency IDEO, recently spent a month at Pivotal Labs to build an application using agile development methods.
In a post at the IDEO Labs blog, software engineer Kevin Ho details four principles that his team learned during its engagement with Pivotal Labs. At first glint, Pivotal and IDEO’s approach to development appear to be diametrically opposed: while IDEO’s culture is highly collaborative, it operates in a largely unstructured manner. Pivotal Labs is devoted to testing and tracking the progress of a project. Using Pivotal Tracker, Pivotal’s developers break each feature and task into discrete “stories”, with the progress of each being followed. The developers focused on one distinct feature per day, making it easy to track progress and iterate upon discrete parts of the application until the results were satisfactory.
While Ho acknowledges that the different approach was jarring at first, his team were able to find a productive middle ground between Pivotal and IDEO’s respective processes.
“IDEO’s process helps teams be generative and handle ambiguity creatively, while Pivotal’s helps teams execute and refine a more resolved vision.” —Kevin Ho, IDEO Labs
Pivotal Labs’ approach to pair programming was revelatory for Ho’s team as well: though they have engaged in pair programming-like practices in the past, Pivotal’s disciplined approach, in which each member of a pair has their own mouse and keyboard connected to the same computer, allowed for a much more collaborative process in real-time.
Particularly useful for the IDEO team were pair programming sessions uniting developers and designers, which alternated between writing code and working on design mockups. These sessions gave the designers a first-hand look at the design needs and development constraints as the app was being built, engendering better understanding between the development and design sides of the project, and opportunities to better understand design problems and their potential solutions.
Most notably perhaps, IDEO’s team left the project with an understanding and appreciation for the ways in which Pivotal’s process can be applied to more than just software development.
“Pivotal’s process changes the way I think about problems. The process of decomposing and prioritizing the project is useful not only in code, but also when thinking about a design problem. It helps you articulate tradeoffs and decide between them.”
Reducing features and tasks into distinct projects that can then be tracked, while developers and designers work in close collaboration, not only makes a team prioritize every aspect of a project, but also encourages innovative solutions to challenges, be they development or design problems.