BurkeBytes

Changes for me here at Microsoft

Whidbey was a long road, which came directly after the long road that was VS2003/.NET 1.1, which came directly after the longer road that was VS7.0/.NET 1.0. Three products in 7 years (that's not very many). And while running Windows Forms definitely had it's share of upsides, it came with a fair amout of overhead too (see this post for some details). One of the tough things about Windows Forms is that not only did you have to be compatible with your old versions, but you had to be compatible with behaviors...

It's finally done - Whidbey goes RTM

After three and a half years of living and breathing "Whidbey", VS 2005 and the .NET Framework 2.0 have finally, officially, leeegitly, shipped. The Framework should be available for download via the MSDN download center sometime today.

The coolest hotel in the world

There was a bit of a scheduling snafu so we ended up at The Standard Hotel in Hollywood. It's a very trendy but minimalist place on the Sunset Strip. Actually it's one of those places that reinforces the idea that no matter how hip you think you are, well, you're not. For example, when you walk into the lobby in the evening, there is a plexiglass box/room/area up behind the reception desk. Think of the aquarium you see in many places, except instead of fish and coral there's a young woman sitting...

PDC in LA

Well here I am again, PDC, in LA (again - I've been to more shows in LA than anywhere else). PDCs are my favorite show because all the attendees are developers. TechEd is a mix of devs and IT people, many of which speak a completely different dialect of geek-speek than I. If you're having problems getting your MOM system to talk to your Sharepoint via SQL over the domain controller registered on AD, man, I haven't a clue what to tell you. So PDC is better. This is the fourth show...

You want whitepapers, huh? Tell me about it!

One of the things I've been planning is to have my kick-ass dev team deliver a set of kick-ass whitepapers about Whidbey. Our doc people have really worked hard to deliver a much-improved set of documentation but there's lots of areas where even more technical detail can't hurt. Soooo if you have areas that you'd like some more of this detail, let me know by leaving a comment with your idea and we'll make sure we add it to the list of candidates. ...

Wrapping up Whidbey

Well here we are - in the last strides of the marathon product formerly known as Whidbey. Next week, the plan is to go into "Escrow" which means the bar goes way high and we give some the product some "bake-time" to make sure we've got all real nastiness out of there, and it gives a set of our customers to sign-off on it as well. We're still getting a trickle of bugs but we are seeing the "must-fix" ones slow, which is data that says we're getting there....

Shippin' Ain't Easy

I think back to my first few years as a software developer, happy to lock myself in my office and bang out code until 2 or 3am on a regular basis. No feature was too big, and no bug fix too small. I thought of things purely in the context of how long it would take me to fix the issue. I didn't think about the QA cost to verify it (I knew I wasn't going to break anything, honest!), or the cost to doc it or whatever. ...

Geeking over Google Earth

Google Earth is pretty freaking cool. There's other places to get satellite imagery but Google Earth wraps it into a package that has pretty much endless possibilities. I downloaded it last weekend just to see what all the fuss was about, and realized that I could use it to measure distances. A bunch of us from work swim one night a week in Lake Washington and we've always had to guess the distances between two docks that we do laps between at about 50y. I fired up Google Earth, found some football...

Finally - the light at the end of the tunnel

My team kicks ass. Last Friday they got to ZBB (Zero Bug Bounce) two weeks ahead of schedule. Amazing work. And it's a good thing too - the weather flipped the "summer switch" here in Seattle over the weekend. It's about 80 out there right now! So from now until RTM, the dev team will be focusing on a few things: 1) Staying on top of bugs to keep us as close to ship-quality...

Post-mortems

If you're not familiar with them "post-mortems" are meetings where you go over a project or something and think about the good, the bad, and the ugly. The idea is to try to make changes to fix the things that didn't go well. Anyway, I find it ironic that post-mortems generally make me want to kill myself. They're just not that fun.

A peek inside shiproom, emphasis on 'peek'

eWeek has an article about Whidbey Shiproom (we usually call it 'Tactics' internally) that offers a peek inside the process that the division goes through when locking down and shipping. It really is a peek, too. I was disappointed to see that it was only the 2 paragraphs of the 3 page article that had anything to do with Tactics and the rest of it goes off and talks about SQL CLR in Yukon. Which is cool and all, but doesn't have much to do with Tactics...

Stress and the Mythical Man Month as it relates to Beta 2

