When Microsoft LightSwitch Beta 1 first came out there was a huge uproar from the development community. People were angry for various reasons; some thought that it would lead to non-developers “stealing our jobs”, while others were sure that it would lead to a flood of poorly architected applications whose very existence was bound to cause offense to any respectable developer.
The recent release of LightSwitch Beta 2 has thrown the product back into the limelight, although the exposure is accompanied by mixed marketing messages around exactly who the product is targeted at. Microsoft are in the middle of a marketing campaign trying to convince the community that LightSwitch is a tool for end users to crank out forms over data applications (we even had the always friendly Andrew Coates over here in sunny Perth to put forward that very view), but as Tim Anderson points out, the product somewhat misses that mark. Tim prefers to liken LightSwitch to a modern day FoxPro or Visual Basic, but I prefer to see it in a slightly different light.
The real potential with frameworks and tools such as LightSwitch is not to enable the end user to create applications; the very fact that IT need to be involved to deploy the application puts a stop to that. Also, it doesn’t replace VB or FoxPro, both of which allow the developers a large degree of freedom and potentially allow them to run up a fairly large development bill. No, the potential is to turn the $100k internal IT project into a $10k project with repeatable results and reduced risk. This will hopefully result in IT being able to help the users who currently turn to Access and Excel for their data capture needs after being turned away by IT due to lack of funds or resources.
Think of the number of projects that get created by internal IT shops that go through full architecture and design phase, most of the time by people who haven’t really built an end to end application before, and in the end they just give CRUD access to some data. There are plenty of tools in the Microsoft space already that let us build cheap, CRUD-oriented apps including:
- ASP.Net Dynamic Data
- ASP.Net MVC Scaffolding
- SharePoint 2010
- Microsoft Dynamics CRM 2011
The problem is that, even with these tools and applications, someone still has to put effort into thinking about how the application is put together. How are we going to implement business rules? What patterns do we need to use? How will we persist data? Who’s going to sit with the end user while they create 3 months of work the customise the look and feel of an application that’s used by 3 people?
LightSwitch is different. For me it’s a piece of opinionated software much in the same way as SharePoint 2010’s Access Services feature. Developing an application in LightSwitch or Access Services involves very few architectural decisions, as most of the thought has been done for you. With LightSwitch you just pick a database and decide whether you want a thick client or web based application. It’s almost Paint By Numbers for enterprise software development.
It also takes the question of UI design out of the picture. Users can’t argue about button placement, font size and the amount of padding on a field simply because there is no direct editing of the UI in the product. LightSwitch generates the forms from a tree view representation of the data and allows you to apply a theme, but that’s pretty much the extent of it. To me this is one of the biggest selling points; adding UI design to a project is a fantastic way to kill a small IT project and would be counter-intuitive if the aim was to allow IT to assist more users.
You may think that this in some way “threatens the purity of software development”, but quite frankly who cares? The users asking for the applications are currently developing their own solutions using Excel, Access, SharePoint and various other technologies that allow them to get past IT red tape. Wouldn’t it be better to at least be able to bring them into the fold so the data can be backed up, the application can be supported and IT know what the application is for and how critical it is to the business?
I would love for LightSwitch to succeed in spite of the current marketing message from Microsoft. Backing the “user created applications” horse on a product that requires interaction with IT for deployment is the wrong idea; their other self-service application platforms such as SharePoint, Excel and Access have succeeded because they allow the user to bypass IT altogether. Still, I hold out hope that enough people understand the real potential of LightSwitch and other tools like it. The technology may not be there yet, but the idea of having a cheap, uniform approach to developing applications in an enterprise IT shop is one that’s filled with promise.