Friends With Benefits

Last time I talked briefly about what the E2E team in CSD is and vaguely what we do. Now I want to get a bit more specific. In particular, I want to justify our existence by explaining how we benefit the development of Oslo and hence our customers.

Oslo Milestone Scenarios

Let’s take the milestone scenarios first. The point here is that we try to define, at a very high level, what we believe is achievable as an integrated product at the end of each milestone. Remember that Oslo is comprised of a reasonably large set of quasi-independent product teams, so it’s our job to come up with that ‘all-up’ scenario that together they agree can be achieved. That’s benefit #1 – we have a holistic view of the product and we apply it to achieve integration.

We started off with the idea that these scenarios would be a set of so-called ‘hello worlds’ – theoretically tiny applications that test and verify a particular aspect of the platform’s capabilities, which is the approach that products like WCF took during its development. However, as Oslo is aimed at entire applications and their lifecycle, we decided that a full-on, sort-of-believably-close-to-real-life scenario made more sense. It turns out that our first intuition wasn’t wrong, though – we still decompose the entire scenario into little chunks (we we rather cutely call them ‘hello moons’, as the entire scenario was still called a ‘hello world’… at the start) and use these chunks both for measurement against plan and as check-in tests to ensure that no-one breaks the scenario as they develop their code.

Of course, it’s not done in a vacuum, we do it through collaboration and lots of back and forth. At the end of this definition process, we start delving into it in more detail, actually putting together a story of the whole user experience, end to end. This draws out many architectural and design issues between teams, some of which can be resolved there and then by discussion, others of which, our so-called ‘rocks’, are taken away and broken up into smaller, solvable pieces by the teams concerned. There’s benefit #2 – we help to identify and solve the big rocks facing our teams.

Having come to a story that all the teams believe in and which we broadly agree is achievable across the length of the milestone, we have a quick round of discussions with each product unit, asking them to sign off on their parts of this scenario as the integration deliverable for the milestone. Although we’d like their responses to be “OK, End-to-End overlords, of course we’ll do everything you ask”, more often than not it’s really rather closer to “You must be joking! We can’t do all that! Cut! Cut! Cut!”. So it’s a negotiation J. Benefit #3, then – we drive the milestone goals to sign off and closure.

As the milestone progresses, we build the scenario. Sometimes, we’ll build it with what’s out there today (as in, real, released software) and gradually modify it to use newer technologies as they come on stream. As we integrate and use all the disparate parts, we become essentially the first customers – we know what the experience is like, what’s good and what’s bad, and we tell the teams. Sometimes we’re subtle and kind, sometimes we’re, err, not. We have an internal blog where we share our frustrations with the use of the technologies in their early stages, and one of my colleagues is now rather famous for her entries in which she plaintively pleaded for serenity! The blog has caused tension, then, but it has mostly been what I call ‘benign tension’, where the ultimate result has been for the overall benefit of the team. Now I’ve skirted over benefit #4 – we act as the first, and very open and honest, customers for Oslo.

The final benefit we get to claim is that as we build the scenario, we provide a very visceral (our division’s favorite word) feel for how the product is coming together overall. This is benefit #5, then – you can gauge the overall health of the product at a glance by looking at the status of the scenario.

I’ve been told that my posts are too long, so I’m stopping here today. Next time, I’ll talk about the FTA and how that benefits us, too.

This part of my earlier post still applies, by the way:

SDE Pos# 208695

https://members.microsoft.com/careers/search/details.aspx?JobID=F4EE8DE8-E5C5-499C-9F7F-43563E00A524

SDE Pos# 214675

https://members.microsoft.com/careers/search/details.aspx?JobID=7AFF0BF6-0CC0-40A2-B519-7E123B1989AF

PM Pos# 176223

https://members.microsoft.com/careers/search/details.aspx?JobID=C4198008-E83A-411C-BB03-7CDC8AECCA49

 You’ll notice that, contrary to what I write here, those jobs are posted as PM and SDE jobs, but that’s just a reflection of the ‘major’ skills we’re looking for.