Chapter 2. The Initial Problem

In this chapter, an example of the type of problem that often leads to the development of a small business application is introduced. That is, to make available to many the data currently restricted to a small number of people. Some of the decisions and processes that a developer needs to consider and complete, before starting to create a new application is described. In particular, how to organize the data, define named objects, and start considering how users will interact with the data. Whilst developing small business applications, I have found it important to involve the end users throughout the development process and therefore user involvement is introduced here too. At the end of this chapter, we will be ready to move on to the creation of the application itself.

A Normal Day in the Office

Rory thinks this Monday is going to be a straightforward day in the office. A problem in the email log needs investigation and the production team needs a spreadsheet fixing. Ken, the company's Managing Director, appears at the door:

"Rory, Mary in sales has just shown me her contacts list. That list is dynamite. She's got all sorts of business contacts in there. I need the rest of the sales team to be able to access that list. Get it sorted. I'll be back at the end of the week and will expect to see something in place." With that Ken was gone.

This is a typical problem for an IT manager to face while managing a company's computer systems. A small application is required on a short time scale. Often budgets are limited and the scope of the project is poorly defined. We will use the above example to describe the process of building a simple business application to address this kind of a problem.

So, what are Rory's options? Two options spring to mind immediately, but both have issues:

  • First, he could use a groupware email server such as Microsoft Exchange and then use the functionality in the server to share Mary's contact list with others in the company. If the company was already using a groupware email server, this would probably be the simplest solution, but they have a basic email server that does not provide this functionality. Upgrading to a groupware email server would require work to prepare the server as well as carry out the upgrade. As the upgrade will also require upgrading or reconfiguring everyone's email clients, and migrating existing email data, the process would need careful planning. It is not the sort of job to carry out in a week. Also, these products usually have a significant cost, especially when client licenses are taken into account. So this option's main problem would be cost, and the difficulty of getting the solution in place within a week.
  • Second, the contact list could be exported out of Mary's email software and published as a static web page. For example, it is fairly straightforward to export a contact folder in Outlook as a tab delimited text file, and then import that into a spreadsheet such as OpenOffice's Calc and then use the spreadsheet application to tidy the data and publish it in an HTML format. It is then simply a case of copying the resulting file to a web server. This is probably the quickest solution to implement. However, the resulting data would be static; the process would need to be repeated to keep the online version up-to-date with any changes. The data would also be in a format that is not easy to use elsewhere. If the data really is"dynamite", Rory is sure that making it available to everyone is only the first thing that Ken will want to do with it. Rory needs a solution that he can develop as Ken's requirements grow. Therefore, conversion into a static web page is a dead end that will sort the immediate problem, but leave Ken in the position of having to re-invent a solution when Ken moves the goal posts. Rory's worked with Ken before—he is confident the goal posts will change, and at a short notice.

Fortunately, there is another option providing the flexibility that the static web page lacks; and unlike the groupware email solution, it would neither break the bank nor take long to create it. That is, to export the data and build a Ruby on Rails application to publish the data and allow that data to be managed.

So, Rory decides upon the Ruby on Rails option. How would he go about developing a Ruby on Rails application to publish a list of sales contacts?

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.219.239.118