RobMensching.com /Blog
when setup isn't just xcopy

Posted by
Rob Mensching
Saturday, January 09, 2010 3:44 PM

Snack Apps

This afternoon Dare Obasanjo tweeted a link with a comment that caught my eye, "The rise of software as entertainment instead of productivity - http://kickingbear.com/blog/archives/67". A quick warning before you follow that link: there are plenty of words in there NSFW. Expletives aside it triggered an interesting thought.

Guy English is the author of above linked blog entry and a developer for Tapulous, makers of the iPhone hit game Tap Tap Revenge. As Dare's tweet suggests Guy's post is about entertainment software. Guy calls it "Pop Software". Interestingly, Guy immediately belittles the terms "Software" and "Applications" suggesting that entertainment is found in "Apps":

“Apps” is fun. It’s fun to say, it sounds unthreatening, it’s a word sufficiently abbreviated that it takes on a life of its own without dragging to the forefront of peoples minds the more sterile and technical sounding “application”. Apps are not Applications – they are their own things. They are smaller. They are more fun. Apps are treats atop your technological sundae. They are not potential time sinks. They are neither burden nor investment. They each represent a nugget of fun, of fleeting amusement. Apps are gobbled up in the millions by people who would never rush so willy nilly to buy desktop software. Apps are Pop Software writ large in blinking neon lights.

All of this reminded me of "Snack Apps". I think I first heard the term used by Peter Marcu. Snack Apps are small apps that do one thing or don't really do anything... but entertain. As a software engineer (with all the importance that title implies) it is easy to dismiss Snack Apps.

But would happen if one was take Snack Apps seriously? That's what Dare and Guy got me thinking about.

 


Posted by
Rob Mensching
Friday, February 06, 2009 4:30 AM

Release Candidate defined.

A week+ ago, I posted a blog entry noting that the WiX toolset was out of beta not in it. I also mentioned that we are now in the "release candidate" mode and provided a quick definition to differentiate it from "beta" mode. A few days later Steven Sinofsky posted a entire blog entry about Windows 7 entering the Release Candidate milestone. In typical Sinofsky-style, Steven posted a much longer definition of release candidate and placed it in context with the other typical milestones at Microsoft.

Now I'm still a little flexible with some of the bugs we'll take into the WiX toolset even though we are in release candidate mode. For example, as I mentioned in comments previously we took the MSI 5.0 changes late in WiX v3 for three reasons:

  1. Staying current with the Windows Installer is important for the WiX toolset.
  2. Implementing the Windows Installer beta functionality helps them find bugs.
  3. The next official release of the WiX toolset (after v3) will be available quite a while after Windows 7 ships, the MSI 5.0 functionality may be required by our customers before then.

We also still have some work to integrate Votive with the next version of Visual Studio. That work will be coming in late since we're waiting for their beta.

Anyway, I hope that provides some more detail about how we're approaching the end game for WiX v3. Getting the bug found and count down to zero is our primary focus. That and having a little fun along the way.

 


Posted by
Rob Mensching
Wednesday, September 03, 2008 10:41 PM

The Office family and the Windows division.

Recently Robert Scoble posted a blog entry about how Windows engineers feel Win7 is being managed differently than previous Windows releases. As I read through the list, I immediately thought, "Hey, that's just like Office." It also reminded me of an analogy I came up with when I first joined Microsoft.

Before I continue, I should note that I consider myself to heavily influenced by the "Office-way of software engineering". When discussing software development philosophies with other Microsoft employees I often say that "I grew up in Office". I believe that foundation in large scale software engineering tempered by my exposure to the "Open Source-way of software development" has been invaluable to my development as a software engineer. There was many a day when I was in Windows where I longed for the "Office-way". However, as a disclaimer, do know that I was young when I was in Office and it was a long time ago so nostalgia may have seeped into some of my memories. Also, as always, these are my feelings and views alone... others may see things very differently.

Now, back to my story.

When first at Microsoft I was trying to describe to my Mom the differences between Office and Windows. Not that one was suite of productivity applications and the other was an operating system. Instead, I was trying to explain the cultural differences across the two organizations. It amazed me how incredibly different the culture of two parts of the same company could be. I described it to my Mom back then as the "Office family" and the "Windows division".

