Requirements!? What Requirements?

Requirements: Build a web application to help clients of a small DVD rental shops to book or order movies on-line.

Not much, eh?

In the real world, developers need to be creative and flexible. Initial requirements are often shallow and can be changed easily. Agile methodology approach will help you deal with such a situation, but you also will need a very flexible framework and architecture. That's where Agile Toolkit comes in.

Initial planning

Knowing so little, we can deduct a number of things right from the start.

  • We need two interfaces. One for the customers to log-in and order movies (the frontend). Other for store owner to use (the backend).
  • The frontend will require customers to enter their email and password
  • After logging in, customers need to see list of DVDs they rented, be able to browse other titles and rent them if any DVDs are available.
  • Backend will also contain authentication, although we will use name / password
  • Store assistant should be able to type in numbers of returned DVDs
  • There should be option for adding new movie titles and also registering new DVDs
  • Sometimes DVDs get damaged, lost or stolen, so should be a way to remove DVDs from the database
  • Store assistant should be able to add new customers, amend them or delete them

Our initial system should be as compact as possible and be implemented with the minimum of effort. It's quite possible that client will have change-requests. Delivering initial prototype is essential and will probably give us a lot of feedback and additional requirements.

Model Planing

As mentioned before, in Agile Toolkit development is separated into Business development and User Interface development. We will start by planning our business logic first.

  • Customer - Describes a customer - user of our system
  • Movie - A Single movie title
  • DVD - A physical box containing a DVD and bearing unique code
  • Rental - A record about rented movie

User Interface Planning

Here we decide on some initial pages for the front-end.

  • index - info about the store, some static text such as how to become a customer.
  • login - will contain branded login form, possibly also registration form in the future.
  • rentals - shows list of rented titles
  • browse - for registered user will show movies as well as availability of un-rented DVDs.

That's about all the planning we will do at this stage. We're going to start writing some code next