Visual Studio LightSwitch hits the market, but misses its markets

Visual Studio LightSwitch 2011, Microsoft's new development tool designed for rapid application development (RAD) of line-of-business (LOB) software, has gone on sale, after being released to MSDN subscribers on Tuesday. Priced at $299, the product provides a constrained environment that's purpose-built for producing form-driven, database-backed applications. The applications themselves use Silverlight, for easy deployment on both PCs and Macs, or Azure, Microsoft's cloud service.

This is an important, albeit desperately unsexy, application category. For many organizations, these applications are essential to the everyday running of the company. These programs tend to be written in applications like Access, Excel, FoxPro, and FileMaker—with even Word macros far from unheard of—and typically by people with only rudimentary knowledge of software development—instead being developed either by people who know the business, or perhaps someone from the IT department.

As these programs become bigger and more integrated into a company's operations, it's common for professional developers to then be brought in to make them robust and maintainable. A fairly standard migration route is to go from, say, Access, to SQL Server and ASP.NET. But this migration is often a process fraught with difficulty, as the applications themselves are usually a mess of spaghetti code and bad design. Worse, it's not unusual for this migration to only be undertaken after whoever originally wrote the application has left the company, meaning that the only person who really knows how the thing works isn't around to talk to. Been there, done that, bought the T-shirt.

There's definitely a need for better tools in this area. Custom programs written by nondevelopers are never going away, and nor should they: for all their ills, they're one of the most significant ways in which computers have enriched the corporate world. Making those programs better—more reliable, easier to turn into "proper" software written by "proper" developers, easier to maintain by people new to the software—is a laudable goal.

LightSwitch is designed for this very task. Unlike a professional developer tool like Visual Studio, LightSwitch is constrained. It has a particular opinion of how software should be structured, how databases should be built, and how forms should be organized, taking many of the decisions out of the hands of the programmer. While this means that the programs it produces will never win any awards for visual design, it also means that they're never going to be too hideous, and more importantly, that they're always going to work in the same fundamental way. If and when professional developers are drafted in to work on the application, they won't be given some Heath Robinson contraption to reverse engineer, but rather a simple, structured piece of software.

As someone who has had to work with these programs professionally, then, I welcome LightSwitch, or at least the concept of LightSwitch, with open arms. It's not going to solve every problem out there, but at the very least, it's encouraging that Microsoft is working in this area. The company describes it as a "simplified self-service development tool that enables you to build business applications quickly and easily for the desktop and cloud," which sounds promising. The company even goes so far as to boast that it's "coding optional" and that you don't need to be a developer to use it.

What's harder to understand is the way Microsoft has positioned it. Tools like this need to be aimed, first and foremost, at non-developers, and they need to be deployable without IT department involvement. This may horrify developers and IT administrators, but that's the flexibility that Excel and Access give today. Using Excel and Access is the path of least resistance: you don't need to get IT to authorize a new program and you don't need to get sign-off to hire a developer: you just hack something together and use it. They allow users to serve themselves. To be useful for this kind of software, LightSwitch needs to be directly usable by end-users.

But various decisions that Microsoft has made run counter to that goal. The ability to target the Web and Azure, for example, is problematic. End-users just don't get to do that kind of thing in most organizations. Getting an application running on a server—or a cloud server with a paid monthly fee—poses a high hurdle when the application in question is a quick-and-dirty custom program thrown together by a team member in their spare time. Ironically, when technology writer Tim Anderson gave it a spin, he found that deployment onto servers and databases was one of the strongest parts of the application. Compared to some of the deployment processes in "professional" development tools, it certainly sounds promising.

But compared to "deploying" a nice, neat, self-contained Access MDB on a fileserver and passing a link to it around in e-mail? LightSwitch is far too complex. Sure, anyone who's had experience with that kind of solution will know all about the problems of multiuser access in that kind of scenario. But it works, more or less, and it's brain-dead simple—and that's the benchmark. LightSwitch deployment is really streamlined for a development tool, but still much harder than genuine "self-service" tools, tools which don't really require any deployment at all.

The naming is also a big problem. "Visual Studio LightSwitch 2011." It's a kind of Visual Studio, and Visual Studio is for developers. Prominently featured on its product page is a comparison with Visual Studio Professional—a comparison that's meaningful to programmers but irrelevant to business users. The product is included in MSDN subscriptions—indeed, it was made available to MSDN subscribers before it was available to buy standalone—again reinforcing this developer-oriented view. This means that the end-users who actually want to create self-service applications will never even get the software in the first place! Calling it just plain LightSwitch and retrospectively adding it as a component of Office Professional, say, would be much more appropriate to the kinds of usage scenarios that Microsoft claims the product should be used for.

And what of "real" developers? Having a tool to quickly bang out CRUD applications is certainly useful, so there's certainly a role to play in that area too. But real developers will likely grow frustrated by the incomplete documentation, the lack of a real forms designer, the entire "coding optional" approach, the dependence exclusively on LINQ with no SQL. To be a really good developer-oriented RAD tool, LightSwitch probably needs to give developers a bit more access to what's going on under the hood, and a bit more flexibility to deviate from the product's rules and regulations.

I don't think these goals are even necessarily mutually exclusive. There is a lot of overlap in the kinds of application actually being built, and similar approaches make sense. It's just at the moment, the product seems to be not quite one thing or the other.

Visual Studio LightSwitch is a project that needs to exist, and I hope Microsoft perseveres with it. There's a genuine market need for a product like this, and Microsoft's ambitions—application development by nondevelopers—are the right ones to have. The regimented approach to database and user interface design is probably the right one to have too, though it may need a little refinement. But to really fill that role, I think Microsoft needs to reconsider the way it's branding and selling the product, and needs to take another look at the benefits that existing tools used for this kind of development have to offer.