next*next*

a yahoo! thinga yahoo! thing

Productizing Hacks: Life After Hack Day

Hack Days are fun, no doubt, but what about getting hacks out the door? Yahoo!'s hack culture has been a blast to be part of, but one of the biggest challenges is integrating the great hacks into products and shipping them. After all, product roadmaps are big, and there's always an appetite to do more - would you want it any other way? But, given the size of these roadmaps, it’s not always easy for hack teams to know how to proceed after a hack day. And getting hacks productized is one of the best aspects of the hack program. So, here are some tactics to make that happen....

I’ve been running various flavors of an “enhanced” hack program in my part of the Yahoo! world for almost three years. Borne out of experiments that began while I was managing the Y! Autos engineering team, this program has evolved into these three core aspects:

1. Three-Day Hack Events

Picking the right timeframe for a hack event is key for bringing forward the best hacks while minimally impacting the roadmap. One-day hack events generated lots of very small hacks and proved difficult for hackers to conceive, design, and build something lasting. We tried a one-week-long event at one point in Y! Shopping, but it proved too disruptive to roadmap-focused activities. We settled on three-day events to drive bigger hacks. These three-day events give the teams time to coalesce, commit to a larger idea, and have the time to build it.

2. Business feedback and hack ratings (“H-ratings”)

After the hacks are initially presented in a fun open-call demos/prizes session, each business unit’s cross-functional leadership team (including the GM, product lead, eng lead, design lead, bizdev lead, etc.) meet with the hackers who built hacks for their particular area (e.g., Yahoo! Local).

Hackers then do their demos again, followed by the whole group having an in-depth discussion where “bullet point” level feedback is given and scribed. The leadership team gives each hack a rating, called an H-Rating, which is one of:

  • H1. Approved for release: launch this ASAP, typically less than one engineering-month of work to complete.
  • H2. Approved for roadmap: compelling enough for the product roadmap; work will require more than one engineer-month.
  • H3. Pursue if desired. Key issues are identified, e.g., scaling, business showstopper, not compelling. It's then left up to hack team to decide whether to continue pursuing it or not – typically, these are either revised and continued at a later hack event, or they are abandoned.

The leadership team takes a bias towards approving things for release (“H1”) whenever possible.

We’ve shipped some major hacks with this process:

3. Time to productize

Innovation experts are quick to point out that slack time is essential to innovating. I’m aware of a number of groups at Yahoo! that have tried various things to bring in slack time, such as "Friday afternoon hacking" for all engineers, one-off allocations of 1+ engineers for specific innovative projects, and my own personal favorite – the hack time grant program. With the time grant program, 15% of the engineering team’s time is reserved for innovation work. The engineering managers pool 15% of the team’s time on a quarterly basis; for example, calculating that in a team of 12 engineers, they can spend 25 engineering-weeks per quarter on innovation. This is not an “entitlement” that every engineer gets. Instead, it is time that any engineer can apply for through a one-page email request. The engineering managers review grant requests periodically and they spend the 15% budget every quarter. They can use it to invest in key areas, reward exciting innovations with move development time, and work on getting cool things out the door. In a mystery competitor’s 20% innovation time program (sometimes called a 120% program :D), I’ll hazard a guess that only 20% of the engineers participate, so they net only a 4% innovation investment.

The business value of the grant program is huge:

  • Drive innovation/differentiation into a product from more people
  • Employee retention
  • Huge selling point in interviews (I noticed that there is no better way to get an interviewee to smile)
  • Gets the team to point out and address "low hanging fruit"

I have been using time grants for my teams since early 2006. The engineers I work with appreciate that they can get time to work on projects without having to deal with the “unknown” factor, which includes having to negotiate for time in a team’s business roadmap. We are now exploring expanding the grant program to other sibling teams in our org.

In our efforts, the design, product management, QA, and release engineering teams support the program as much as they can. While they aren’t yet formally allocating a percentage of their time, they do help us get hacks into products – especially when they are part of a hack team.

So what’s next for the whole program?

Due to the success of this program in my organization, we're now working on getting the program more widely adopted. Also, I’m looking into whether a “Hack Maturity Model” (a la CMM) might be a good way to clarify various levels of hack sophistication across the company, to correlate success in building and shipping hacks with a set of best practices. “HMM1” might be just participating in corporate hack days, whereas “HMM4” might be H-ratings, formal slack program, and shipping all H1’s within three months. I'll keep you posted on how these go.

