Wednesday 29 November 2006

Is the web killing software engineering?

I so love desktop applications, so rock solid and they do exactly what you want them to do. I have the totally opposite opinion of the web interface, having to click submit before a refresh of the page can occur seems so clunky me. Lucky so-called web 2.0 may fix my dislike towards the web, as it should offer real time updates using technologies such as Ajax. But I have deeper concerns of what developing for the web is doing to the definition of software engineering. As in any engineering there is a life cycle of the processes you have to do to go from start to end, or in most cases start to recurring support. When you build a house you have an architect who in software are the people who prepare the requirements, analysis and design documents. You also have the builders who in software are the programmers. If you build a shed without an architect you maybe able to just use the builders to construct a simple design and go onto build the shed. In majority of cases this happens in web development that on the whole works fine. My issue with this isn't what you would initially think, with the builder doing the work of many people and the possibility for that shed will fall down. No, my issue is that the team who are building sheds for the living get out of the development routine that would be required to build a grand hotel.
There is no doubt in my eyes that web development can become enormous but being realistic not every web developer is working on big projects and the majority are working on relevantly small ones. Now the trouble with techies, including myself is that we like to investigate and learn other technologies. This is meaning that true desktop application developers are cross-pollinating with web developers resulting in mixed disciplines of software development. This doesn't cause too many problems on the web side, the only issue maybe the projects are over engineered and run behind schedule. On the desktop application side is another story. Few applications I used on a day-to-day base aren't from one of the major software houses. Applications that I use that aren't from one of the big boys I would have a major issue with somewhere. The big software houses such as Microsoft enforce industry standard software techniques, which I believe is why I have no big issue with their applications. Where smaller developers applications' I believe, which I cannot directly prove, that the reason I have issues with their applications is because these developers come from the age where the ease of creation and deployment of web sites is predominate and this has eroded away the true software engineering discipline. This discipline is a main ingredient to good software and without it we see a future of inadequate software.