Step into the light

/me walks forward, blinks a few times, and stares frightened at the large bright yellow ball in front of me.


What is that thing?  I feel like I've seen it before.  A long long time ago when life was simpler and we weren't under so much pressure.  It had a name... yes; something comforting and terrible at the same time.  Ah yes, the "Daystar", i remember now.


C# has come back into the light.  We've been spending the last few weeks "dark" so that we could really focus on the work that needed to get done to pull off a successful release.  We haven't hit ZB yet, but we're still working toward it.  There are probably others who can describe ZB better than me, but for me the idea is recognize all the issues that need to get fixed before you ship and to end up resolving them all satisfactorily.  Or, in other words, hitting Zero Bugs. 


Now, don’t think for a second that that means we actually have zero bugs in the product.  It just means we have zero issues that we would think would block us from being able to ship a good product on schedule.  One way to think about it is that the “bar” for bugs continues to get higher and higher and the bugs that we do have are all under that bar at ZB time.  So issues like crashes or data loss still must be fixed, but a colorization bug that occurs in a scenario that few customers would hit does not need to get fixed.  Also, a bug that seems simple to fix might be postponed because with any fix is the chance of regressions and we don’t want to fix something low priority only to end up causing something really bad to happen (especially if it’s only discovered after we ship).


So right now we’re treading carefully.  The fixes for most bugs get discussed in depth so that we can make the appropriate judgment about the benefits versus the risks of the change, and we often time go for a small localized fix with few consequences than an architectural change which we feel is the right “long term” solution, but wrong solution for shipping.


One of the unfortunate parts of this time is that it can get somewhat tedious.  You want to add new features or re-architect parts of the code; or worse, you start thinking about the next release and how cool it’s going to be and how you’re going to do everything correctly this time around.  The net effect?  You sway between tedium and distracted neither of which is conducive to writing good code.  Hopefully I’ll be able to stay on top of that though and we’ll get this second beta out to you and the release soon after that.  So far the feedback from the community has been fantastic, the customer reports and bugs have been incredibly helpful, and I think we’re going to turn out something really excellent!