Phizzpop Design Challenge Austin

This past week, I had the privilege to be involved with the Phizzpop Design Challenge in Austin. I was called in by Chris Bernard as a technical mentor to the contestants who needed help and to help him run things on the night of the presentations.

What is the Phizzpop Design Challenge?

Let me back up here and explain what the Phizzpop Design Challenge is. Phizzpop, the new Microsoft center for design excellence, sponsored a design challenge focused on the designer/developer workflow while solving an experience design problem. They invited a number of different design firms to compete in regional competitions, 36 teams total took them up on the challenge. The winners of the regional challenges go to South by Southwest to have a showdown to determine the national winner. The challenge itself was send at least 2 but no more than 3 of your “A” team to design and build a solution for a problem in 2.5 days. At the end of that they publicly show their solution in front of a large crowd and importantly a panel of judges. To help them out, there was a 2 day training class in Expression Design, Expression Blend, WPF, Silverlight and so on. Additionally, they provided me and a number of other resources from a technical end. The goal was to make sure that the technologies were not a blocking issue to success for the teams. I was completely amazed at the mad design skills that each of the teams brought to the table. Those of you who know me know that I couldn’t design a handkerchief so my opinion is not the one that matters. 🙂 However, Chris Bernard and everyone who saw the finished products were really impressed with the quality and completeness of the designs across the board.  

What was the design problem?

Each of the regional events had their own design problem. I really liked the one in Austin as I really enjoy independent films and social media. There’s an independent film distributor called Microcinema out of Houston that does local viewings/film festivals called Independent Exposure around the nation at coffee shops and the like. They want to reach out beyond their local viewings which are expensive to set up, market and run using all the technologies that are available. There were three personas that were involved including a college film student, an artsy non-technical wanna-be bohemian who’s married to a doctor and a social media junkie/job recruiter. The designs had to satisfy all three of the personas to be complete.

The teams were judged equally on:

– Satisfaction of Constituent Needs: How well does the needs of the constituencies as defined by the profile? Is the experience appropriate for the audience? How elegant is the experience?
– Satisfaction of the Market: How well does the solution address the market needs? Will the solution work across all of the identified constituencies?
– Uniqueness of the solution: Is the solution unique, differentiated and defensible?
– Technical Excellence: Was the team able to build a working solution (however limited), or is it purely a scripted prototype?
– Aesthetics: How visually appealing is the solution?

There were also bonus points available for integrating with the Live services and overall creativity.

Who were the teams?

In the order that they presented their challenges:

image 
Telligent – The guys that produced Community Server and they’ve recently started up a real design practice. They obviously have great experience in web applications, social media but I hadn’t seen a ton of their design work outside of their templates for Community Server. I have always liked their templates that are on top of Community Server – in fact, I’m really hoping that they will leverage that same experience to design some templates for Sharepoint too.
image
Frog – The largest and most established firm in the competition and clearly the favorites. These guys being involved proved interesting because many of the other firms were composed of graduates of Frog and it really raised the level of competition. 
image
Projekt202Young and hungry firm. I had the least amount of interaction with these guys but they were fantastic.
image
PoplabsThese guys are are media experts that really brought a different perspective to the table. It was unfortunate that they were plagued by hardware problems. It didn’t help that this was the first of these type of challenges that they had been in. They had some great ideas.
image
Thirteen23The firm that was at MIX and build the application called mixME in 8 hours with many of the same team members. Check it out, it’s a fantastic showcase. I knew that they were going to bring their “A” game and had high hopes for them.
image
Neudesic – I heard about this firm literally last week when I found out that Sam Gentile had joined them to help them run their connected systems practice. But I didn’t know that they had a design practice, in fact a lot of people didn’t know that as they started their design wing 6 months ago.

How did I help?

Phil Wheat and I were onsite during the entire build process for the teams as technical resources to make sure that the technology was not the blocking issue. We had a number of interesting questions that were tossed out over the 2.5 days that ranged from relatively basic (Very few of these) to “holy cow, what am I a ninja?” hard technical questions. The best ones were the ones where they were butting up against the technical limitations of the technologies involved. My favorite question was one where they were trying to dynamically set the ZIndex of a control. We scratched our head over this one for a while. I called in favors from a number of guys ranging from Scott Barnes to Jeff Blankenburg who looked at the code remotely and scratched their heads over it as well. It looked right and it wasn’t throwing an exception but it wasn’t doing the right thing.

            this.SetValue<double>(Canvas.ZIndexProperty, ZIndex);

