Project Managers in the Software Engineering Classroom

Samuel Malachowsky - Project Management Professional (PMP) Life

Project Management Professional (PMP) Life

Project management is a discipline that spans many industries and has undeniable benefits in its application. Sometimes, however, it can be difficult to convey its importance and application in the classroom environment. Many process and project management classes cover the core concepts, but fail to provide students with the opportunity to experience both the dynamics and leadership elements so core to project management as both a leader and a team member.

I published a paper recently which describes my approach to using project managers (PMs) in the classroom which has had measured effects in several areas, including individual student participation, group project disposition, and in-class presentations. Results have been encouraging, with student feedback (from both PMs and group members) indicating positive effects on interest in the field and application of project management, improved group dynamics, and more individual participation in the outcome of group projects.

Specifically included in the paper are examples of PM inclusion in both the class curriculum and main project from beginning to end and how they have been applied to a process and project management course in the past. Areas explored include the PM selection process, class attendance improvement via the PM-led group dynamic, PM-specific activities and evaluation, and the inclusion of a final presentation as a product in a normally process and project heavy course. For context, a description of the class curriculum, some related work, and relevant quantitative and qualitative student feedback are included as well.

The concepts and examples have been successfully implemented as part of a software engineering curriculum, but they could easily be applied to any classroom that wishes to expand project management instruction beyond a simple explanation of process and project management to an immersive experience with both practical and pedagogical benefits.

Link: Project Managers in the Software Engineering Classroom – PDF

Scrum Project 1: Brainstorming and Elaboration

Shish Kebab

A shish kebab as an app?

This series, “Scrum Project” is a beginning-to-end description of an undergraduate-level class project designed to allow students to experience the processes involved in an agile project first hand.  In this example, the process is Scrum, the project involves student groups and is conducted primarily in-class, and the product is an app.  This activity includes a lesson in brainstorming (i.e. Osborn and basic methodologies), an introduction to the concept of elaboration (a tenant of agile), and acts as the initial idea generator for a larger Scrum project.

For this activity, you will need some post-it style notes and about 1.5 hours.  Begin by explaining brainstorming, what it is, its purpose, and some examples of guided brainstorming methods.  This can be done as a mini-lecture or as required reading before class. Once you are ready to begin the activity, pass out post-it style notes, ensuring that each student has at least a few. Ask the students to individually think of an idea for an app, giving the following qualifiers:

  • Platform isn’t important. It can be mobile, desktop, tablet, etc.
  • It can be any category – game, social, communication, productivity, etc.
  • The idea should be only one sentence, not a long description.
  • They have not used the app before (it may exist outside of their current knowledge, but that doesn’t matter)
  • Typical brainstorming rules apply – focus on quantity, withhold criticism, etc.
Shish Kabob Simulator idea on post-it

Ideas are written in quantity on post-it style notes

Ask the students to write their idea down on the note and, once complete, place the note on the desk at the front of the class. Once this is complete, place them randomly on a whiteboard at the front of the class. The anonymity desired here can also be achieved by using a mobile whiteboard and having students place them on the back and then turning the board around.

This can be repeated and the students can be given more than one opportunity to generate an idea.  There are a few approaches that could be taken here:

  • Send a post-it style note home with each student, with the expectation that they will bring them back with an idea.
  • Break the students into groups and have them generate ideas together.
  • Declare app categories and assign them to students or group, requesting one or more ideas in that area.

Once an appropriate number of ideas (post-its) have been generated, you may choose to narrow down the selection.  This can be done by dividing into categories, having the class vote via show of hands, or by another method of your choosing.  One additional possibility is to allow the following process of elaboration to naturally narrow down the total number of ideas.  The narrow-down target is approximately one idea per student in the class.

The next phase is elaboration, in which the brainstormed ideas are further developed by the class.  Before starting, ensure that the class has been exposed to each idea in the pared down group, keeping in mind that this may have already been achieved in the process of narrowing them down.

Shish Kabob Simulator idea on post-its

The first round of elaboration is the easiest

First, have each student choose an idea that they would like to elaborate on.  On a second post-it style note, have the students elaborate on the idea, using the following guidelines:

  • Try to imagine the original idea from the perspective of the one who had it (i.e. the customer).
  • Add features that have a direct benefit.
  • Use a medium amount of detail and include brief examples for clarity.
  • 5 Minutes are available to complete this idea.  Once done, stick the new post-it on the bottom of the original and return them both.

This first round is a combination of elaboration and brainstorming – relying on the creativity needed to come up with ideas, but narrowing them with a constraint.  The second round, conducted next, should more closely resemble the method elaboration employed by agile teams – a deeper more purpose-driven process.

After all ideas and associated first-round elaborations have been collected, divide the students into teams of 4-5.  Teams as small as 3 can work as well, but are not preferred, and teams of 7 or larger may not be conducive to agile in general, especially in this context.  Each team is to further elaborate on the original idea (via a new post-it), but with stricter guidelines:

Shish Kabob Simulator idea on post-its

The second round of elaboration takes more thought, and has the option of eliminating first-round ideas

  • The activity and discussion is limited to 10 minutes per idea.  Further elaboration will take place if the idea is selected for agile development later on.
  • The team should try to think about any major questions from a feature perspective that a development team might have and answer them on the post-it.
  • Scope should be a consideration, and if previous additions seem to be out of scope, a single line may be placed through the text, so that it is still readable but has been excluded.
  • Each item should be reviewed, agreed upon, and added by the group, not by individual team members.

