Redesigning an Information System - Part 1

Posted by dbradley on Geeks with Blogs See other posts from Geeks with Blogs or by dbradley
Published on Thu, 27 May 2010 14:38:47 GMT Indexed on 2010/05/27 16:02 UTC
Read the original article Hit count: 192

Filed under:

Through the next few weeks or months I'd like to run a small series of articles sharing my experiences from the largest of the project I've worked on and explore some of the real-world problems I've come across and how we went about solving them. I'm afraid I can't give too many specifics on the project right now as it's not yet complete so you'll have to forgive me for being a little abstract in places!

To start with I'm going to run through a little of the background of the problem and the motivations to re-design from scratch. Then I'll work through the approaches taken to understanding the requirements, designing, implementing, testing and migrating to the new system.

Motivations for Re-designing a Large Information System

The system is one that's been in place for a number of years and was originally designed to do a significantly different one to what it's now being used for. This is mainly due to the product maturing as well as client requirements changing.

As with most information systems this one can be defined in four main areas of functionality:

  1. Input – adding information to the system
  2. Storage – persisting information in an efficient, searchable structure
  3. Output – delivering the information to the client
  4. Control – management of the process

There can be a variety of reasons to re-design an existing system; a few of our own turned out to be factors such as:

  • Overall system reliability
  • System response time
  • Failure isolation and recovery
  • Maintainability of code and information
  • General extensibility to solve future problem
  • Separation of business and product concerns
  • New or improved features

The factor that started the thought process was the desire to improve the way in which information was entered into the system. However, this alone was not the entire reason for deciding to redesign.

Business Drivers

Typically all software engineers would always prefer to do a project from scratch themselves. It generally means you don't have to deal with problems created by predecessors and you can create your own absolutely perfect solution. However, the reality of working within a business is that the bottom line comes down to return on investment. For a medium sized business such as mine there must be actual value able to be delivered within a reasonable timeframe for any work to be started. As a result, any long term project will generally take a lot of effort and consideration to be approved by those in charge and therefore it might be better to break down the project into more manageable chunks which allow more frequent deliverables and also value within a shorter timeframe.

As the only thing of concern was the methods for inputting information, this is where we started with requirements gathering and design. However knowing that there might be more to the problem and not limiting your design decisions before the requirements is key to finding the best solutions.

© Geeks with Blogs or respective owner