The issue, as one of the contestants from another team figured out and revealed in an true spirit of sportsmanship, the issue was that it needed to be setting an int rather than a double.

            this.SetValue<int>(Canvas.ZIndexProperty, ZIndex);

I thought that this was wild and broken that it doesn’t throw an exception when you pass in the wrong type like that.

There were other questions like how to do a particular type of animation. When doing logic, XAML and the like – I knew how to help with most of those. I had an issue, however, when they started getting fancy with the animations, like trying to use Ease Splines. In that case, I had to call in the expert help of the editor for Phizzpop, Don Burnett. At one point, I had Don on speaker phone and watching what we were doing with LiveMeeting and giving us direction. That was cool and I learned an amazing amount. Don helped a ton throughout the couple of days.

How’d the build go?

All 6 teams brought fantastic ideas to the table. There were obvious ideas that all of the teams centered around with integration into current social media like Twitter, Flickr and FaceBook. I was really impressed by some of the originality shown by some of these ideas like Neudesic allowing Facebook members to share movies with their other friends. Several of the firms had the idea to bring in time-lined comments from Twitter.

The different firms displayed different ways of working. I actually didn’t even see Frog or Projekt202 until the night of the challenge as they just worked out their home office. They were allowed to ask their other team members for ideas on the design but not for help with the implementation. I saw Thirteen23 on the first day as we had a number of assets that they were allowed to use, like videos and images from Microcinema that they needed to copy. This was really the only downside of the whole experience. I would have loved to have seen the process that these fantastic design firms used. I did get to watch several of the firms.

Neudesic actually worked out of the room that I was hanging out at to be available the entire time. They had three team members, two devs and a pure designer. It was great to watch how cohesive they worked together. For the 2.5 day build, they set up a team site and source control. They almost did TDD, Continuous Integration and everything but they quickly realized that they were not going to be maintaining this code beyond Friday because whatever they build would be considered a prototype and would be tossed if they ever went forward with it. They sat down and started hammering out a design and as soon as they identified components that they were sure that they were going to need, one of their team started building those. The others kept on until they knew the services that they needed and the other dev started on those. The designer started creating assets and they started sticking those assets on the components and then stared wiring those components up to services. It was fabulous to watch. They had, hands down, the most completely implemented and least vaporware solution that was presented. However, it was a design contest and their design was good but it wasn’t the best. I, personally, have a tremendous amount of respect for the Neudesic team and feel comfortable recommending them as the UI team for anyone. The questions that they asked were definitely cutting edge and showed they were pushing the technologies (Silverlight 2.0, WCF and so on) to the limit. The only one that they were really stumped on was a cross domain issue where they were calling services on a different domain which is not allowed in the current release. It’s coming, but not hear yet.

I also got to see Telligent a few times when they came in to ask questions and get a change of scenery from their hotel room that they were working out of. The questions that they were asking were where they were pushing the limits of Silverlight and they just needed clarification on where the boundaries were.

I spend most of my time with Poplabs. As I said, they had a lot of hardware issues. They had two machines, a mac and a dell, just die on them. They had issues with installation of the software needed onto a third box. And so on and so forth. They finally really got to the implementation on Friday morning. At 4:00, they realized that what they had was really not going to get the job done. Toya D., their designer/dev, took her box off to the venue and sat down to start over from scratch. In 3 hours, she threw together a fantastic working demo that was at least as much of a working demo as some of the other teams. Her team mates sat down and started working on a slideshow for the judges to show the rest of their idea that wasn’t going to be completed. It turned out that all of the teams, besides Neudesic, had this type of an presentation – some implementation and a lot of presentation. I was really impressed with her skills from a design and implementation perspective – especially given that she really cranked out the final product in about 3 hours.

How was the Party?

For the presentation portion of the contest, Chris threw a heck of a party at J Black’s. First of all, the food and drink was fantastic. There were 3 HD projectors showing off the fantastic designs that every came up with. There was a DJ with a pretty cool rig. It was an Ion IDJ iPOD DJ Mixer. He had two iPod’s hooked up with all of his music and did the whole party from there.

The official program started with presentation from Steven P. Anderson about what designers are and what they do. He really did a fantastic job of setting the stage and helping the audience, not all of whom were familiar with the practice of design, understand the underpinnings behind the competition.