Popularity: 22% [?]

WebPath Goes Open Source

Web Central

At Yahoo!, I spend a fair amount of time on the Web. Not just wasting time on My Yahoo! and Digg, but trying to make sense of the manifold ways that sites expose structured (and not-so-structured) data. There isn't enough agreement about how a web page should describe, say, sports scores or movie showtimes or homebrew mead recipes. Different groups are working on approaches to this problem, including two technologies that get me fired up: microformats, RDFa, and now WebPath.

WebPath is a little project of mine that provides a way to query the web of structured data hidden in messy markup, from the most simple query (like "does this page use microformats?") up to complex, web-spanning requests (like "can I get to a movie review within two clicks from here?").

The ideas behind WebPath were published at the XML 2007 conference, where lots of great conversations started. Now, more discussions are happening, since the full source code behind the project has been released under a BSD-style license. So, what makes WebPath worth looking at?

Regardless of what type of markup a site uses under the hood, my team -- the Structured Web Group -- looks for ways to pull that structured information into an index where it can be sliced and diced in ways that help searchers get instant gratification via immediate answers to their queries. To accomplish this, the team needed to get a feel for which approaches work best with particular sites. It turns out that as these requirements surfaced, a local Hack Day was coming up, providing the opportunity we needed to try some experimental approaches. In little more than 24 hours, the project progressed from scratches in a notebook to a working implementation.

WebPath at this point is a technical endeavor, suitable for those who enjoy command-line programming. It's written in Python. (It pretty much had to be, given the timeline of its development!) You could consider WebPath a kind of XPath engine, to use the W3C jargon, but its main focus is on the "Web" part of its name. Webpath includes access to a module that accepts messy and invalid pages--just like the ones all over the Web--and "tidies" them up into something easier to work with and analyze.

What's next for WebPath as an open source project? Already developers are getting involved, using WebPath in their own projects, pitching in to offer new features, and, of course, helping fix bugs! I maintain a plain-text todo
list of areas for immediate attention, but in the bigger picture I'd like to wire this up to Hadoop as a front end for truly web-scale queries. You too can help shape the future of this project. If you've taken a look at WebPath, I'd love to hear from you.

-m

Golden Web photo by Cyron.

Popularity: 25% [?]

mdubinko, February 13th, 2008 on 10:00 pm

2 comments

NewsGlobe

Built for the most recent Yahoo! Hack Day, NewsGlobe is a fun new way to browse Yahoo! News Top Stories. It pulls together two existing Yahoo! services and takes advantage of the performance enhancements in the latest Adobe Flash Player.

The NewsGlobe consists of three basic pieces: a Yahoo! News Top Stories RSS feed, a geo-encoding web service from Yahoo! Maps, and a free, open-source library of 3D classes for ActionScript 3 called Papervision3D. The application loads the Yahoo! News RSS feed every few minutes and extracts the dateline for each story. It sends this descriptive textual information to the Maps service to find a matching location and thereby return a latitude/longitude coordinate. Then it's simply a matter of using the 3D classes in ActionScript to create a visually engaging experience that's either automated or interactive.