This process may be repeated as many times as the instructor would like – basically until each significant idea has been elaborated upon sufficiently to give a complete understanding of what it represents and whether it is a candidate for inclusion moving forward.

The next part of this activity, covered in the next article, covers team creation and final selection of which ideas are to be included in the scrum project moving forward, as well as some early steps in kicking off the Scrum project.

 

The 7 Quality Tools Class Activity

7 Quality Tools

The “Seven” Basic Quality Tools

No quality process class is complete without a nod to Deming and Ishikawa.  The idea of the seven basic quality tools is fundamental not only to the assertion of quality, but to turning measurements into metrics – i.e. making them useful for analysis and ultimately decision making.

In explaining the seven basic quality tools (often added to, substituted, or simply used as a reference for an list), one area I fear may be overlooked by students is how they are complimentary, or used together.  Thinking of them in this way, you can easily divide them into groups, keeping in mind that some may fall into more than one category:

  1.  Monitoring – With the result being a suspected issue
    • Check Sheet
    • Run Chart
    • Control Chart
  2. Analyzing – Digging into the problem more
    • Cause-and-Effect (Ishikawa, Fishbone) Diagram
    • Scatter Diagram
    • Histogram
  3. Prioritizing – Deciding where to concentrate effort
    • Pareto Chart
  4. Planning & Executing – Enacting lessons learned
    • Flowchart
    • Checklist
    • Forms with Required Fields

In order to reinforce this, I’ve used the following class activity successfully with underclass students, directly after a 15-20 minute lecture covering the tools and important concepts.

First, divide the students into teams of 3 or 4, and have them choose a non-software situation that everyone in the group can relate to, and what the intent of the situation is.  If they are unable to come up with one, ask the class for ideas or inject some of your own.  Some examples:

Thanksgiving Fishbone Diagram

Exploring what it takes to have a great Thanksgiving holiday

  • Having a great holiday
  • Avoiding a car accident
  • Throwing a birthday party
  • Quickly cleaning a house
  • Having a productive team meeting

Once each group has settled upon or has been assigned a topic, have them complete a fishbone diagram – encouraging them to go several layers in.  A classroom whiteboard is a perfect medium for this, as it allows easy edits.

Next, have the group complete some comparative analysis/prioritization on the diagram:

Thanksgiving Pareto Diagram

Choosing the Thanksgiving elements with the highest impact

  1. Choose between 5 and 10 “bones” from the cause-and-effect diagram.  This can be done by having each team member choose a few or by consensus
  2. Rate them against each other.  An easy way to do this is to have each team member assign them percentages so that they add up to 100, then average them together.
  3. Complete a Pareto analysis of these items, ranking them from most important to least.

Finally, with analysis complete, a quality plan needs to be created.  Have the students choose one of the Pareto items and formulate a checklist, flowchart, or form with required fields.  The output is intended to allow users to learn from their analysis (although only a small portion of it) and heighten the impact of lessons learned.

Thanksgiving Checklist

Using a checklist to ensure flawless execution of Thanksgiving

Once the activity is complete, you may wish to have students present their findings to the rest of the class or turn it in for grading.  If whiteboard were used and grading is required, tell the students to take a picture using a smartphone and confirm receipt and clarity of the image before erasing.

There will be some interesting variance in what the students come up with for this activity – some of the topics or resulting analysis may surprise you or even make you laugh.  Ultimately, the students will learn how the 7 basic quality tools can be used together to close the quality loop – from monitoring to analysis to prioritization to planning and execution.

Agile Principles Class Activity

Continuous attention to technical excellence

Continuous attention to technical excellence

One of the fundamentals of teaching any agile methodology, such as scrum, is the principles of the Agile Manifesto.  These concepts go to the core of agile: relying on the strength of the individual team member rather than that of the process.

In previous classes I have included these concepts as slides and required reading, sometimes going as far as having each student read a principle to the class.  Last semester, I decided to try something new to get a little more engagement in my upper-level agile process class.

First, introduce the manifesto and the principles.  These should be assigned reading, the students told of their importance, and some illustrations pertaining to individual methodologies given.  Next, have students divide into teams, put the principles on the projector (or share the URL) and give the following conditions:

  1. Choose one of the principles (so that there are no duplications within the class).
  2. Present that principle creatively to the class – the more creative the better.  Interpretive dance, a skit, slides, whatever – as long as it demonstrates the principle effectively.
  3. You have anything in the room at your disposal – computers/projector, white boards, other students, anything you happen to have in  your bag, etc.
  4. The presentation must be under 5 minutes, and you have 10 minutes to prepare.
Simplicity - the art of maximizing the amount of work not done

Simplicity – the art of maximizing the amount of work not done

Most of my students have chosen some sort of skit, using things like the rolling white boards as props.  Others have chosen to draw on whiteboards (two examples are illustrated in this post), and some have used online resources or videos.  I believe that this activity has increased retention at test time, homework, and activities later in the semester.

Although some team’s presentations are likely to be better than others, the hope is that engaging the students directly in the ideas will improve retention, and perhaps even recreate – in a small way – the original meeting of “The Agile Alliance“.