Then Chris introduced the judges:

Erica O’Grady – Social media consultant, designer/developer in her own right, creativity coach and all round fun gal to hang out with.
Norm Cox – Design legend. Started with Xerox and has run his own firm since 1982.
Todd Wilkins – Design Researcher with Adaptive Path. He was a last minute serendipity. One of the judges had recused themselves as they personally knew the members on one of the teams and out of the blue Chris found out that Todd had just, and by just I mean on the same day as the competition, moved to Austin from San Francisco.

Then Chris introduced the design problem and we got started showing the final products in the order above. There were a few gut check type technical problems, like one of the teams not having a Firewire cable with them and their entire solution on their external drive that they couldn’t access without one. Fortunately, we found a USB 2.0 and a Firewire cable for them to try. Other than minor issues like that, all of the presentations went well.

What was the result?

The three judges all came out and said flattering things about all of the teams. In fact they said that none of the judges completely agreed on the top 3 and that every firm was in at least one of the judges top 3. That’s an impressive fact and really goes to show that all of the teams did a great job.

However, only one team can win. In something of an upset, Thirteen23 came out on top over the top of the some of the larger firms. They brought together design, function and implementation not only with the expected technologies but in their spare time they threw up a live service and invited all of the contestants to hit it with their iPhones to watch a movie as well. It was really impressive. They are supposed to work with Chris this week to get their implementation posted to the Phizzpop gallery and I’m sure that they will show it off in their labs as soon as they get done celebrating their awesome victory.

Who’s going to the finals?

AQKA, San Francisco Winner
Create the Group, New York Winner
Clarity Consulting, Chicago Winner
Cynergy Systems, Los Angeles Winner
Outright Interactive, Boston Winner
Thirteen23, Austin Winner

Wanna keep up?

First, check out Chris Bernard‘s blog as he’s posting a  lot of the follow-up information there.

Second, go out to Phizzpop and register a profile to get notifications for the upcoming challenge and other great events that are popping up around the nation.

Last, if you possibly can you should register and attend SXSW to watch the big showdown in person.

Alt.NET Leadership Summit

Alt-Tab Pedal“My dream is that the next evolutionary leap in software development, on the magnitude of continuous integration, comes from the .NET world.” John Kordyback – Alt.NET Leadership Summit 2007. This is a huge challenge that he laid out at the summit meeting this past weekend.

I’m actually sitting on the plane on the way home from this same Alt.NET Leadership Summit and collecting my thoughts. I’ll be honest and say that it was a very interesting ride throughout the day. I came in with very few real expectations as to what was going to happen or what was going to be talked about. I knew that one of the core missions of the weekend was to decide on how much “leadership” this movement needed. Secondarily, and part of the reason I was there, everyone wanted to figure out how Microsoft can be involved or if it should be. Lastly, there’s been a lot of criticism lately around a negative vibe that some people are getting out of Alt.NET.

Who was there:
I came on the invitation of David Laribee. I know that the other guys that were invited from Microsoft were guys like Scott Guthrie, Scott Hanselman, Peter Provost and John Lam. I’m honored to be included on that fantastic short list.

I already knew David, Scott Bellware, Ray Lewallen, Don (XML) Demsak and Rod Paddock (Who didn’t make it). I also knew Peter Laudati (Developer Evangelist out of NY) and Dani Diaz (Developer Evangelist out of Philly). I had met Martin Fowler once or twice but we had never really had a chance to sit down and talk.

I didn’t know but got to meet Mike Roberts (who created CruiseControl.NET), Brian Donahue (who’s starting the first Alt.NET User Group in Philadelphia), John Kordyback (Currently working for Thoughtworks and one of the key guys for the relationship between Thoughtworks and Microsoft), Luke Melia (Who is actually going to work at a new startup on a completely Ruby on Rails application), Wendy Friedlander (token female – :), frequent speaker and Agile pairing expert), Jeremy Miller and Stephen “Doc” List (Open spaces facilitator and dubiously Scott Bellware‘s boss). I also didn’t know the other Microsoft guy, Glenn Block (Working currently on the Smart Client Software Factory for Patterns and Practices). It was amazing to be sitting in the room with all of that brain power.

Summary thoughts on Alt.NET

