Like a lot of shops, e-business development firm CodeFab wanted to find a better way to solve client problems and to improve long-term relationships. About a year and a half ago, it did. The better way turned out to be Extreme Programming (XP), a programming method that one of its engineers had been exploring. CodeFab has found XP so valuable, it now develops all of its projects using the full set of XP practices, including frequent small releases, pair programming, and building unit testing first.
CodeFab partner and CFO Bill Bumgarner said that the company switched to XP while it was in the middle of designing and building a content management platform for Noggin, a joint-venture interactive TV network created by Nickelodeon and Sesame Workshop. Noggin needed a system that could efficiently save, store, display, retrieve, and maintain statistics and directories for all the content generated by the site’s young users.
“The complexity of the project had grown, and frankly, the traditional style of working on the project just wasn’t going that well, so everyone involved was looking to have some change,” Bumgarner said.
Because CodeFab had an established relationship through the project, it was able to convince the Noggin team that it was as committed as Noggin was to making the project a success. Introducing XP provided the necessary opportunities for feedback—intensive processes that helped coordinate the efforts of more than 40 people and allowed Noggin to guide the project as it evolved.
The project
CodeFab’s job was to create a core foundation for integrating content and applications created by third-party developers. The result is a front end that includes a combination of HTML and JavaScript, along with some additional technology. To simplify the management of diverse content created by a variety of people, CodeFab used both HTTP transactions and some XML-RPC transactions, APIs that allowed third parties to interact with the core to complete their part of the application.
The back end was built using Java and some compiled C.
“We’re actually using WebObjects from Apple for most of the infrastructure construction. It’s like an integration platform,” Bumgarner said. “The system goes against an Oracle database, Solaris servers, and Apache Web servers and uses XML-RPC to talk to third parties.”
Noggin.com has high traffic levels, with a tremendous number of kids visiting the site. Content they create, with parental consent, has to be approved by editors. Then, some of that content is sent to a video production firm to be integrated into the TV broadcast.
Bumgarner characterized the development challenge as essentially one of workflow. “Thousands of users are generating thousands of pieces of content, all of which has to be reviewed by an editorial staff and go against COPA [Children’s Online Protection Act] compliance. And it works. It stays up most of the time.”
Using the XP process
Short iteration cycles and frequent releases are standard when using XP. CodeFab usually ran a two-week cycle, with a new deliverable every two weeks. The team would sit down and review what had been done. They would then come up with any new stories (use cases) they needed to implement.
“One of the greatest strengths of XP is probably that overall, it encourages so much communication on all fronts that it keeps people in the loop much more effectively,” Bumgarner said. That communication helped both Noggin and CodeFab gain a better understanding of the complex system they were creating. “Suddenly the business side of things and the technology side of things started falling into alignment.”
Seeing double
Among the more controversial aspects of XP—but one that in practice turns out highly efficient results—is pair programming. According to Bumgarner, the team approach leads to a broader perspective, which is especially valuable when developing a complex system. “You have someone sitting there who’s thinking along a different line of implementation and, as a result, is often catching dependencies or potential problems that you may not have caught alone.”
The finished product
Noggin, which bills itself as “the first network to create a Web-to-TV conduit for children’s creativity,” began using the interactive content in its fall 2001 lineup with the Phred in Your Head Show, which featured kids’ songs, riddles, and animations. The network gives CodeFab high marks for its efforts.
“From the beginning of this complex and ambitious project, our comfort level with the CodeFab design team was extraordinary, and it grew as they built the framework not only for the deployment of content on the site but for the process of pulling together work from many diverse sources,” said Kenny Miller, Vice President of Production and Programming at Noggin. “CodeFab helped create conditions in which creativity could flourish—first the creativity of our applications designers and ultimately that of the children.”
Should you consider using XP processes in your shop? It seems to have agreed with CodeFab, whose customers include Warner Music, Viacom, TIAA-CREGF, Standard & Poor’s, and Apple. “Once you start doing it, once you start to see the successes with it, then doors open,” Bumgarner said. But he advocates using all of the rules and practices. “If you’re going to do XP, dive in feet first—all the way—and just do it.”