
- DescriptionYou work for a new upcoming IT Consulting company. The firm specializes in the development of enterprise applications and is hungry for new business.Your company along with several other companies have just received a Request for Proposal to develop a new online medical data system for Western Nursing Services. Your company is one of several that is planning to bid on the development of this new information system. Landing a large contract such as this is just the thing that is needed for your company to gain credibility and recognition in the marketplace. More importantly it will give your company a much needed boost in cash flow.
Western Nursing Services is small and has limited resources. Management has decided to use only proven technologies and methodologies. To cut cost, management has strongly recommended that open source tools be used where reasonable since they are free.
Your company may need to outsource some of the development to companies in India or other parts of the world where labor is much cheaper to be competitive in their bid. To mitigate the risk of working with diverse groups in different locations, time zones and cultural differences management has dictated that the team develop and follow a well documented software development process. Techniques such as Team Programming, highly dynamic work assignments, and a requirement by development management to dramatically increase the quality of the software as compared to previous applications released have been mandated by management. This quality is to be easily maintainable throughout the life cycle of the product. To accomplish this without dramatically increasing development time and hopefully to decrease it there is to be unit, module, and integration testing in some automated fashion.
The better the development process and the testing, the more profitable your company will be both now and in the future. A good development process will ensure that the code relates to the design and that the design satisfies the requirements. The development process and tools set chosen can greatly effect productivity and quality of code developed.
The design and implementation of the software must be easy to debug, fix and maintain not only for the first iteration of the product, but all subsequent iterations, versions, and releases in the future. Management has dictated that anything that has worked in previous versions not be broken by later fixes or enhancements. This must be done in a provable, reproducible, and in an easy to use and implement fashion.Additionally, as users report defects and they are fixed, it is required that each of these fixes be retested to prove that subsequent versions of the software are not adversely affected.
Multiple developers will be working on the application at the same time, and in the future there will be several version of the application that will need to be maintained. In the past this has been a problem because two developers would be working on the same code at the same time and would end up wiping out changes that the other had made. In addition, as enhancements are made to the application in new versions or releases, fixes need to be made to multiple versions of code. Often changes were made to the wrong version or did not get updated and tested in the newer versions. Management has told the team that they must adopt tools or a methodology so to solve this problem.
The company has the following resources currently at their disposal: a single small Linux or Windows based server (your choice). All members of the team will have their own desktop or laptop machine. These machines may have several different Linux distributions, WinXP, and OSX for the primary system. Any development tools must work on all of these operating systems or there must be a set of like tools for each operating system.
The Problem
The president of the company has just ask your team to put together the bid and respond to the Request for Proposal. The bids must be submitted by next Tuesday at 9:00 AM. This gives you only one week to have everything ready.
You begin by making copies of the Request for Proposal for each member of your team. After spending the part of the morning reading the document, it seems somewhat incomplete and poorly written. The team only has one week to prepare a response. How and what are you going to do?
Case Deliverables
Think – Return and Report
Read the case description above, the Request for Proposal and study the appropriate suggested resources below. Spend some time thinking and talking with your team members about the following items and be prepared to ask questions and share your solutions with the rest of the class.
- Explain what a Request for Proposal is, tell what is missing and what changes you would make to the Request for Proposal to make it more meaningful and complete.
- Tell how your company will formally respond to the Request for Proposal and what needs to be included in the response? Be prepared to share some of your thoughts on the details of the content of the response.
Design
Draft a detailed outline of the content and format of the response to the Request for the Proposal. There should be enough detail to allow other team members to write up and complete their assigned portions of the document.
Implementation
A formal written response to the Request for Proposal and a presentation to management highlighting the key elements of the proposal. Be prepared to back up all of your decisions with appropriate rational in the presentation.
Resources that may be useful
- Wikipedia – Request for Proposal
- How to write a request for proposal
- Sample Request for Proposal
- A Home health providers web site
- What is home health care
- Open Source Web Testing Tools in Java
- Open Source Version Control
- Comparison of relational database management systems
- Choosing the best DBMS?
- What is an Application server?
- Choosing an open source Application Server
- Software Development Processes Overview
- Rational Unified Process
- Agile Software Development Process
- Extreme Programming Process