In Office, everyone felt like a part of the extended family. I always worked on a "Core" team so the build team and UI team felt like siblings while the "Word" and "Excel" teams felt like cousins and the "Powerpoint" team felt like distant cousins (since they were down in Silicon Valley). Development managers and directors felt like "heads of the household" and the "head of the family" (Steven Sinofsky, during my tenure) all provided direction, discipline and support at their various levels. You were expected to work out issues at your level and not "go crying to daddy". In fact, escalating usually had negative consequences for all of the people involved. Overall, it felt like everyone was working together to ship a very complex and large product on time.

In Windows, it felt like there were all of these small kingdoms vying for attention and resources. Everyone felt very compartmentalized on their particular feature. The development manager and directors were necessary to exert your requirements on other team. Escalation was the norm and sometimes you'd have to go through 6 layers to get the leverage desired. Also, rigorous process seemed to be valued over developer productivity. I think the term "death march" was invented in Windows. Overall, it felt like constant battle to test the mettle of teams and the features to be delivered into the operating system.

Now, to be fair to the culture that developed in Windows, there is a serious amount of pressure to be all things to all people. Not only do you have to build features that capture the imagination of the future but you have to make sure everything that worked in the past continues to work today.  And the OS is always on. If you want to see someone take the responsibility seriously check out Raymond Chen's blog. He's one of the true Microsoft heroes.

Anyway, after I heard Sinofsky would be moving from Office to Windows I hoped that many of the changes Scoble described would occur. When I later heard that Jon Devaan was moving in to lead another part of Windows, I expected a culture change was inevitable. Why? Because the guy that led Office before Sinofsky was Devaan. I believe culture comes from the top and the Windows division got a huge injection of "family values" when Devaan and Sinofsky moved in.

Now I just hope the (IMHO) improved culture creates an incredible product.

 

PS: The Live Mesh team has a different feel than any other team I've been on. I expect that is due to Ray Ozzie's influence (remember, culture from the top). Maybe I'll write more about my feelings on the Live Mesh culture when I understand it better.

 


Posted by
Rob Mensching
Tuesday, November 06, 2007 5:57 AM

Model View Presenter links

Some of you may be wondering why I went MIA for for about 8 weeks. Obviously, I got busy. There were two forces sucking up all my time over the last couple months. The largest one was a complete rewrite of the some of the functionality in the digital locker. The existing code base in the digital locker (and pretty much all of Windows Marketplace) is extremely monolithic. As a monolithic block of code it is extremely difficult to fully comprehend, enhance both tactically and strategically and it is completely impossible to unit test.

Since I was tasked with this very large feature modification for the digital locker, I took the opportunity to go out and learn the latest in web application design especially as it relates to UI.  This was vital since I've never really drilled down into UI design and how it should interact with data. You can actually see me starting the learning process back here on August 26th.  It was pretty clear (at that point in time) that Model View Presenter (MVP) was the predominant leader in UI design for ASP.NET based web applications.

Yesterday, I presented my two months of learning about the "best way to design web applications" to my team in an hour+ meeting. The functionality for the digital locker is basically complete and we are into integration testing so I had plenty of code to reference throughout the presentation. Unfortunately, I don't feel comfortable sharing the code with the outside world so instead, I'm going to share the links that I found most useful to learn about MVP and how to use it in ASP.NET based web applications.

Phil Haack had two great blog posts that where at exactly the right level of complexity when I first started.

At the same time I was reading through Phil's comments, I was looking for more detailed information. Billy McCafferty showed up a number of times and these two links where referenced much as I tried to be understand the minutiae of MVP.

While I was creating my presentation for yesterday I found the following blog entry. I so wish I had found this earlier.

Those top four links made up the bulk of my reading and re-reading over and over. The following links were stuff I kept being looped back to so reading them is encouraged but I liked the way the information was presented above far better.

Now, on October 14th Scott Guthrie announced a new MVC framework for AS.NET. I am extremely excited about what they are doing here because when I first started reading about UI design in ASP.NET it was clear that the "state of the art" was being kinda' kludged into the ASP.NET Page/PostBack system. There were moments when I wondered what it would take to move the digital locker to Ruby on Rails. <smile/>  MVP ended up working out just fine but it is great to see ASP.NET adapting to support MVC and TDD more natively.

Anyway, we have a decent infrastructure in place now. When the ASP.NET MVC Framework is finally released I'll have a hard decision to make about what to do with our existing architecture. In the meantime, there is plenty of work to do and I'm now in position to pursue 95% code coverage with my unit tests (something that was completely impossible before).

 


Before