Furthermore, the designs of some other Internet sites makes me wonder what planet the developers came from. I’ve visited some major corporations’ sites that gave me no clue what to select from the home page to get to where I wanted to go. Same thing with shopping sites. Several times, I’ve abandoned my attempt to purchase something online because either the software didn’t work or it was not apparent what I needed to do.
Recently, I spoke with an IS developer I respect, and he asserted that a very small team of developers could quickly produce the extensive Internet application we were discussing. I questioned why he thought it would be so easy. His response was something like, “HTML is easy; the rest must be as well.”
We in IS have spent decades working on methodologies and techniques to develop good software and infrastructure that solve problems for people and help our businesses make more money.
The first tenet of many of these methodologies is to gather requirements. Not every idea for the next great Internet whizbang is practical. Remember “push” technology? PointCast was going to be the way we received all our information until someone realized that it virtually buried networks with traffic and that users quickly tired of the advertising. How much time was spent determining what real usefulness this idea had and what users needed from it?
The next tenet of a methodology is good design. Poorly designed sites abound. What if you put up an online shopping facility and no one buys anything? I suspect there
are lots of examples of that on the Internet. Is the problem marketing? Is it prices? Maybe it’s the strong competition. Maybe the site design makes it difficult to figure out how to check out. Maybe the reason is a lack of interaction with the customer. Some sites I’ve shopped at continually send emails regarding the status of my order. Others send none. I no longer shop at the sites that send none.
Then, there’s development—lots of good ways to do it, many more bad ways. Is the software modular, well-documented, and reasonable to maintain and troubleshoot? In my experience, it doesn’t matter what the language or tool is, you can develop badly in all of them. Java may be great, but 200,000 lines of Java are still 200,000 lines of code with the potential to go wrong. Quickly developed projects are often the most poorly developed.
Of course, there is testing. The Schwab and eBay outages can probably be traced to inadequate testing. But can you really test for 100,000 concurrent users? You must ensure that your system can perform correctly no matter what the parameters.
So what has changed? Internet time is compressed, right? You better have your application out there next week, or the competition is going to eat you alive. But before you commit to that urgency, consider the consequences of doing the job poorly. Internet applications can be very large and complex and, as such, are no easier (or faster) to develop than the last business system you did in RPG. A short time to market can be achieved but must be done using the resources of people and tools, not by skipping large parts of the process.
Nothing has really changed. Good application development requires that you ask people what they want, translate that to well-developed software, and test the heck out of it. Make sure everyone involved realizes that this stuff is difficult to do well and that there are consequences for doing it poorly.
LATEST COMMENTS
MC Press Online