So our VP Soma blogged a bit about why Beta 2 missed March, which is cool. I thought I'd give a little more detail about how the last few weeks went down. One thing we've learned is that the division as a whole can't make progress on stress when there is other churn going on in the tree. For Windows Forms, our stress tests do things like create and destroy forms on 10 threads over and over again for days on end. These tests expose all kinds of things. Windows Forms bugs, weird timing cases, CLR bugs, and sometimes Windows...

Questions about multiple threads and AppDomains in Windows Forms

There's a set of questions that come up on a regular basis from customers concerning mechanisms to partition Windows Forms applications in one way or another. We tend to get them in three basic flavors: 1) I want to improve performance by having each of my child forms/MDI child forms/UserControls running in a different thread 2) I want to improve robustness by having each of my forms in a different AppDomain ...

Performance Week on the Windows Forms Team

We recently took a break from normal bug fixing to focus on peformance issues in Windows Forms. Of course, we track and work on performance all the time (I have a full-time developer exclusively dedicated to performance issues) but you can get some real value by focusing people on it specifically for some amount of time. I actually had a few goals for this: 1) Help re-train the developers on some of the new tools and techniques for diagnosing and resoving performance isues ...

Checking out EclipseCon

I'm down in San Francisco at EclipseCon this week, and the first full day of the show is just wrapping up. I've been mostly tracking the RCP stuff. It's very different than a Microsoft show. For me the big difference that this is the first time I've attended a tradeshow. I've been to 10 or 12 TechEd's, PDCs, and whatnot, but I've always been a presenter, so now I guess I'm getting the other side of it, not only in role but in content. ...

Dot those i's and cross those t's

We're now in full fledged ship mode trying to get Beta 2 wrapped up. The part of the process we're in now (across the Division) is called "ask mode", which I've mentioned in prior posts. Basically as you move through ask mode you slowly rachet up the bar on which bug fixes you'll take. Early on there is a set of things that you'll take based on a pre-defined bar. Things like accessibility fixes, scenario blockers, performance regressions, etc. As time goes on you continue to consider those things but only if...

Looking for two great developers