The first thing that I need to put out there is my thoughts on what Alt.NET is. David Laribee wrote the original 4 pointsMartin Fowler said it really well when he said that “Alt.NET is about strengthening the .NET Ecosystem and therefore the .NET platform”.

Alt.NET, to sum of the discussion this weekend in a gross and barbaric way, is about Alternatives In .NET not Alternatives To .NET.

ALT.NET Tools BoardWhat it’s not:
Alt.NET is not anti-Microsoft. The whole crew, by and large, was very pro-Microsoft and supportive of .NET and Windows. Not necessarily Vista, but Windows in general.
Alt.NET is not about a particular toolset even though it happens that many of the members use the same exact toolset. It’s a philosophy grounded in many of the things that Agile community embrace. The tools that they choose are tools that either really help them follow that philosophy or at a minimum don’t get in the way.
Alt.NET is not a group. It’s a movement of which there are many members in many different circumstances.

What is is:
First and foremost, it’s about raising the bar in development shops in the .NET world. That’s desperately needed. There’s a lack of knowledge of how to and/or desire to build truly great software by the majority of developers in the world. I’m not the first person to say this nor will I be the last. Jeff Atwood recently posted about the “80/20” rule where 80% of developers are 9-5 clock punchers and the other 20% are trying to better themselves through many different educational means, like reading blogs, magazines, books, attending conferences, training classes and so on. But across the board there is a lack of knowledge of the fundamentals. Recently I was talking to a developer who had deep knowledge about specific technologies but it started to become apparent that they lacked the fundamentals like Object Oriented (OO) programming. This is one of the points that I think that I brought to the table this weekend that resonated with people. Many of the Alt.NET guys are concerned about teaching Agile, TDD, Object Relational Mappers such as NHibernate and so on but we really need to start even more basic than that and make sure that there’s a true grounding in the fundamentals before the rest of it matters.

Second, the way to raise the bar in development shops is to raise the capabilities/skill/knowledge of the developer through a grounding in Agile practices such as TDD and best practices such as continuous integration. This is counter to adding slicker tools that drag and drop and perform magic that not all users understand and nobody can automatically test.

So back to this weekend’s summit.

One of the key take-aways for me was the crew that was present are really the passionate about getting this movement off the ground and jump started more than they are being dictatorial leaders. It’s great that the everyone there got that. This movement is larger than they are it’s it’s larger than the sum of the parts. There was discussion in the first session that I sat in on about the fact that this person or that person was “on the sidelines” and so they shouldn’t be allowed to talk about Alt.NET because they weren’t in the “club”. This was very quickly quashed by a 8-1 margin (9 people in the room) voted by everyone virtually dog piling on the 1 and consensus was reached. It’s far more important that people are starting conversations around the philosophies that Alt.NET hold near and dear than it is to be involved in the group. It was also discussed that it’s important to get that right and that you shouldn’t be talking about XYZ topic unless you really and completely get it. Mock objects were one of the examples of this – unless you truly understand mock objects, you shouldn’t talk about it. I personally disagree a little bit on this. I think it’s more important that people are starting to have those conversations than it is that they get it right first shot out the ga
te. The more people that are aware of it and are attempting to leverage the tools the more likely we as an industry are to get it right. For example, I’ll be honest and say that I’ve not done a lot of pure agile development and I’ve never done a production system with a pure TDD approach. However, I’ve had an epiphany when I finally caught on that it’s not about the tests. It’s about designing the code. Once I got that the lights came on and I became a believer. The tests are important, but they are almost a side effect of going through the process of designing your code right. This does form a great body of executable documentation that can serve as a safety net to you and the developers around you. This is fantastic and I think I should be able to speak about it. And the more I speak about it, the more awareness I’m raising and the more likely a given shop is to try it. Now, that being said – I always toss out the appropriate caveats that I’m not the expert. I’m just a guy who things this is right and wants to get that discussion off the ground. Hopefully through that process, we can all grow and learn and in so doing continually evolve our expertise as a whole.

We also talked quite a bit about the negative vibes that have been the focus of a lot of the of the discussions lately. “Crank.NET” and so. For this discussion, it was invaluable to have Martin Fowler and his experience with the Agile movement at the meeting. He talked about how there were a lot of the same issues in the early days leading up to and shortly following the creation and signing of the Agile Manifesto. In short, there were several of the core guys that were particularly avid about the rigidly of principles of the movement and were not overly diplomatic in their delivery of said message. This is what the Alt.NET movement is going through right now. Many of the solutions to the problem were fairly lo-tech, like getting peer reviews on content that’s going to be publicly consumed. He actually talked quite extensively about the fact that on discussion lists, mailing lists and so on that you should always realize that the person you are writing the note to is only a small percentage of the actual audience so context, you have to choose your words well for the wider audience.

