General Background Information:
CMS Systems, Inc. is a company that provides information systems consulting services to companies in the telecom industry in the United States and the United Kingdom. Due to its success, CMS is hoping to expand its operations into other parts of Europe. Despite its large size, CMS currently uses a manual/spreadsheet-based process for maintaining employee hours worked, employee benefits, employee payroll, project management, and customer billing. It also uses a file based system to manage its legal documents and other client information.
Management has now decided to implement a company-wide application that will keep track of all of its employee, project, and client information. Employee information will include such items as employee name, address, hire date, and salary. It will also keep track of employee hours spent working on various projects, employee benefits, employee payroll, and produce invoices for clients based on hours worked by employees. Client information will include such items as client name, legal location (i.e., country), billing address, office locations, client contact information , and contracts associated with each client. Project information will also have to be maintained, which will keep track of employee assignments to projects.
CMS currently employs 1,500 individuals (900 in the US and 600 in the UK) who serve as systems analysts, developers, managers, testers, maintenance engineers, accountants, lawyers, sales representatives, and office staff.
The new system will enable the Human Resources department to maintain all employee information such as name, address, hire date, termination date, emergency contact information, marital status, tax withholding information, 401 K participation, insurance participation, other tax-related deductions, and salary/wage rates.
Only members of the Human Resources department will be allowed to edit employee information.
Recording Hours Worked
All CMS employees must keep a record of the time they spend working for each client on a weekly basis. Because employees can work for more than one client and perform different functions for each client, CMS utilizes “project management” to keep track of employee assignments to client contracts. Employees can be assigned to work on more than one project at a given time. In fact, it is not unusual for an employee to spend time on two or more different projects within the same day.
The number of hours worked for each employee on each project must be recorded on a weekly basis. Employees currently log their time using an Excel worksheet. An example of this worksheet is presented below. Notice that the employee’s supervisor is listed on the worksheet. A supervisor is currently required to approve his employees’ timesheets by placing his initials beside his name.
All employees in the company should be allowed to enter information on their timesheet.
Salaried employees are paid for hours worked based on their negotiated salary, which is currently stored in a spreadsheet. The new system will store this information in a database. Hourly employees are paid based on the number of hours worked multiplied by their negotiated wage rate, which is also currently stored in a spreadsheet. Like salaried employees, this wage rate will be stored in a database with the employees’ other information. Below is a sample payroll calculation for an employee who is paid 15 US dollars per hour and 1 ½ times his hourly rate for any hours worked in excess of 40 per week. This information (which is actually a report) will be available in read-only format to employees (who can only view their own payroll information), and Accounting and Payroll employees (who can view every employee’s information).
|Payroll information for John Doe for the week ending Week 1:|
|Total Hours Worked:||42.00|
|Regular Hours Worked:||40.00|
|Rate per regular work hour:||$ 15.00|
|Regular Hourly Pay:||$ 600.00|
|OverTime Hours Worked:||2.00|
|Rate per overtime work hour:||$ 22.50|
|Overtime Hourly Pay:||$ 45.00|
|Gross Pay:||$ 645.00|
|Number of Weekend/Holiday/Vacation days claimed:||2|
Notice that the current process does not calculate FICA and other employee withholdings on the payroll sheet. The new system will provide this information to the employee along with the information above.
Employees receive paid time off for vacation, holidays, and other occurrences (such as jury duty, bereavement, etc.). Other events, such as maternity leave, paternity leave, and military leave do not qualify for paid time off, but must be recorded to indicate the current status of the employee. Vacation days are specific to each employee, whereas holidays are granted for every employee within a country. Further, the number of base work hours required per week varies by country. That is, a 40-hour workweek in the US is used, but a 38.5 hour week in the UK is the norm. All of this information is currently tracked in a spreadsheet by the Human Resources department. In the new system, a separate functionality will be implemented that will allow HR users to assign the number of vacation days to each employee per year. It will also set up the initial schedule of valid holidays per year on a country-by-country basis. The system should be able to show how many vacation days have been taken (year to date) and prevent an employee from claiming more vacation days on his timesheet than are allocated to him through the HR department. Only employees in the Human Resources department will be able to maintain benefit information.
For tax purposes, the company must maintain accurate records of employees who are on international assignments. For example, some employees work more than half of the year in a country outside of their country of legal residence. This has implications for the amount and location of taxes to be paid to the respective countries. Currently, this information is maintained in a spreadsheet, but in the new system, each employee, the number of days he spends outside of his home country, and the name of his host country must be stored in a database. This information is maintained by the Human Resources department. Only employees in the Accounting and Human Resources departments will be able to edit International Assignments. Project managers, however, will be able to view this information (though not edit it.)
The company has more than 200 clients in the US and UK. Clients can have one or more contracts with CMS to provide a variety of consulting services. For example, a single client might have one contract for maintenance of an existing system and also have another contract (called a work order) for the development of a new system.
Some clients are billed based upon negotiated contracts, which stipulate a pre-determined amount for charges – regardless of the number of hours that employees actually work on the contracts. Such contracts are called “fixed price” contracts. Other clients are billed based on the total number of hours provided by CMS employees multiplied by a rate per employee type per employee hour. These arrangements are called “T&M – Time and Materials” contracts. T&M contracts specify a maximum number of hours for which the client is willing to pay. Any hours over this cap amount are not billable, but are considered discounted hours. A cap amount may also be specified for reimbursable expenses in T&M contracts.
For T&M contracts, the rate per hour for each consultant is determined by the employee’s level of expertise. For example, a client pays $100/hour for an employee who is at the level of Systems Analyst I. That same client pays $250/hour for an employee designated as a Manager II.
T&M and Fixed Price contracts are the only two types of contracts currently used by CMS. T&M contracts, however, have different combinations. That is, a T&M contract can have a fixed number of hours, but a variable amount of expenses. Another T&M contract can have a fixed amount of expenses, but a variable number of hours. Yet another contract can have both hours and expenses as variable costs. All of these combinations can also have cap amounts.
Finally, CMS is considering a new type of contract, Maintenance, to be added to its list of possible contracts. Currently, maintenance is included as part of an initial work order (contract/license agreement). In keeping with the rules of Accounting and revenue recognition for software providers, maintenance is an important feature of a contract and has special rules that affect how much revenue can be recognized for licenses. To simplify its procedures, the company is considering issuing separate contracts for maintenance to clearly distinguish between license revenue, which can be recognized at the time of system delivery, and maintenance revenue, which in most cases must be recognized over the duration of the maintenance agreement.
Only members of CMS’s Legal department will be allowed to edit the client and contract information. Members of the Accounting department will have read-access to the data.
Employees work on projects, which are associated with contracts. Just as a client can have more than one contract with CMS, a contract can consist of more than one project. For example, a contract for the development of a new system could be fulfilled in multiple phases. Phase I could include implementation at one client site using a group of consultants in close proximity to that site. Phase II could include implementation at a different site with a potentially different set of consultants. Both of these phases are considered separate projects, even though they are governed by the same contract.
Project information includes such items as a project name, a start date, an end date, a project type (i.e., Fixed Price or Time/Materials), a fixed price amount (if applicable), a cap on the number of hours or expenses that can be incurred on a Time/Materials project, and a project manager.
Employee assignments to projects are also a vital part of project management. The system will track the employees that are assigned to each project and include the dates for which they began work on the project and the dates they completed their work on the project. The assignment must also include the role a person plays in the project. For example, if a person is assigned to Project A from January 1, 2012 to March 31, 2012 as a system developer, and later, that same employee works on the same project from April 1 through May 31 as a system tester, the system will be able to maintain such information.
The Accounting department creates and maintains projects. Accounting personnel also assign a project manager to each project. Each project manager is responsible for assigning individual employees to the projects. Therefore, not every item of a project will be editable by a project manager, and project assignments to employees will not be editable by the Accounting department. Both groups, however, need to be able to see all of the data.
This project is intended to give you practice in implementing guidelines you have learned about in this course.
For this project, you are required to design the GUI for CMS’s system described above. You do not have to implement any functionality. Our task is to design the windows, controls, and menus that would be used to implement the system. You may use any drawing application to draw your screens.
Paste your designs in a single Word document. Below each screen, describe its functionality, including a discussion of the controls on the screen. Describe the user group(s) that is(are) allowed to view or edit each item or screen. Note that in many cases, multiple user groups may be allowed to see a screen, but not all elements on the screen should be available (or even visible) to every type of user. If certain elements on a screen are to be disabled or hidden from various user types, note this in your description.
Indicate what types of controls are used for each element and if they are to be pre-populated with any values. For instance, an employee combo box may be used on a screen to manage employee benefits. This combo box could be pre-populated with the names of all the employees in a company. One or more checkboxes could then be used to populate the combo box with current (active) employees, terminated employees, employees on leave, etc. This would be one technique for filtering the combo box to make the list more manageable for its users.
In terms of controls, some of the most widely used ones are text boxes, combo boxes, grids, and command buttons. Remember that in many cases, a simple dialog box will suffice in lieu of a full screen.
Be sure to include navigation. If a menu system will be used to navigate from screen to screen, illustrate how and where it will appear and the options on it. Ask yourself questions like “Will the same menu be visible on every screen?” “Will context-sensitive pop-up menus be more appropriate?” “Will menu options vary based on the type of user using the system?”
Don’t forget Save functionality. Will the data be automatically saved when a user exits a screen or when he navigates from field to field? Will the user have an explicit Save button? Will the user be able to close the screen without saving changes? When the user exits a screen, where does he return? – a main screen? the previous screen?
How (or will) deletions be handled? What about changes to existing items such as project names or dates? How will the system handle mistakes? Will the user be able to rollback or undo certain changes? Will the same screens be used to add new items, edit existing items, and delete items? Or will separate screens or dialog boxes be more useful?
Be creative and have fun with this project. There are many different ways to design this system. Adhere to the guidelines you have learned throughout this course, and use the descriptions above to design a system to meet the needs of the organization.