Got passion for .NET, creating great tools, and building great client applications? How would you like to help define the future of client development? I've got two positions open on my team, click here to check them out (there are two identical postings out there, so just use this one). If you've got a few years of industry experience (I'm thinking 4+) and believe you are an Unstoppable Coding Machine, submit a resume to the link above and we'll see what you've got. Prior experience with C# and the Win32 API is highly preferred but as...

Wrapping up the 'Shipping Source' Discussion

Wow, thanks so much to each of you that left comments for my last post! Very helpful, and there are some really good ideas in there. Just to wrap up and respond to a few things: The comments need to be scrubbed not because I know there is anything bad in there (I don't think there really is), it's that I can't be sure that there isn't. So getting rid of them completely is a brute-force approach...

Shipping Windows Forms Source for .NET Framework 2.0 (Thanks for your comments!)

I want to deliver Windows Forms source code to you. I've wanted to do it for years and I'm putting together a plan to make it happen. There are a set of issues here, and let me tell you that not everyone here is a big fan of it. But I think I can do it (other teams are trying as well). Now, this is not the MFC model where you'll be able to build it, etc. We're talking about just...

Notes on "The Designer Ate My Form!" Problem

I've just noticed a couple of posts about issues in the designer where controls lose their position or disappear completely. As book author Matthew Adams cleverly points out, this phenomenon is excessively difficult to reproduce but unfortunately happens all to frequently. We heard about and read about this problem many times since Visual Studio shipped. Unfortunately, until we had some sort of a relatively-consistant repro, we couldn't do anything about it. The designer is very complex and is a mixture of .NET Framework, Visual...

Community bug reporting: six months later

Just a quick update on how we're dealing with taking bugs straight from customers via MSDN Feedback. We definitely were concerned about the impact this was going to have, time wise. We had to do some adjusting and hire a contractor to help us work through the bugs. At the very beginning we were getting a couple hundred issues a week. Just the time it takes to sort through those, make sure they are "well-formed" bug reports, not duplicates of existing bugs, etc. was at least a full time person. So for...

The Redmond Campus Ghost Town

It amazes me every year. Yesterday, the hallways were busy, parking lot was pretty full. Today, not so much. Monday I'll bet there will be about 1/3 of the normal staffing, if that. 'Course I'll never know since I won't be here either!

Testing Windows Forms (or, code road from dev to test)

As we near the end of a product cycle QA (Quality Assurance or just 'Test') picks up the reigns and drives the product home. It's their job to give the thumbs up or thumbs down of when we're ready to ship. But the way that dev interacts with test is an interative process and there are many points where we test the product. That said, it's my opinion that we've got a long way to go on this one, and I'm not alone....

The road to shipping (Beta 2 in this case)

Alex asked a good queston on my previous post: what are the dev teams doing between now and Beta 2 ship? I wasn't really clear on that. After you hit ZBB, you're not done. ZBB is a moment in time, and you'll still get bugs after that. Remember that Developer Division is made up of lots of different teams, all of whom have to get finished at about the same time since we all ship together. So as we approach the end of a milestone, be it Beta 2 or the final...

Windows Forms Whidbey Status

Okay it's been a while but here's an update with where we're at with Whidbey on the dev side. A few weeks ago we passed ZBB for Beta 2. What's ZBB you say? Well I'm glad you asked. Basically, you need to drive the product to a "known" state at intervals throughout the cycle or you'll never get it shipped. So before each major milestone, the whole division drives towards Zero Bug Bounce, on a per-team basis. ZBB for a team is when that team has...

Microsoft Review Process 101

So a couple people asked for this so I thought I'd summarize the process of how reviews in general work here at MS, plus some specifics about how we handle software developers. First off, evaluating software engineers relative to each other is a bit tough to do purely objectively. Most of this is our own doing, because of the way software development has often been done over the last 20 years. Deriving metrics for large, complex projects can be difficult. You'd like to say "well,...

Review Time at MS

Summers are Annual Review time around here. It's a ton of work for everyone, and the higher up the management chain you are, the more work it is. It's like the worlds worst pyramid scheme. If anyone cares to have a quick overview on how the whole review process works around here, let me know and I'll post it.

Other people seem to like this Smart Client thing too

I think Klaus a bit harsh on ASP.NET (their stuff rocks), but I totally agree that web has been over used over the last few years for purely deployment reasons. But given the state of client app deployment and impactfulness, it's not an unreasonable thing to have happened. But we're getting there with ClickOnce, and it's really a huge step forward. Doesn't solve world hunger quite yet, but it's going to work great for most people. Anyway, it's a good read.

What's code coverage?

So this is kind of cool. I didn't know this was happening but we've released a special Code Coverage version of the .NET Framework 2.0. We have tools here that measure code coverage. Given a current scenario, what percentage of the code in a given assembly is touched by that scenario. It's primarily used by QA teams to judge their test automation to see how much of the product it's exercising. And we're looking at more ways of using...

The hardest time of the product cycle

So here we are. We've shipped Beta 1. We've shipped a couple of Customer Technical Previews (sometimes called "Community Drops"). And we've started to refocus on the next goal, which is Beta 2, and the real goal of shipping Whidbey (Visual Studio 2005/.NET Framework 2.0). At this point it becomes a bit of a numbers game. You've got a bunch of data about your development team's productivity during different parts of the cycle. You've got more data abotu how many...

Express Yourself

So you really want to take a look at the new Visual Studio 2005 and Windows Forms 2.0 features but aren't on the beta list? Looking for a way to have the power of VS at home for that little side project you've been wanting to do but don't want to spend a fortune for it? Well, check out the new VB 2005 Express or Visual C# 2005 Express betas available now for download. That's right, public download. The Express versions are...

Buggin' Out

As many you may have heard, we've opened an online bug-tracking interface that allows customers to enter and track bugs. The codename for this project internally has been "Ladybug". It has been an interesting experiece so far. There has been a decent amount of hand-wringing about Ladybug around the halls of Developer Division. See, before I worked at Microsoft I assumed they just had enough money and resources to overcome any situation. Well, it turns out that just like any other company, we have to make do...

Okay, I'm going to try this again.

Alright, I'm going to try to recommit myself to actually adding some value to blogland. We'll see how it goes. In case you don't otherwise know, I'm the Development Manager for the .NET Client Team at Microsoft. I'm blessed to work have such a kick-ass team, with people like Brian, JFo, Soak, Ben, Julien, and Raghav. We own Windows Forms and the Windows Forms Designer in VS.Net as well as some of the plumbing other designers use. ...

Quality, Servicing, and Customers

Things have changed a bunch at MS since I started here...6 years ago monday. Some good, some bad. One of the good things that's happened is that we've spent more time interfacing with customers. Our products have obviously been successful and we've used customer feedback to get there but it hasn't been a tight loop and MS has always looked like this big black box to the outside world. We've been working hard to change that by spending more time...