Click to Play

Yahoo has high hopes for Panama
Today could be a major turning point in Yahoo’s history. Later today, the company will launch its new online advertising system, called Panama, for all of its ad clients.

Recent Articles


Implementing PICS and P3P in ASP.NET Headers
PICS (Platform for Internet Content Selection) and P3P (Platform for Privacy Preferences) are two really nice things to be aware of when developing web applications.

Integrating w/ (Future) Competition
Alex Fletcher has a nice list of hypothetical new year's resolutions for the open source community.

Software Test Automation and Strategy
Companies are turning to automated testing tools more often than ever before to ensure that their applications are working properly prior to deployment.

The Oddness (and Evenness) of Spry 1.4
Ok, I'm not sure if "evenness" is really a word, but if Steve Colbert can make stuff up - so can I. Before Spry 1.4, Spry supported a simple way to apply different CSS styles to datasets rows to support even/odd colors.

JavaScript: Alert.Show(”message”) from ASP.NET Code-behind
In highly interactive websites and intranet sites, you probably want to let the users know what's going on when they delete, save, export etc. on the site.

Working With Fractions In PHP
There are a few ways to display fractions in the web. The most common way is just to add a slash between 2 numbers, like so "1/2".

MySQL's Regular Expression Support
Many months ago I reviewed Ben's MySQL Crash Course, an excellent book that discusses MySQL at a very high, quick to read level.

Use an HttpModule to Spam-proof Your Website
Every time an email address is written on a website, it allows spam robots to collect it and abuse it. If you have a website (e.g. blog or forum) that displays the users e-mail address it would be a nice service to mask it for the spam robots.

Web Developers Vs. Traditional Developers on CSS
In the year of 2006 it can be hard to avoid doing web development to some extent no matter what kind of developer you are.

Top AIM Developer Now With Google
Justin Uberti announced Saturday that he has left AOL after nearly 10 years as a lead developer for the company's widely utilized AOL Instant Messenger...

Countdown to Oracle Open World: OAUG SIG's
If you are heading out to San Francisco for Oracle Open World a bit early and have some free time on Sunday the 22nd...

Grokking the Source
At http://www.codinghorror.com/blog/archives/000684.html, Jeff Atwood has an interesting observation:

PHP Firm Zend Lands $20 Million
Zend develops products for PHP development, and the company just hauled in $20 million in Series D Funding; a "strong candidate" for the open CEO job may be named in the coming weeks.

Python Developer Center on Yahoo!
Thanks to Simon Willison, we now have a Python Developer Center on the Yahoo! Developer Network.

Software Development Fallacies to Avoid
In this article I'm going to explain the top 10 software development fallacies my company avoids.

Ajax Book Review
The first thing I should say is that this is a thoroughly enjoyable book. Ed Woychowsky is fun to read, and I could almost recommend this to you even if you have no interest in Ajax.

02.07.07


Would Everyone Even WANT To Write Software?

By James Taylor

Like many of you, I suspect, I found Awaiting the Day When Everyone Writes Software (you may need to register) in the New York Times interesting.

While I hate to criticize someone like Charles Simonyi (who has brought to market much more successful software than I have), I find the thrust of his argument disturbing.

The article describes programmers bluntly:
Programmers don't know what a computer user wants because they spend their days interacting with machines. They hunch over keyboards, pecking out individual lines of code in esoteric programming languages, like medieval monks laboring over illustrated manuscripts
I think this is a little harsh, though I agree there is a problem with programmers, or more accurately with our expectations of them. Why should we assume they know how to make the computer do what we need and that they can understand our business? Is this even a reasonable expectation? Simonyi's idea of intentional programming "in which programmers would talk to machines as little as possible. Instead, they would concentrate on capturing the intentions of computer users" does not, to my mind, alter this core problem. No matter how good the abstractions, the assumption that programmers should implement the logic that represents the business seems to me to be flawed - programmers and business people have a different perspective and this should be exploited not bridged. You want programmers to apply their unique skills (abstraction, technology know-how etc) while allowing business users to manage how the system implements their business. Now perhaps his software will be so good that "everyone writes software". But that assumes that business people want to write software when, in fact, most business users don't want to write code (or maintain rules for that matter).

So if business users do not want to write code, and programmers are challenged to write the code that embodies the way the business "thinks", what's the answer?


I saw an article on SandHill.com recently (Unraveling the Mystery of Software Development Success) that showed the project failure trend graph that I have reproduced above. As you can see, the rate of failures due to all causes is declining steadily and converging on the failures due only to problems with requirements. Pretty soon, it appears, all the problems with be with requirements. The problem then is not that programmers cannot write bug-free code in the general case but that it is hard to write code that correctly implements requirements.

My own experience is that it is not requirements like "complete transactions in n ms" or "support a thin client" that cause problems but those like "ensure transactions are compliant with federal law" or "apply current marketing promotions correctly". The reason these cause problems is that they are not really requirements! They are rules and using business rules can fix this requirements mess. In addition, it seems to me that an issue that must be addressed is that of application maintenance - the ongoing changes that are needed to the logic in a system as the business (and the world) changes. It is this constant editing and patching that destabilizes code but the proper use of existing technology allows much more effective management of application maintenance.

Back to the article. It goes on to say:
Intentional programming has three great advantages: The people who design a program are the ones who understand the task that needs to be automated; that design can be manipulated simply and directly, rather than by rewriting arcane computer code; and human programmers do not generate the final software code, thus reducing bugs and other errors.
If these are the things that worry you, don't wait for Mr Simonyi.

1. Business rules technology allows those who understand the business to write and, more importantly, manage the rules within their information systems.

2. Business rules can be manipulated simply and directly, especially when templates are used to control the interact and make it fit the business user's mindset, and no arcane code is required.

3. As someone once said, "there is only one kind of error and it's a human error" - humans will write the software that generates the final code so it too will have bugs.

As noted above, most of the problems in systems are now caused by issues of implementing rules and these are not solved by generation of code.
The systems you have today have problems but plenty of technology exists that already works and is ideal for building systems that are "smart enough". Maybe I should write a book on this...

Comments


About the Author:
VP of Product Marketing with a passion for the technologies of decision automation. 15 years designing, developing, releasing and marketing advanced enterprise software platforms and development tools. Across the board experience in software development, engineering and product management and product marketing.

http://www.edmblog.com

About DevNewz
DevNewz has assembled experts around the world to deliver helpful advice to application developers. Our in-house news staff focuses on keeping you updated with the latest new software and trends in application development. DevNewz provides Knowlege For Application Developers.

DevNewz is brought to you by:

SecurityConfig.com NetworkingFiles.com
NetworkNewz.com WebProASP.com
DatabaseProNews.com SQLProNews.com
ITcertificationNews.com SysAdminNews.com
LinuxProNews.com WirelessProNews.com
CProgrammingTrends.com ITmanagementNews.com


-- DevNewz is an iEntry, Inc. publication --
iEntry, Inc. 2549 Richmond Rd. Lexington KY, 40509
2007 iEntry, Inc.  All Rights Reserved  Privacy Policy  Legal

archives | advertising info | news headlines | free newsletters | comments/feedback | submit article
Knowlege For Application Developers DevNewz Home Page About Article Archive News Downloads WebProWorld Forums Jayde iEntry Advertise Contact DevNewz News Archives About Us Feedback