Papervision3D makes it incredibly easy to create a 3D scene, add 3D objects to it, and specify where the camera (i.e., the user's viewpoint) should be located. For each story location where we could discern a lat-long coordinate, we draw a marker object and place it in the proper position on a sphere representing the Earth. The display is calculated and drawn in real time. This allows us to animate the view over time and even let the user change the view by interacting with the objects in the scene.

Since the final product itself is a SWF file, NewsGlobe works online as a web application or off -network as a scaled-down, embedded customizable badge. It could easily be integrated into a Yahoo! Widget or packaged as an Adobe AIR application to run locally on the desktop. By passing in different RSS feeds or search terms, it'd be possible to filter the news and watch stories occurring in a specific part of the world, from a particular category, or matching other keywords.

Who built it

  • Lucas J. Shuman

Popularity: 27% [?]

NewsGlobe: See where on earth big news is breaking

As an engineer for Yahoo!'s Media Innovation Group, I'm lucky to get to use the latest tools available to develop engaging and interactive ActionScript applications. So, I'm surprised that a lot of people still think Flash is best used for screensavers and banner ads. For last month's Yahoo! Hack Day, I decided to show off some of the impressive capabilities of the latest Adobe Flash Player and ActionScript 3 by building a visually interesting new way to browse Yahoo! News top stories. In a surprisingly short amount of time, I was able to mash up two existing Yahoo! services, and then represent the information in a virtual environment I call the NewsGlobe.

Y! NewsGlobe

The NewsGlobe consists of three basic pieces: a Yahoo! News Top Stories RSS feed, a geo-encoding web service from Yahoo! Maps, and a free, open-source library of 3D classes for ActionScript 3 called Papervision3D. The application loads the Y! News RSS feed every few minutes and extracts the dateline for each story. It sends this descriptive textual information off to the Yahoo! Maps service to find a matching location, and return latitude and longitude coordinates for it. The rest is simply a matter of using the 3D classes in ActionScript to create a visually engaging experience that's either automated or interactive.

Papervision3D makes it incredibly easy to create a 3D scene, add 3D objects to it, and specify where the camera (i.e., the user's viewpoint) should be located. For each story location where we are able to discern a lat-long coordinate, we draw a marker object and place it in the proper position on a sphere representing the Earth. The display is calculated and drawn in real time. This allows us to animate the view over time and even lets the user change the view by interacting with the objects in the scene.

Since the final product itself is a SWF (Shockwave Flash) file, NewsGlobe can live online as a web application or be embedded off-network as a scaled-down customizable badge. It could also be integrated into a Yahoo! Widget or packaged as an Adobe AIR application to run locally on the desktop. By passing in different RSS feeds or search terms, it could be possible to watch stories occurring in a specific part of the world, from a particular category, or matching other keywords.

In all, NewsGlobe was a fun project to test a simple idea and see if I could achieve the desired result within a short amount of time with relatively little difficulty. Is it perfect? No. Could we add a lot of additional features to make it something more useful and accurate? Absolutely. However, I would certainly consider this a successful proof of concept and viable prototype for similar future interactive 3D visualizations.

If you want to learn more about the individual pieces used to create the NewsGlobe, follow the links below:

Yahoo! News - Top Stories RSS

Papervision3D

Popularity: 30% [?]

Yahoo! Maps — all natural AS 3

What's next? This isn't a rhetorical question: after today's release of the Yahoo! ActionScript 3 Maps API , it's a question we feel we can ask. With a native ActionScript 3 mapping engine, map control widgets, geocoding, local search APIs, and custom markers and overlays, what can possibly be next? And the answer is simple: whatever you build with it!

The new component is very lightweight (base size is 30Kb), yet incredibly functional, easy to use and opens up a number of the other geo-centric web-services we have at Yahoo!, making it easy to develop overlays and components that build on top of the API in any of your Flash, Flex, AIR or Ajax applications.

To give you an idea of its functionality, during the development of the new API, Jonathan New and Benjamin Halsted of the Yahoo! Messenger team hacked up a really cool flick-able and rotatable map interface for our internal Q2/07 Hack Day, and won for the most fun hack! You can check out their flickable maps hack right here. Try to toss the map around, and shift-drag to rotate around the center. Special thanks go out to them for making such an awesome app.

If you have some Flex or ActionScript development chops, definitely jump in on the fray and grab a copy of the AS3 Maps API for yourself. We've prepared a few screencasts, examples and complete documentation to get you started, and we look forward to feedback.

I would also like to thank a number of people that made this release possible. First, everyone on the Yahoo! Maps and Flash Platform teams, past and present, including Mark Law, Rodney Fernandez and Allen Rabinovich. Huge thanks also go out to Lawrence Morrisroe, Buck DeFore, Ted Patrick, Eddie Babcock, Randy Troppmann, Chuck Freedman, Aaron King, and JR Conlin. Whew.

Popularity: 23% [?]

About Next*

  • * Tasty bits of hacker goodness
  • * A steady stream of small delights
  • * Ideas, experiments and the people behind them

  • Brought to you by the folks at Yahoo! Brickhouse

  • Editor-at-small: Cynthia Johanson
  • Site design: Matt Fukuda
  • Backend heroics: Kevin Railsback

Next*... where the wildcards are.
Copyright © 2008 Yahoo! All Rights reserved. Privacy Policy - Terms of Service - Copyright/IP Policy