The Bottleneck in Modern Software Projects
Windows DNA (as well as the recently announced .NET), and component based development in general, are fascinating approaches to application development. They provide great flexibility, scalability and freedom of distribution. Unfortunately, there has been a substantial delay in the widespread implementation of DNA applications. Surprisingly, the responsibility for this delay seems to lie with developers...
In the last issue, I talked about the importance of a modern development approach. We currently have fascinating development environments at our disposal. Today, the ability to develop distributed, scalable applications in record time is truly astounding. Unfortunately, it isn't trivial to incorporate this fascinating technology into large-scale projects. However, this isn't unlike previous leaps in technology and, more importantly, in methodology. The difference this time is the attitude of many of today's developers.
Due to my strong Visual FoxPro background, I have witnessed several of these leaps firsthand. The first occurred when FoxPro for DOS made the change from plain character-based interfaces to windows-driven interfaces (even though it was running in a DOS environment). The next leap occurred with FoxPro 2.6 for Windows, one of the first high-level development environments for Windows. But these leaps looked like tiny steps when Visual FoxPro 3.0 was released. True object-oriented programming made everything else look old-fashioned. In addition, the whole methodology of object-based development paired with relational databases wasn't easy to grasp.
However, many developers made those leaps quite easily. They certainly didn't do it overnight, but most developers were very eager to use the new technology. I remember the first Visual FoxPro DevCon (1995 in San Diego). Attendees were excited about the soon-to-be-released new version of FoxPro ? so excited, in fact, that they cheered and gave standing ovations.
The more recent revolutions, however, have been met with very different reactions. I remember Microsoft's first announcement of Transaction Server (it's hard to believe this was several years ago). People were not very excited then. In fact, Microsoft repeated the topic in a special bonus session to further explain, still with little audience response.
I'm not entirely sure why this is. I assume it has to do with today's developer community. Most publicly visible opinions are formed in the mass of one-person shops, trainers, authors and small to mid-sized software companies - making up an enormous group of developers who are typically very active in online communities.
The majority of this group does not live in large-scale enterprise environments, which currently drive the development of most tools and technologies.
Enterprise customers need distributed, low-maintenance, high-flexibility and high-reliability applications
- attributes that are useful in every organization, but were once too expensive for most.
However, most developers in the first and highly visible group don't seem to see those needs. Sure, high reliability and flexibility are nice, but many developers are confident that a monolithic application can provide just that. Distributed applications sound cool, but will their clients really need those? And besides, why give up a monolithic development approach in a familiar environment? This is an issue that is often more religious than based on reason.
Let's face it: The times of long-awaited features for the masses of developers are over! We eagerly awaited the ability to port our applications to Windows. We were eager to put grids on forms or use ActiveX controls. But who was waiting for Transaction Server or MSMQ? Only those who were pushing the edge - a group that surely can't be considered "the mass of developers."
What's interesting to see is the reaction of potential clients to software development. How eager were clients to install Windows to run an accounting package? Speaking out of my own (not necessarily representative) experience, they were not as excited about little icons and fancy grids as we developers were. Nor did they care about fancy object-oriented programming. Lately, however, the pendulum seems to be swinging in the other direction. Despite the relatively slow move to component-based, distributed development by developers, customers seem to be very excited about the new possibilities. Furthermore, this isn't limited to enterprise customers. In fact, at EPS we have more small companies (with 10 or fewer employees) inquiring about our services than ever. These are small companies that are trying to outperform larger players by using high-tech solutions.
The problem with all of this is the gap that is developing. One of our largest customers asked me recently to assemble a list of 40 people who understand Windows DNA, SQL Server, Visual FoxPro, XML, and Distributed Applications. Sadly, I have not been able to complete this task successfully.
In my last column, I stated that I was very excited about the current state of technology and about the things that are coming in the near future. This time, I urge you to take a serious look at these fascinating technologies. Hopefully, I'll soon be as excited about the number of new DNA developers as I am about the technology itself!