CSS360 Task 2

Sprint Goals

  • Understand the nature of challenges that they face in software systems development.
  • Understand the process of a traditional software development (e.g. Waterfall) and its limits. Sprint #2 and #3 will go deeper into the SDLC models.

Step 1

Complete the assigned readings

  • Sommerville Ch. 1 (Mentcare System: section 1.3.2 pp.20 – 22)
  • Rajlich (2006) “Changing the Paradigm of Software Engineering”

Step 2

Mentcare System

  • What does the Mentcare System do? List the purposes and key features of the Mentcare System (Sommerville section 1.3.2)

The Mentcare System is a patient records system that stores information about patients undergoing mental health treatment. Because mental health treatment is done at a variety of hospitals and clinics, clinicians need a system that can be accessed from any location with no loss of information.

From the text, the system has two purposes:

  1. To generate management information that allows health service managers to assess performance against local and government targets.
  2. To provide medical staff with timely information to support the treatment of patients.

    Sommerville, pg 35

The key features of the software system are:

  1. Individual care management
  2. Patient monitoring
  3. Administrative reporting

    Sommerville, pg 35-36
  • Describe the set of legal and social conditions the Mentcare System needs to satisfy.

Each key feature interacts with the system to allow clinicians to deliver appropriate care for the patients. With these features in mind, the systems where designed and developed to adhere to HIPPA and other patient data privacy laws and regulations.

Mental health is regarded as one of the most personal diagnoses and there are unique law and regulations regarding it. Mental health is the only medical specialty that patients can be detained against their will with the proper authority. The Menta System allows clinicians and providers quick and unencumbered access to patient information and records.

The caveat to protecting patient information is access. The more access points to patient information, the higher the possibility of breach or failure to secure the information.

Step 3

Rajlich (2006): With your answers from Step #2, let us start thinking about how to begin your planning for a software systems project (e.g., Mentcare System).

  • According to the Rajlich (2006) article, there are almost always unanticipated events that will pose the dramatic challenges to the companies’ software development projects (including the development process, product features). In addition to what the article showed, list three recent challenges you have observed in software-driven companies. For example, New York City (NYC) passed a law to cap the number of car-sharing vehicles. This will add more pressure to the companies like Uber and Lyft to come up with better strategic and technological approaches to meet the market demands and prevail in the competition.

Three recent challenges to software-driven companies:

1. Data privacy – With countries and and conglomorates like the EU passing strict privacy laws, software-based companies have had to restructure not just how users interact with their software, but how they keep track of that interaction for a multitude of purposes. Not only are they required to protect any data they collect on users, they are liable for misuse of that data.

2. Push service, free to play services – Many software services are being pushed to a service-based or free-to-pay schedule. But, the old adage: “If it’s free, you’re the product.”

3. Copy right infringment – On the other side of the spectrum of the push for open source is the continued increase in intelectual theft. Software is digital and can be duplicated with ease at no cost. IP theft from countries like China has increased significantly in recent years and costs companies billions of dollars a year.

  • What is the article proposing to remedy such problems (that may not be addressed using a traditional Waterfall approach)? Identify the failures mentioned in the article, and then provide some specific actions that you believe will help address these failures.

The purposed solutions are laid out by the author in categories:
1. Impact analysis
2. Change propogation
3. Refactoring
4. Code decay
5. Cognitive aspects

1. Volitility – Incremental change will lessen the impact of volitility.
2. Contradictions between predictable and volitile environments – Use of change propogation and and impact analysis to anticipate changes.