I have worked on a lot of software in the past 20+ years in the software business but I must say that nothing compares to working on Windows. My friends and associates outside windows often ask what I mean by that, and I have a hard time explaining. It isn't just that Windows is a huge software project with a jillion lines of code and dozens of languages. Windows has really gone beyond software - it is a kind of ecosystem with dozens of different interests, concerns, and agendas all interacting with one another.
Since that probably is a bit too abstract, I thought I would talk about one specific issue that we dealt with after the Beta went out the door. Hopefully you will find this an interesting glimpse into how a day in Windows is not like anything else out there.
Background
I'm sure everyone is familar with Minesweeper. This has been a classic Windows application, and has been in Windows forever, largely unchanged from the Windows 3 version.
For Vista, we wanted to give the in-box games a make-over. After all, the inbox games are the most common used programs in Windows! The main desire was to modernize the user interface, improve the graphics and make them more accessible by allowing the user to resize the game board. Check out the new look:
For Minesweeper we also thought it would be a good time to address another issue specific to the game concept - the use of mines.
Mines are Bad
There have always been a small but persistent group of users who disliked minesweeper as a concept because they felt it trivialized the problem of land mines. For those of us living in North America, land mines are an abstract entity that you really only see in a movie, but in many parts of the world people are killed or maimed by mines on a daily basis. Over the years, these users have repeatedly asked us to either remove minesweeper or change the concept from landmines to something a little less obnoxious.
One of the realities of making something with the reach of Windows is that it is almost impossible not to offend someone somewhere with anything you do. (you would not believe how difficult it is to create default user tiles or desktop background images that are inoffensive to EVERYONE ON EARTH.) We do our best, but we also accept that we can't please all of the people all of the time.
In the minesweeper case, since we were doing a re-write anyway, we thought it would a good time to address these concerns. We added a preference that allows users to change it from looking for mines in a minefield to looking for flowers in a flower field. Now, personally I am not a fan of using flowers here - I mean, you WANT to find flowers, right? - but this was an established alternative in the market and none of the other ideas we had (dog poo? penguins?) could pass the legal/geopolitcs/trademark/etc. hurdles. Here is the new options dialog:
So - in most pieces of software we would be done now, but with Windows we are just getting started.
Whenever we add an option to part of Windows, we also have to think about how that option will be managed. Is it per user or per machine? Can the network administrator set this via group policy? etc.
Once that was figured out, the next step is trying to determine the correct default setting. After much discussion,we decided that the default should be based on locale. So if you install in North America you get the mines, but in a mine-sensitive area the default would be the flowers. This of course meant that many lawyers and geopolitics folks had to go off and determine which countries should be on what list. There was a new test pass designed and implemented to make sure that this setting was working correctly.
By now it is summer-time, and we have passed the date at which the text in the UI is supposed to be frozen so that the localization teams can get to work on translating it all. This is when another issue arises: it turns out that the help for the game, as well as the game summary, all talks about mines, uncovering mines, and not blowing up. The technical writers are quickly engaged to figure out what the text should say.
Testing revealed another issue: If we default to flowers, does it really make sense to call the program "Minesweeper" and have a giant mine for an icon?
The system really doesn't have easy support for changing the name and icon for localization. We would put in icon-switching code but that it would break general localization. We would fix loc and it would break the icon swap, etc. There was also concern that if we changed the name, it might generate support calls from people who are asking where minesweeper went. Support cost is a very serious issue for us when we make any changes. We all know that Minesweeper is a very common application in the workplace (admit it!), and companies who are considering deploying new Windows releases are extremely concerned about the cost to their IT department.
Just when these their way through the system, another issue arose. It turns out that some countries were taking this even more seriously than we had initially considered. Merely changing the default was not sufficient - they didn't even want to have the *option* to switch to mines! This is really a large ask so late in the project. We would basically have to rewrite the game as well as the deployment logic. It was really too late for such a change, so we suggested that if mines were completely unacceptable than those countries should probably just remove minesweeper all together. So the various legal and geopolitics and localization people went off to discuss that one - whether it would be acceptabled, and if so which countries should pull it.
I am actually not sure how it ended up being resolved... But this blog seems to have an international audience, so maybe people can chime in and tell us what the program formerly known as minesweeper looks like in their country.
Conclusion
So - there it is. A little insight into the complexity of making seemingly simple UI changes in something like Windows. For many of us, dealing with these complexities is part of the fun of the job, and solving them gives great satisfaction. It is part of what makes Windows such a unique place to work!
I hope everyone enjoys the new, resizeable, "sweeper" program. And if when Vista finally comes out you see that it was renamed "Microsoft Windows Vista Logic-based Hidden Item Seeking Game 2006 with Skins!", you will know why.