cis 110 "Software Process"


 For all programming projects, your instructor is the Client and you are the Software Developer. The client will give you a list of software requirements (i.e., the project web page) and you will deliver a software system on time that meets or exceeds the requirements.

Just as in industry, in this class the initial requirements for a project may be incomplete, inconsistent, unclear, and ambiguous, but never deliberately so.

And, just as in industry, the most valuable skill you may learn is the ability to specify a complete, consistent, clear, and unambigous set of requirements, starting from an initial project description.

Just as in industry, it is your job to keep the client happy.

The client may be clueless, but THE CLIENT IS ALWAYS RIGHT (the Official Motto of our class.)

Your primary task is to clarify the requirements (early!), and then "meet the specs." Clarifying and/or improving the requirements, in fact, may be the most valuable service the software engineer provides a client.

Just as in industry, your work will be evaluated on how well it "meets or exceeds the specs." Call this Software Quality Analysis (SQA).

Never change the specs without the client's agreement. Your job is to deliver what the client wants when the client wants it.

Therefore, the Software Process requires you to:

  1. Understand and clarify the requirements (do this earlier rather than later).
  2. Design, Implement, Test, and Deliver a working system that meets the specs.

NOTES ON MEETING THE PROJECT REQUIREMENTS

"Don't Change the Specs."

If the client says, "your project should do A, B, and C", then simply deliver the code that does A, B, and C to the best of your ability. Do not change A, B, or C by even a single character (unless you get prior approval from the client).

Bottom line: MEET THE SPECS, AS GIVEN.

Get the Client's Approval for any Changes in Advance

If there is a problem with the specs, or if you have a good idea to improve them, discuss your proposed changes with the client. One of the most valuable services a software developer can provide the client is to help clarify and/or improve the specs.

Bottom line: get approval for any changes, and do it in advance of the due-date.