If you have been following this series then you are probably raring to open VS and get coding. I mean, c’mon, we are developers here and that’s what we do, right? Well, yes – eventually. But one last thing before we start that. We need to take a more comprehensive look at new features in Windows 7 and then think about how to apply those features to a particular business problem. For the purposes of this series, I am going to code an application that is designed to solve a real-world problem.
Most software is, of course, built in a multi-person environment. Having some kind of software development lifecycle process (and tools) is really critical to success, particularly as team size increases. It goes without saying that developing on a new platform is risky. As background I am actually a certified MSF trainer and have worked with a number of SDLs in practice – everything from CMMI to Agile. Tooling to support your chosen SDL is important as well. As some of my regular reader may know, I have volunteered for many years on an electronic medical system project being deployed nationally in Zambia – about 4 years our volunteer team procured Visual Studio Team System and I can say without question that the tooling in combination with the adoption of a SDL has improved the outcome of the development process.
Of course for this blog it’s just me coding so all this talk of SDLs and tooling might seem extraneous. I do feel it’s important to reiterate it here though. Using proven methods and tools reduces risk and improves project outcomes – it’s not something to skip in the real world. Since we are talking about the real world, do you have any idea of the failure rate of software projects? Failure is defined as both producing nothing or producing something that is not scope complete and/or is over budget. Given these parameters, the failure rate is an astounding 75%. Think about it, think hard. Would that be acceptable in any other industry? Promise me that you’ll select and use a SDL and quality tools BEFORE you start developing mission critical application on Windows 7.
To that end in our process, we’ll next take a more comprehensive look at new features in Windows 7. I am going to list features and briefly describe them here. I will post published whitepapers with more detail on each feature to one of my SkyDrive folder and link them here, so if you are interested in drilling down on a particular new feature, you can start with that whitepaper. Another good place to do to get an understand of new Windows 7 feature for developers are the videos on MSDN Channel 9 – go here. I’ll list “Lynn’s top 10” new Windows 7 features in the order that I like them (it is my blog after all).
1) Touch-enabled applications – single touch, single gesture or multi-touch, also inertia detection – for inspiration grab the just-released Windows 7 Touch pack – here. 2) Sensor-aware applications – probably the most popular is the low light detector, there are endless possibilities though 3) Handwriting recognition with custom dictionaries – also Math recognition 4) Power usage monitoring and management 5) OS UI enhancements - Jumplists, ‘scenic’ (Office) ribbon, enhanced taskbar and gadgets 6) File management enhancements - Libraries, file (type) visualizations 7) Improved graphics – improved animation framework, High DPI support, high fidelity graphics with DirectX (via GPU manipulation) 8) Federated Search – including integration with OpenSearch 9) Device experience platform and improved biometric framework 10) Improved media platform – new formats, new devices and simpler programming
So what is my business scenario? What application will I build and why will I build it on Windows 7?
As some of you may know I work on many Women in Technology programs at Microsoft. One that is particularly near and dear to me is WomenBuild. It’s a new type of networking event for both men and women who wish to work on the problem of too few women in technology. Currently there is a painfully manual process that is part of WomenBuild and I am thinking that a Windows 7 application might be just the thing to take Women Build to the next level.
Here’s the business problem in plain English: WomenBuild currently uses manual (on paper) recording of attendee feedback after each round of building a model with LEGO bricks to represent his/her story in answer to the question being asked. This cumbersome process is inefficient and results in overhead, lack of feedback / post event follow up and is a general bottleneck.
Here’s the solution concept: Create a Windows 7 multi-touch application that allows WomenBuild participants to take photos of their models and to zoom in to highlight key areas of those models. Allow cropped models to be annotated with drawings and or text via touch. Allow verbal and/or text annotations as well. Capture all information to a relational database. Allow badge scanning to identify participants. Windows 7 features to be used – multi-touch, sensors (badge scanning), handwriting recognition, (possibly) custom library and file visualization (i.e. picture of model and caption). Oh, this isn’t a Windows 7 thing, but I do plan to use the new geospatial data types in SQL Server 2008 (yes, they are included as part of SQL Server Express). I am not really sure how I will capture and/or visualize those results, but I do think they will add business value, i.e. ‘WomenBuild participants in region A think x, y, z; while in region B, they think g, h, i.
That’s what I am going to build for Windows 7. What are you going to build? I’d be interested to hear more, comment via this blog or via the facebook group ‘Windows 7 Developers’.