I had been looking at MS LightSwitch as a modern application creation tool thinking it might be a better solution than using previous tools such as MS Access. By the way, I still think Access has its place in the world. Back to LightSwitch. One of the reasons I was looking at it in a more positive way was the fact that it builds applications with different layers, having a separation of concerns. The thought was that a department could build a basic tool. Then, when it outgrew the capabilities of the department people to maintain, IT could take the code generated by LightSwitch, and with less effort be able to convert it into an enterprise application.
Here were the issues we identified when using department application development tools that grew beyond the small number of users…
- Poor performance
- Dirty Data
- Corrupted Data
- Application Failure
- Blocking, Locking, Deadlocking, Server rejection
Using LightSwitch a number of these issues would be less likely, or possibly gone altogether. There are two issues that even a new tool does not address, at least not in every situation. The problems of Poor performance, Dirty Data, and Corrupted Data still have the potential to occur. The reason is that there are a number of choices you have when you define your database structure that impact how the data is created, maintained, and consumed.
So, unless you are using boiler plated data structures, the typical engineer, scientist, bean counter, or just smart guy, usually does not take the time, or have a background in good database design. Frankly, I still find that a good database design takes a few iterations to really tune for an application. Sometimes you end up with more than one design because of different application needs.
So, from what I have experienced, even a tool like LightSwitch doesn’t address key issues, all resulting from bad database design. That doesn’t mean we can’t continue to find turn-key development tools. I think that the focus in that arena needs to turn towards helping people better understand how to tie together data models representing their business in a more user friendly way. I’m not sure what that would look like.
Perhaps the better effort will be spent helping IT create new applications more efficiently.