As the world's dependence on software increases, so do the expectations of consumers with respect to the cost, timeliness, and quality of that software. Purchasers of both shrink-wrapped and custom software are decreasingly willing to accept products that are late, expensive, or that have many defects. Unfortunately, though, many of the techniques currently used to develop software do little to prevent these problems, and are sometimes even responsible for causing them.
Research has shown that by improving the processes by which software is developed, dramatic improvements can be made in these, and other, problem areas. In fact, the benefits of software process improvement (SPI) have been so great that the Software Engineering Institute (SEI) has established a special group to research new techniques for achieving SPI and offer courses in how to apply those techniques in real organizations. Unfortunately, the opportunities for professionals to take these courses is limited. Leading researchers in the field of SPI are mostly at the SEI, and in order to learn directly from them one must either travel to Pittsburgh or hire them as consultants. Courses at the SEI are offered only at limited times of the year, and consultants are in such demand that their time is generally hard to get. Even if the time were available, though, these options are quite expensive for both individuals and small software development firms.
The goal of the Software Process Improvement Certificate Program is to give professionals in the larger software development community a way to access the latest findings in software process improvement, and to do so more conveniently and at a lower cost. This goal is in line with the mission of the SEI - "to provide leadership in advancing the state of the practice of software engineering to improve the quality of systems that depend on software."
The Software Process Improvement Certificate Program (SPICP)
This paper outlines a proposal for the Software Process Improvement Certificate Program in a distance education setting. It includes a discussion of the program's intended audience, learning objectives, courses, modes of delivery, required resources, availability, and faculty.
Intended Audience
The typical student in the SPICP is a software professional. He/she is either a developer or manager in a software development organization, and has the desire to see improvement in the organization's software processes.
Learning Objectives
After completing the certificate program, students should have the following skills:
Required CoursesAbility to define what software process is and understand how it can help improve an organization's ability to develop software. Clear understanding of the state of the practice in software process and software process improvement. Familiarity with current models for software process improvement and the ability to select an appropriate model. Ability to define, implement, and measure processes for software development. Ability to initiate a software process improvement program in an organization. Ability to manage the organizational changes resulting from process improvement efforts.
Currently, some of these courses are taught in a traditional setting, as part of the Process track of the CMU Master of Software Engineering Program. The challenge in creating a distance education version of the SPICP is determining the most appropriate mode of delivery for both old and new material in a distance learning environment. As Marshall McLuhen once said, "the medium is the message," so we must be careful in choosing the message we send to professionals about software process improvement.
The following table lists the media we feel are most appropriate for
each course in the SPICP, based on its learning objectives.
Course | Media |
Software Process Seminar |
|
Software Process Definition |
|
Software Process Measurement |
|
Software Process Improvement |
|
Software Process Improvement Capstone |
|
In Software Process Seminar, there are two primary learning objectives. The first is to introduce the basic concepts and terminology of software process and process improvement. The second is to understand the current state of the practice and analyze examples of both successful and unsuccessful SPI programs. To achieve these goals, the use of print material, an asynchronous online bulletin board, and a synchronous online chatroom are most appropriate.
According to Lee and Do, "print is useful for providing content when a good deal of material needs to be covered, when the subject matter needs to be dealt with in depth, and when certain skills (analytical or mathematical) need to be developed," [6]. As a result of these characteristics, print is useful for Seminar in several ways. First, it provides the initial background material on software process in a way that is non-threatening (i.e. users don't have to learn a new technology to access the content). Second, it is used to present the practices of other companies in the industry in the form of case studies. In both cases there is a great deal of information available, and "the stability of print allows students to browse and select from bulk material" [1], more easily given that "it is difficult to read a long text on the computer screen," [2]. Print also provides a very real benefit to instructors because materials for this course already exist in that format. Using the same format minimizes the time it would take to transform the course to a distance education environment.
After students have read the preparatory materials about process concepts and cases, they are expected to perform some analysis of and make judgments about the merits of the various approaches to software process. This analysis is supported by the ability to review print materials and make notations, but the real key to achieving this goal is group discussion. Lee and Do argue that learning objectives like these that require "in-depth coverage and discussion of materials...could best fit using CMC [computer mediated communication] including the WWW, computer conferencing, or email." They also quote Lauzon (1992) as suggesting that "high-level learning and integration is most effectively attained through the process of dialogue, which can be accomplished in a distance mode via computer conferencing," [6]. To provide an opportunity for this dialog to take place, then, students are required to meet in the online chatroom and to post opinions and resources to the bulletin board. Sharing opinions and information in this way will help develop a deeper understanding of process improvement and the skills needed to analyze new SPI techniques.
Software Process Definition teaches students how to go about defining processes for software development. It begins with presentation of background material and existing techniques, followed by instruction in how to assess the appropriateness of each technique and apply it in a real world situation. For all of the reasons noted above, print material should be used to present background information and describe existing process definition techniques. One distance education student remarked that "being able to see some procedures applied by faculty helps him to better understand complicated material," [3] though, so video-taped lectures should also be used so that students have the opportunity to hear the instructor's advice on how techniques should actually be applied in practice.
The ultimate goal of this course is to teach students to apply the techniques presented in print and video. Sherry argues that "both social and physical interaction enter into both the definition of a problem and the construction of its solution," and quotes Herbert A. Simon as saying "Human beings are at their best when they interact with the real world and draw lessons from the bumps and bruises they get" (Simon, 1994). Knowing this, there should be many opportunities for students to actually apply in their organizations the techniques learned in class. Small, graded exercises, will give each student a chance to apply process definition techniques with guidance and feedback so that, when the course is over, he/she will be comfortable doing so independently. Students should post questions, problems, and successes to an asynchronous bulletin board, to which the instructor and other students should promptly post feedback and alternatives. This type of dialog will help students learn from each other as well as from the instructor, and will foster an environment of best-practice sharing between professionals. The goal is, after all, to have everyone successfully defining software processes.
Software Process Measurement is quite different from the other courses in the program because of its quantitative nature. Its goal is the mastery of very specific mathematical practices and techniques. Because text is good for the representation of abstract ideas [4], and video is particularly effective for the demonstration of techniques ("drill-and-skill methods can be employed to help students master complex skill sets through visual repetition" [3]), these two media should be used to introduce the bulk of the material that demonstrates how to measure software processes.
After introduction, computer-assisted instruction (CAI) should be used to deliver exercises to help students practice the quantitative analysis techniques they have learned. Lee and Do propose that CAI works well for tasks that require extensive drill and practice, such as the collection and analysis of data [6]. CAI can also be used for tutorials and problem solving, and can help reinforce the correct application of techniques by providing immediate feedback in the event a mistake is made [4]. Note that automated feedback of this type is possible primarily because the problems are mathematical in nature. Coupled with professor-student email, these media will allow students to learn and apply software process measurement techniques appropriately.
In the Software Process Improvement course, students study the existing frameworks (e.g. SW-CMM, ISO) for achieving systematic improvement in software process. They are expected to learn the specifics of the most widely used frameworks and how to use professional judgment in customizing a particular framework to a specific organization.
As in other courses in the SPICP, there are some basic materials that should be available in print form for individual study. These include documentation of the frameworks under study and case studies of their application in industry. Unfortunately, though, most of the frameworks are so complex that reading is not sufficient to foster the level of understanding required for practical execution of SPI. In current SEI courses, more in-depth understanding is achieved through the presentation of lecture materials by an instructor, discussion of frameworks by the entire class, and execution of small, group activities that highlight key practices and concepts. These techniques have proven successful for the SEI, so the goal here is to determine the most effective way to implement them in a distance learning environment.
There are several options available for the delivery of instructor lectures and class discussion. When the course is taught synchronously with a group of students, the most appropriate medium is two-way video conferencing. "One reason for the growing acceptability of distance education by video conference is that this family of media allows a group of distant learners to be taught in real-time by a classroom teacher," [6]. The appeal of this option is that it allows students to engage in the types of interaction, discussion, critical thinking, and debate that are essential to the deeper understanding of complex ideas. According to the Global Distance Education Net, "Video...is good for presenting complex, real-life situations that require interpretation, where ambiguity may be advantageous and a variety of learner responses acceptable. This is precisely the situation that arises in applying software process improvement frameworks.
When students cannot participate in video conferences synchronously, videotapes can be provided of the earlier interactive lectures. To provide opportunity for discussion, an online bulletin board should be established where comments, questions, and suggestions are posted and threads of discussion initiated similar to those that took place in the video conferences. It is important to note that instructor participation plays a key role in the success of the asynchronous participant's learning experience in this situation. Students will inevitably have questions about the material presented in the videos and, "In the classroom, students raise their hands and teachers answer questions immediately. In distance education using the WWW in an asynchronous way, the instructor's promptness will make the educational experience of distance learning more...meaningful," [6].
As for the implementation of small, group activities, technologies do exist that allow distance collaboration over the Internet. Assigning students to groups and asking them to complete activities together not only gives them the benefits of the actually learning about process improvement by doing, but also familiarizes them with the real issues in distance collaboration. According to Vicky Phillips, "learning online provided welcome, albeit sometimes unexpected, lessons in corporate virtual communication skills."
The final course in the program, the Software Process Improvement Capstone, gives students the opportunity to actually assess their organization's software processes and design a process improvement program. We assume that the motivation for entering the certificate program initially was to help improve processes in the student's current place of employment, so this course gives students a chance to test out what they've learned with the safety net of both the class and instructor behind them.
At this point in the curriculum there is no new material to be introduced. The primary objective is to have the student implement the techniques they have learned in a systematic effort at process improvement. An additional goal of the course is to help students in executing their plans by facilitating communication between themselves, their peers, the instructor, and perhaps other software professionals about the troubles and successes they are facing. For the reasons mentioned earlier, this type of feedback and dialog are best implemented using a bulletin board and synchronous chatroom.
Finally, the capstone project should include the opportunity to reflect on the initial efforts at implementing software process improvement, focusing on how they can improve their SPI programs based on initial outcomes. Essays should be prepared that document these reflections, and these essays should be put into the course repository of printed material, perhaps stored in electronic format. These essays not only help the students summarize all that they have learned in the SPICP, but also serve to increase the industry's knowledge about attempting software process improvement. Both future students and other software professionals, by studying these essays, will benefit from the experiences of the current students.
Required Resources
If students are to take advantage of these modes of delivery, they will be required to have access to certain resources. In particular, they will need:
Telephones and and VCRs are standard appliances in most homes these days, so access to them is not expected to keep any student out of the program. In the event that a student does not have access to a VCR, most public libraries make them available for free or for a small fee, so this is not expected to be a problem.
The only resource that might be a problem for students is the two-way
video conferencing technology. At this time it is expected that such
software will be provided to students for an additional (discounted) fee.
Students not wishing to purchase the software can simply watch recordings
of the sessions on video, although this will decrease their opportunity
to participate in discussion. Until such technology becomes a basic
part of every computer, though, this scheme will have to be used.
Availability
Initially, these courses would be available online during regular academic semesters and would take place synchronously with a fixed group of students. One of the problems with this model, and with current courses in SPI, though, is that students must take courses at some scheduled, fixed time. If the materials described above were used to present one instance of the course using the synchronous semester model, the print materials, videos, bulletin board discussions, and chatroom transcripts could be used by other professionals taking the course in a more just-in-time fashion.
The argument is often made in the case of video-taped lectures that, although the video audience does not get a chance to ask questions themselves, the classroom audience serves as a surrogate and will supposedly as questions similar to those of the remote students. A similar argument can be made here - because those taking the courses synchronously are also software professionals, their concerns and questions will reflect those of their asynchronous peers. While it is a shame that not all students would be able to benefit from the group interaction component of the program, few would argue that the opportunity to access the domain literature and ideas of other professionals who have taken the course previously is better than nothing at all.
Faculty
It is expected that the same faculty who are currently teaching these courses in the classroom could teach (and perhaps help develop) the distance education courses. Additionally, removing the requirement that a faculty member be located in Pittsburgh, PA or travel to a remote site to teach opens the possibility of having software process professionals and researchers from outside the SEI teach the courses remotely. Of course, there is also the potential to have guest instructors, who might not travel many miles for a 2 hour class, interact with students remotely without even having to leave their home.
The author recognizes that collecting all of the print materials related to software process improvement for this program would be no easy task. As the body of research expands, so does the time it takes to assemble a comprehensive list of the materials and either scan or type them into a computer. I argue that the effort is worthwhile, though, for two reasons.
First, by taking the time to put the print materials into and electronic format for delivery to the students, it makes that material more useful in the daily activities of many software engineers by condensing several binders full of paper into a CD ROM that is much easier to browse.
Second, the assembly of current documentation of software process improvement
into a single collection will help to further the credibility of Software
Engineering as a legitimate profession. If there is a definitive
collection of work that leading researchers agree should be known by anyone
doing software process improvement, it will help to establish standards
for both education and execution in the industry. This collection
can become part of the body of knowledge
that is currently being defined in as a step in the evolution of Software
Engineering into a mature professional discipline.