There are many tasks to complete before coding begins in a large project. The actual coding of the Library Project starts in Chapter 5, ".NET Assemblies." For this chapter, I will complete the project agreement document that describes the Library Project features.
This chapter does not include a Visual Studio project template that you can load and examine in Visual Studio. Instead, you must access the Chapter 3 subdirectory from the book's installation directory. This subdirectory contains three files.
Project Agreement.doc. This is the primary project document that identifies the features of the completed project. It is agreed upon by both the developer and user representatives. Deviation from this document only occurs through the "Change Order" process.
Change Order.doc. This file is used to modify the original project through the "Change Order" process. When using this document, include a description of the change to be made to the project, and any schedule and cost impact.
Project Acceptance.doc. This file is used when the project is complete, and the user is ready to accept the finished product. This document combines the "Acceptance Criteria Testing" and "Project Acceptance" elements described earlier in the chapter.
Please feel free to use these documents to support your own projects. However, the legal team at Addison-Wesley would like to remind you that if you choose to use these documents, you're on your own, bucko. These documents are meant as examples only. You should talk to a lawyer in your state if you wish to craft your own documents similar to these and have them be contractually binding.
The remainder of this section presents the "Project Agreement.doc" filled out with the details of the Library Project. Its primary content is a copy of the bullet items listed in the "The Library Project" section near the start of this chapter. It also documents some other project-specific requirements, and includes a typical estimate of project costs. For demonstration purposes, I have used an hourly rate of $25.00.
The ACME Library
November 7, 2005
This project agreement defines a project to be performed by the developer for the user. By signing this agreement, the user representative acknowledges that he or she has read the agreement, and accepts the terms of the agreement identified in this document. The terms of this agreement, or the services provided, may be modified at a later time through a Change Order document.
Authorized User Representative
Authorized Developer Representative
The ACME Company houses a small library for its employees, filled with business-specific documentation. The goal of this project is to develop a computer-based "library system" that tracks the inventory of books and other available library items. Patrons (employees) may check out items from the library. Librarians (administrators) have access to additional application features, including the ability to manage inventory and patron fines.
Deliverables and Acceptance Criteria
Upon completion of the project tasks defined in this agreement, the developer will provide the following deliverables to the user. Also listed are any testable criteria that must be met for adequate project acceptance by the user:
The library application. This Visual Basic 2005 application will be installed on each workstation within the library, and will include both patron and administrative features.
The library database. This database, stored in SQL Server 2005, will manage all inventory, patron, and transaction data for the library.
Documentation. The developer will supply both user documentation (online help, distinct for patrons and administrators) and technical documentation (especially concerning the database).
Installation image. The developer will supply all scripts and supporting documentation needed for the installation of the database. For the client portion, the developer will supply a standard Windows install package to be run on each workstation. ACME's IT department will install this product from a shared network drive or CD.
User training. The developer will provide up to five hours of administrator and librarian training.
The developer will accomplish the following tasks for the user.
Library Item Features
Allow patrons or administrators to search for items currently in inventory. The program allows searches based on several different properties of each item.
Support multiple search methods, including by title, by author name, by subject or topic, by a miscellaneous keyword, by the name of the related publisher, by the name of a series or group that contains the item, or by a barcode number attached to the actual item.
Limit search results by the location of the item, or by the type of media (book, CD, DVD, and so on).
Support the definition and use of distinct physical locations. The client has books and media stored at three different sites within the building, including a storage closet for seldom-accessed items.
Display the details of a retrieved item in a familiar browser-style interface. For instance, when looking up a book by title, the user clicks on the author's name to access all other items by that same author.
Allow access to each library items through a barcode scan. As is common in most libraries today, the items in this library's collection each have a barcode affixed, which serves as a unique identifier for the individual item copy.
Items can be checked out to patrons, and checked back into the library inventory.
All patrons are assigned a "PIN" that acts as their password.
Patrons can check out items without librarian and administrator assistance. They can use a barcode scanner to scan a patron library card and library items.
The "media type" of an item determines its checkout (and subsequently renewal) duration.
Patrons can view their library record, including all books currently checked out, and a list of fines owed to the library.
If permitted on a specific item, the patron can renew an item he or she has currently checked out.
Patron-centric online help is available through the standard F1 key. This help file includes no information on administrative features, so as to reduce experimentation.
Patrons can be divided into "patron groups" for the reporting and processing convenience of the administrative staff.
A "login" feature provides access to the administrative features of the application. Only authorized users can log in through an assigned password. The login feature is normally hidden from view from ordinary patrons.
Administrators can view patron details just like patrons can, but they also have access to additional patron details. Specifically, administrators can add new patrons and manage their identity and demographic details. Administrators can also disable a patron record to prevent further item checkouts.
Administrators collect and manage patron fines, including the ability to add non-standard fines, or dismiss unpaid fines.
Administrators define the records for each item managed by the system's inventory database. This includes the basics of each item, such as title and authors. Each item includes one or more copies, which represent physical items that can be checked out. Barcodes are assigned to copies.
Beyond the items and copies, administrators define all supporting values and lists, including author names and categories, the list of media types, publishers, book series names, status codes that identify the disposition of each item copy, and locations.
Designated administrators can add, edit, and remove the accounts of other administrators. Each account includes feature-specific authorization settings (group rights).
In addition to the scanning of barcodes, the program can assist administrators in the design and printing of both patron and item barcodes.
A simple program-managed process allows the administrative staff to process overdue items and fines on a regular basis.
The application allows holidays to be added and maintained. When a patron checks out a book, the program adjusts the due date of the item to avoid holidays.
Administrator-centric online help provides assistance to the enhanced features of the application through the same F1 key available to patrons.
The application includes some basic administrative reports, and the ability to "plug in" reports as needed in the future without the need to update the program itself.
The Application as a Whole
The program is "user friendly" and easy to navigate, especially for patrons, without much training or assistance.
The application stores its data in a SQL Server database.
Distribution of the application is done by administrative staff that has local administrative privileges, so a standard Windows installation package is sufficient.
Configuration of the application uses standard XML methods.
Project Estimate and Timetable
The following table summarizes the estimated costs and time to complete the project.
Library Item Features
Application as a Whole
SQL Server 2005 (estimate only)
| || |
| || |
Anticipated Project Start Date:
November 15, 2005
Anticipated Project End Date:
March 15, 2006