Keeping things simple

Software is subject to “size creep.” Operating systems and application software packages become larger and more complex with each release, yet most people use only a fraction of the functionality.

During a visit to Toronto last fall, Bill Gates said, “Simplicity has become the top priority in everything at Microsoft.” Announcements about Internet Explorer 5.0 indicate that this priority is being realized. Responding to feedback about the increasing complexity of Internet browsers, Microsoft is making its browser simpler to use.

It is good that Microsoft and other vendors are simplifying applications that are used by millions of people. But, even when building applications for delivery to a small user community, we should follow this philosophy. By challenging our teams to design and build simple solutions, we can: deliver software faster; produce quality software at lower cost; ensure the software is easier to maintain; and make it easier for users to learn and apply applications.

We must avoid design decisions that increase the size and complexity of software, such as:

Multiple formats. It is easy to specify a report for every occasion. If the development of a report costs around $20,000 (for specification, coding and testing) we need to determine the real value of providing alternate formats. The provision of a report writer, like Crystal Reports, and access to simple, well-defined data structures may give more value than numerous report variants. We should also support only one or two export/import formats that can be used with multiple applications. A comma-delimited or fixed-field file can be imported into Word or Excel. The cost to build application-specific, automated export capability is often greater than the long-term benefit.

Support for novice users. Advanced and novice users often require different support. Rather than developing two sets of commands or functions, it is less expensive to add wizards to guide users through advanced functionality. Also, the use of intuitive interfaces that follow Windows standards will make the provision of novice features less necessary.

Automated decision making. It is tempting to automate every aspect of a process, including areas that are performed better by humans. To embed complex rules in software (for example, filtering content in a Web search) often makes them difficult to maintain. Unless you are using a rule-based inference engine, automate only the highly repetitive steps.

Automated conversion. Conversion utilities can be expensive to write but are used only a few times. Since much data cleanup requires human intervention, it may be cheaper to apply temporary human resources to many parts of a conversion effort. Where appropriate, consider the use of inexpensive offshore resources.

Run everywhere. The desire to make software run on many different platforms is theoretically commendable and is fueled by the promises of the Java environment. In practice it will cost more than it is worth. Most organizations need to support only a single platform and don’t have to worry about Sun or Oracle dethroning Microsoft from the desktop.

Questions to ask of your development teams and users are:

– Do we really need this function or feature?

– Are we using proven technology or the latest toy?

– Can we buy functionality (packages or custom controls) rather than building it?

– How often will it be necessary to use the software?

– Are there alternate ways of achieving the same goals (even if they are manual)?

– Can we change business processes instead?

– Is the cost justified?

– Can we build only the 20 per cent of the software that performs 80 per cent of the work?

Keep it simple to be successful.

Hughes is a vice-president of software development for SHL Systemhouse in Toronto and was responsible for the development of SHL Transform, a knowledge-driven process management tool. He can be reached at [email protected].

Would you recommend this article?

Share

Thanks for taking the time to let us know what you think of this article!
We'd love to hear your opinion about this or any other story you read in our publication.


Jim Love, Chief Content Officer, IT World Canada

Featured Download

Previous article
Next article

Featured Articles

Cybersecurity in 2024: Priorities and challenges for Canadian organizations 

By Derek Manky As predictions for 2024 point to the continued expansion...

Survey shows generative AI is a top priority for Canadian corporate leaders.

Leaders are devoting significant budget to generative AI for 2024 Canadian corporate...

Related Tech News

Tech Jobs

Our experienced team of journalists and bloggers bring you engaging in-depth interviews, videos and content targeted to IT professionals and line-of-business executives.

Tech Companies Hiring Right Now