Windows & .NET Watch: How does your garden grow?
Stories Columns Opinions Resources
Preflight builds spread wings for smoother projects
Developers are increasingly turning to preflight builds, allowing them to experiment with ...
|
Coverity creates program to enforce code adherence
The Architecture Analyzer uses mapping technology from the company's Software DNA static a...
|
QCon 2008 features domain-driven development
This year's QCon invites speakers like Eric Evans and Dan North to talk about domain-drive...
|
.NET similarities prove golden for Silverlight
Microsoft has focused on making Silverlight 2 symmetric with the .NET platform, and that h...
|
SOA Watch: New economic realities
In the current economic downturn, agile programming and SOA are attractive options that bu...
|
Integration Watch: A new twist on threads
The key to raising the efficiency of multiprocessors is to shrink the overall workload by ...
|
Integration Watch: The Return of NetRexx?
Java scripting languages are seeing a surge in popularity, with NetRexx looking particular...
|
Windows & .NET Watch: Transaction crowd gets a boost
With multicore chips becoming the standard for processors, the need for a flexible, usable...
|
From the Editors: Election should shake up JCP
Rod Johnson has the right ideas for opening up the Java Community Process, and he may be a...
|
Letters to the Editor: Sun gives REST, SOAP choice
A reader takes issue with a headline on our story about Sun working with REST along with S...
|
Guest View: Be smart and lazy
The optimal solution for problems is the simplest one, so always aim to streamline your ap...
|
Zeichick's Take: From EXEC to EXEC 2 to REXX to NetRexx
Andrew Binstock's column last week, "The Return of NetRexx," brought back some fond memori...
|
Advanced Corda CenterView™ Data Visualization for the BusinessObjects™ Intelligence Platform
Corda Technologies presents a white paper on pervasive BI. The BusinessObjects business in...
|
From Mobile to SOA: A Guide for Optimized Application Deployment
Customer need has driven the emergence of multiple computing tiers. Today’s application d...
|
e-Kit: Web Application Security
Is your network secure? What about your web applications.
If IT security is your top p...
|
Practical tips for saving money on code maintenance
If software design is expensive, well, code maintenance is even more so. When you look...
|
By Larry O'Brien
September 1, 2008 —
Application development is closer to gardening than carpentry. There may be a beginning, there may be times of dramatic upheaval and change, there may be times of relative stasis, but there is no completion. For many executives, this is a view of development that is at odds with the exposure to programming that they may have received in college or earlier in their careers.
No businessperson likes to accept a continuing expense, especially if their view of software was formed pre-Web, when retail applications were shrink-wrapped and business applications were discrete. These are often the same executives who will emphasize time-to-market, saying, “We don’t need perfection; we just need a system that works,” and then express dismay when they have to invest in refactoring rather than new features.
It is a straightforward exercise to come up with exceptions to the “more like gardening” premise. As I write this, I have a window streaming video from the Olympics (showcasing, incidentally, Silverlight’s strengths, although as I watch in the early days of the Olympics, the system hasn’t been stressed).
“Carpentry” isn’t a fair metaphor for this massive project, but it was a system that had to be in place, had to fulfill a certain set of requirements and probably won’t be reused. Similarly, I suppose there are small businesses that can call it a day after putting up a Web site with store hours, directions and a phone number.
But software development is going to be a continuing expense for any business whose Web site is involved in sales or customer service or lead generation, or whose profit depends on efficient use of communication and data, or whose business environment is changing, or that is experiencing growth. In other words, pretty much every business.
Many companies can summarize the problem they want to solve with a simple, “We need to sell our stuff on the Web. How hard can that be?” And it’s true that it can be pretty easy. There are many people making a living selling wares on eBay, boutique shops might have success buying a stand-alone application and using PayPal to process credit cards, and at the other extreme, the problem of selling millions of dollars worth of products has clearly been solved by all major retailers. So why is it so hard for mid-sized businesses?
The most typical answer is business rules. Executives understand that their domain has complexities, but they do not understand that in the world of software development, the translation of business rules into code is far from a solved problem. For decades, we’ve hoped for an environment that is something like a spreadsheet for business rules, something that might have an initial cost in terms of developing a model but that, once completed, can be maintained and expanded by a domain expert. This is still the ideal for many executives.
This is not entirely a pipe dream (Intentional Software’s products, which I’ve discussed, seem to be a route forward), but to say it’s uncommon is an understatement. For companies that have not invested in their development processes, it’s beyond rare.
Far more common with such companies is a mishmash of presentation, logic and storage code that is difficult to refactor; the irony is that they may experience the static situation they desire, but with a system that is clearly flawed, even before they experience growth or confront changing business rules.
The second answer is scale. To expand the metaphor from gardening to landscaping, you don’t use the same tool to place a 10-pound stone as you use for a 1,000-pound stone. It’s not generally that the system components such as the Web Server and database are overstressed, but that the administrative challenges become overwhelming. When the number of SKUs changes from dozens to thousands, you can no longer hand-edit a change that affects every SKU in a category. When transactions are happening 24 hours a day, bringing the system down for an hour to install new software is a big deal. Tracing system health on a console must give way to a reviewable event log, which must give way to a real-time dashboard.
Again, companies seeking a fixed-price, one-time investment often end up in a bad-case scenario when it comes to evolving their systems for scale. Instead of having code whose structure and interrelations are explicit and easy to reconfigure because the code was always conceived of as provisional and subject to change, they discover that addressing an order-of-magnitude growth change requires modifications everywhere.
Such companies might initially regard talk of “agile development” as a theory-driven nicety, but in fact agile development is not just for companies with huge investments in software development processes. Indeed, it could be argued that agile processes have more to contribute to smaller companies that are experiencing growth and changing business conditions more than to mature companies that have an infrastructure to support their elaborate, formal gardens.
If your team is struggling with the effects of a static strategy, it behooves you to reconsider your approach and look to agile techniques to get you going again. You’re in the software business whether you want to be or not. If you’re going to grow, you need to tend to your software garden.
Larry O’Brien is a technology consultant, analyst and writer. Read his blog at www.knowing.net.
Related Search Term(s): professional development, software development
Share this link: http://www.sdtimes.com/link/32733