Lastly we talked a lot about how Microsoft can help. The interesting part is that early on the discussions it seemed that it was very much an us verses them discussion. As the day moved along, it became clearer and clearer to everyone present that it was in both Microsoft and the movements best interest for Alt.NET and Microsoft to work together in this. If we jointly focus on challenging and strengthening the eco-system within the .NET community to raise it’s bar to the level of the bar in the Ruby community, for example, everybody wins.

In the last session, we went around the room and talked about what we had gotten out of the meeting and what we were taking forward. The same themes were resounding from everyone around the room. And there was a bullet list of goals to pursue over the next year or so. The most contentious of the goals is to put together a manifesto. Like a lot of people, I didn’t get the real reasoning behind it until Martin Fowler said that the reason was to keep anyone, especially vendors, from taking the term and morphing it to fit their individual needs/desires. The movement as a whole is larger than a single person/group.

I second John Kordyback – I too want the next evolution in software development to come from .NET. Alt.NET is attempting to raise the bar high enough that this becomes reality.

Bill Gates on Green Computing

Consulate of Brazil - SydneyOne of the reoccurring topics recently has been green computing and how the architecture decisions that we make impact the environment. From laptops to data centers, we are trying to reduce power consumption. On laptops it’s obvious because the more power you consume the worse your battery life is going to be and people see that dramatically. When I’m talking about battery life, I will usually say I’ve got X number of hours doing word processing and the like, X number of hours writing code and compiling and such and X number of hours watching movies. It actually makes a difference in data centers too as there are heating issues and electrical bills that are important. In an eWeek article, they said that data centers are responsible for roughly 1.2% of the nations power consumption. That’s a fairly staggering number if you really think about it. According to an article by Nicholas Carr, the average avatar in Second Life has roughly the same carbon footprint as the average person in Brazil. That’s amazing to think about.

As we are all thinking about cutting gas consumption and hybrid cars – we absolutely have to think about greener information technologies. There are number of ways to do this. One of low hanging fruit items in data centers is getting the utilization percentage up because idling machines are still using power. The target should be 50% or higher utilization. That’s a scary and hard number to really hit. If a server fails there’s a lot less places to shift that processing so it means that your live intelligence about the processes running needs to be crystal clear because you need to be able to make solid decisions about how to organize your data centers.

Getting rid of a lot of the CRTs is one of the things that are helping on the power consumption issues. I know that this is something that a lot of companies have thought about. For example, I bought two 21 inch CRTs from Quicken Loans about 2 years ago because they had figured out that replacing all of the CRTs with LCDs would save enough power to justify itself over some number of years so they went out and bought 2 19 inch LCDs for every desk in the organization. That’s a few more than 5000 seats.

Microsoft RoundTable deviceTaking meetings via LiveMeeting verses taking a plane for an in person meeting saves a whole lot of power and cost. There are a lot of interesting technologies that are coming out in this area. For example the Microsoft RoundTable which is part of the Unified Communications Suite is amazing. It’s a speaker phone/camera that sits in the center of the table. Unlike typical video conferencing which gives you a static view of the room, the RoundTable gives you a dynamic 360 view of the room following the voice of the speaking person much like you would if you were sitting at the table and looking around. That makes sure that everyone involved is fully viewed and remote groups feel as if they are in the room or as close to it at technologically possible. It’s changed the way that meetings are done at Microsoft. There’s one team at Microsoft based out of Redmond that had a few members that are based throughout the rest of the country that has weekly conference call status meetings. It was remarkable once they started using the RoundTable. It turned out that none of the people that were remote had really been paying attention in the meetings. They were too busy doing email, IMing, hanging out on mute and brushing their teeth or whatever. Since their team switched over to using the RoundTables for the meetings, they are no longer able to “hide” during the meeting because it’s so much like they are actually in the room.

There are a ton of other really simple common sense things that we can do. I’d love to hear your ideas.

BTW: Craig Mundie’s organization (Microsoft Research) now has a new Environmental Officer. 🙂 That’s pretty cool. Microsoft is taking green technology very seriously these days. I like that.