November 30, 2011

Laura Wingerd on History of Perforce Streams


Laura Wingerd speaking at the Splash Down Launch Party on November 3rd.

More than 100 attendees at the November 3 launch party at the Perfortress heard informal remarks from the visionary behind the new Streams feature in Perforce. Recently retired Vice President of Product Technology Laura Wingerd, who still consults with Perforce after 15 years with the company, explained how Christopher Seiwald, Founder and CEO, gently shot her down when she first proposed the feature.

"I wanted Perforce to offer a stream-like branching and merging feature a long time ago," said Wingerd. "But Chris said there were many ways to do branching and merging with Perforce, and that we just didn't have an answer to the question of which was best." However, as Wingerd spent time among Perforce’s most productive customers and observed their practices, the kernel of an answer began to form.

"Streams was born out of customer experience," said Seiwald. "You can have people pile in to the server and have 100 or 200 users, and let people just do their thing and it actually works with no workflow. It’s not something we recommend, but early on we didn’t have anything to recommend."

After learning from successful customers for years, Wingerd documented their lessons in her book, Practical Perforce (O'Reilly, 2005). Perforce Streams is the codification of best practices in Perforce, Seiwald explained. Following these principles, he said, "It turns out you can go from 100 to thousands or upwards of 10,000 users, all pouring their information into Perforce."

Wingerd explained the process of turning best practices into a releasable feature. "We started by putting together an intramural team to build a working prototype. We used P4Ruby and P4Broker to layer on new server commands, and we duct-taped a C# .Net app to P4V to try out graphical visualizations," she said to laughs in the crowd. "We tested the prototype with individual and group role-plays, and it held up very well. Finally, we reached a point of confluence: We had confidence in our prototype and room in our engineering schedule to turn it into a product. What was released this week is the GA of streams." The crowd of customers cheered.

The Streams feature in the Perforce 2011.1 release can be described in many ways, Wingerd said: "It’s an application, a user interface with underlying data and a behavior model. But it is also a platform that is available through the Perforce APIs, just begging to be exploited by entrepreneurs for applications we never imagined."