fhs
Volume 6, Number 19 -- May 9, 2006

Why Do Notes Developers Automate Customer's World But Not Their Own?

Published: May 9, 2006

by Ian Smith

The software industry loves to automate tasks. By reducing the most boring tasks, human errors are minimized, precious developer time is available for other more important endeavors, deadlines are met, and, in theory, overall software quality increases. Sun Microsystems' research backs that up with a study concluding that over the life of an IT project, approximately 80 percent of the costs can be attributed to maintenance. That puts a bull's-eye on the way code is written, the standards imposed, and processes adopted.

Each of those factors outlined above can impact the costs of maintenance and, therefore, project costs. However, can automation also help reduce maintenance costs? Yes it can.

Which leads me to this premise: Automation can bring benefits and even fun into the workplace by reducing repetitive tasks. I'd like to use the Lotus development world as an example.

Brief History Lesson

Lotus Notes was introduced in 1989 as groupware, software intended to help groups collaborate more effectively on business problems. It also allowed users to create applications to help improve business processes, bypassing the bureaucratic involvement typical of many IT organizations. By 1996, the inclusion of a scripting language and Java support turned it into a full-fledged development environment with the power to create sophisticated applications.

Over time Notes applications transitioned from back-room to mission-critical while its software development processes largely remained unchanged. The speed of deploying a new application often impressed end users and, therefore, expectations became and still are relatively high. Customers often demand new applications to be delivered within days. Not surprisingly this can cause stress in the life of a Notes developer. The Lotus Notes technology is clever, but as a development environment it often lacks automated processes to accompany the high demands from its end users.

The technology exists to automate many routine processes. Here are five areas of software development that provide excellent examples: search and replace technology, auto-save functionality, performance testing, code reviews, design management, and application deployment.

Search and Replace

When performing maintenance on a mission-critical Notes application, development teams can waste hours of valuable time and resources simply updating a URL that was hard-coded throughout the application. Even worse, developers are often frustrated trying to locate illusive individual occurrences. Development managers are particularly concerned because their teams are squandering precious development time searching for elements instead of creating new business applications.

An automated search and replace tool greatly reduces the element of human error and can help development teams quickly locate text items within an application. Using tools to automate such activities as search and replace not only will alleviate a developer's frustration, but it also reduces the development team's burden allowing them to concentrate on the complex problems that are more important, more interesting, and that make better use of their skills.

Automated Undo Mechanisms

Are you manually saving a copy of your work or even copying entire databases? Do you always remember to save files when you should? Once saved, do you waste time finding the correct file?

Automating the roll-back process will bring more control to the development environment. Developers will spend less time retracing their steps when they need to roll back an entire design or individual design elements, enabling them to complete projects faster and with fewer bugs.

Performance Testing

Searching Notes applications for the source of performance bottlenecks is a tedious manual process that reduces a development team's productivity as they search through endless lines of code. Performance considerations are often overlooked in the development cycle; yet performance bottlenecks consume vital system resources, and can seriously influence an end-user's perception and acceptance of a new or updated application.

By implementing an automated process to identify and solve application bottlenecks, development resources can be redirected to more critical development projects; thus, improving end-user satisfaction.

Design Management

Three items worth mentioning here are the reuse of elements, code, and templates.

Copying and pasting great design elements from a library or another application does not deliver what you want in Notes because related elements, such as subforms, can be lost in the process. That task can be automated to capture all related elements.

Without library automation, developers save their favorite code by either creating manual processes or they are forced to recreate it each time it is needed. This is time-consuming and unnecessary because the technology exists to create libraries of indexed code that are easily accessible.

Manual processes are frequently used, but are loaded with potential errors when duplicated many times over. Automation allows design templates to be updated and deployed into all relevant applications in a controlled manner.

An automated tool to help developers manage their database designs will provide the control needed to improve application quality and consistency.

Code Reviews

Code, design, document reviews are all potentially tenacious, but extremely important tasks. Companies have standards relating to the use of colors, fonts, and the positioning of text on pages. These standards are documented and must be followed. Checking conformance to coding standards can be done manually, but it requires a significant investment of time and skill. In extreme cases development managers, concerned with meeting schedules, cannot justify the time for these initiatives, and as a result, they are not enforced.

The use of automated analysis tools will improve the quality of the entire code base, decrease the time for problem identification and resolution, and provide assurance that many potential bugs have been eliminated prior to application deployment.

Application deployment

A well-designed basic manual build process will provide a framework to achieve the repeatable, robust deployment of applications from development via quality assurance to production. However, the number of individual steps involved makes the manual process slow and open to human error, especially as the build process approaches the end of development, when time pressure is likely to be at its peak.

Most organizations benefit from a more sophisticated approach. The automatic implementation of standard ACL settings and coding standards, plus the clear segregation of duties between the various stages, typically reveal that manual processes are not appropriate.

Estimates vary, but it is generally believed that software problems caught before they reach production can be rectified at one-tenth of the cost that would be incurred if they are trapped later. Appropriate automation of the build process can maximize the opportunity of capturing problems before they reach production.

Automation, therefore, can produce faster and more consistent deployment. In cases involving multi-department deployment, they can come under the control of one automated technology. ACL settings can be established once, and each promotion will contain the same ACL settings. This benefit avoids the risk of non-compliance with security standards.

Manual software development processes can adversely affect code quality. The potential for errors exists in all types of projects. The key is how to minimize these errors before they become problems downstream.


Ian Smith, chief operating officer of Teamstudio, runs the day-to-day operations of Teamstudio using his experience gained over the last 25 years building both private and public corporations mainly in the IT sector. Over the last five years Smith has broadened Teamstudio's technology beyond its core tools expertise into advisory and configured software work. Prior to joining Teamstudio in 2001, Smith was a divisional board director of Capita, one of the leading European outsourcing groups. Educated in Scotland, he holds degrees and professional qualifications in economics, marketing and finance.



Sponsored By
BYTWARE

Easy Recovery with the Security
Product of the Year

Looking for an easier way to recover lost data?
Backups are essential, but restoring them can be time consuming.
Wouldn’t it be great to recover deleted files with just a few mouse-clicks?

You can with StandGuard Recycle Bin, the 2005 Search400 Security Product of the Year.
As one judge said, "it's hard to find a reason not to run StandGuard Recycle Bin."
Try it free today!

Call 800.932.5557 or visit bytware.com.



Editor: Alex Woodie
Contributing Editors: Dan Burger, Joe Hertvik,
Shannon O'Donnell, Timothy Prickett Morgan
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

COMMON:  Join us at the Fall 2006 conference, September 17-21, in Miami Beach, Florida
T.L. Ashford:  BARCODE400 - the fastest way to create compliance labels directly from the iSeries
BCD:  Try WebSmart - the easiest and most complete iSeries Web development tool

 


 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement