Monday, March 16, 2009

Application #1

Let's call this: The Plungers Ordering system

The business analyst asks the user: What is the requirement?

We always order plungers through Bob. He adds the details of the order as a row in a spreadsheet file. This works fine except: There is only one "correct" version of the file. Most of the time Bob has it. Sometimes other people have it. And then Bob does not have the latest one.

Then we order stuff we already have in-house.
Also, other people will add stuff to the sheet they want ordered without Bob knowing about it.


Lastly the spreadsheet can accidentally be seen by people in other groups and then they cause a political ruckus.

The business analyst writes down:

We just need to share this file, be able to review it before placing new orders, search for orders already placed and know we are looking at the latest version of the file. Also if we make a mistake we need to see what changes are made and optionally go back to an earlier version of the data.

We also need to make sure that noone outside of our group can see the contents of the file.

What is one technical alternative?
  • Load the spreadsheet into a DB.
  • Write some desktop or web code to access the DB.
  • Work with the users to design the screens.
  • Add a module to enforce security or put this in the DB DDL.
  • Add a module to do versioning in the DB and screen to allow them to select/use old versions.
  • Add help support to the system.Teach the users how to use the application.
  • Have a QA process to make sure the application meets the business requirement.
  • Roll out the application to production.
  • When it needs to be changed [e.g. somebody quits], tell the users to call the programmer.
Usually the tech people go beyond this and also add:
  • A forms system to order plungers
  • A status screen to show everyone the status of the plunger orders.
  • A security system to show everyone who has what permissions and to allow them to change the permissions.
What is an easier code-free alternative?
  • Use Sharepoint.
  • Optionally create a site to hold the data.
  • Create a custom list by importing the spreadsheet data.
  • Set Versioning=on for the custom list.
  • Set up the security giving the appropriate people read access and others write access.
  • Optionally, tell the Sharepoint administration group to make sure search works for this site.
  • Test the application security and search functions.
  • Show Bob how to check-in/check out the spreadsheet so versions will be kept.
  • Show Bob how to change the security for the system.
Compare/contrast tech vs. code-free alternatives.


Advantages=Benefits
  • tech - application is *exactly* like the users wants and no more
  • code-free - user can build it themselves
  • code-free - application goes to production much quicker
  • code-free - user can use it immediately, on their own schedule
  • code-free - application is managed by the user (security, et.al.)
  • code-free - application can be changed by the user
  • code-free - other code-free applications will behave the same
Disadvantages=Costs
  • code-free - some SharePoint screens may not be exactly to the users taste
  • code-free - MSoft bug in import needs a workaround
  • code-free - users may proliferate applications that may need cleanup by IT staff
  • tech - a coder is needed
  • tech - application takes much longer to create/test/deploy
  • tech - application is available to the users on IT schedule
  • tech - application needs a coder to manage it (security, et.al.)
  • tech - application needs a coder to change it

No comments:

Post a Comment