Seabase II Case Study

Module A

Thursday 27th January 2005 – Saturday 5th February 2005

Bob, who had worked on the same project in the previous semester, sends out an email to the client, to set up the interaction for the current semester. As is the only one who knows the client at this point, it behooves him to initiate the communication.

A meeting is set.

The first meeting begins in Hank’s lab in the Mechanical Engineering (ME) building. Present are Hank (the client), and Computer Science (CS) Software Engineering Senior design students Denise, and Justin. Bob, the third CS team member, is absent.

Hank begins by showing the team Matlab, and talks about the tutorials available with the application. He then asks: “are there specific things [in Matlab] I can help you with?”

This is a partial transcript of the meeting. Some code specific parts of the discussion have been left out of the transcript and can be found in the audio file instead.

[common ground 2-1.mp3, 17 min]

Hank asks about how the work of going through the Matlab tutorial was going.

Hank: Did you have tutorials and did you have a helpdesk? And they have tutorials there.

Denise: Well we were going through the SIMULINK material and it has in some cases things like Pull up this and do this. I am like are you sure that there is somewhere it tells you what it means? We are getting closer though.

Hank: Well, I can pull it up now but are there specific things I can help with in terms of your understanding of Matlab, and the things that you need to identify or know where you have trouble getting in.

Denise: I was having a little bit of trouble with the defining of the S functions because they are very different from what we are used to, in terms of static, dynamic. I was also trying to use the Automatic generator which I know. Basically, I was trying to find

Hank: Did you folks have that simulation example? That has a lot of S function examples in it. You can write them in C or in as encoded S functions.

[Some description of what S functions really are and how Matlab and Simulink uses an S function]

Hank: Do you folks have a numerical methods class? Or a class where you have written simulation code or written and solves differential equations?

Justin: I did something like that in a Fortran class once but not a lot.

Hank: Did you try to use the code builder to generate code?

[Hank then goes on to describe exactly what commands to use while running S functions written in C and shows them where to look for it in the Helpdesk]

Denise describes the problem she had in choosing a compiler while running the S functions, in terms of correct version of compiler to be selected. Hank shows the CS team how to choose the compiler on the machine in the ME lab, and describes how to choose parameters in running the S-functions, and the differences amongst input, output and parameters and how to check for them on Simulink using specific keywords and commands. Also indicates which parts of the help document will be useful. He then demonstrates how to write a Hello World program and to run it, with detailed steps

Hank talks about the big picture and also asks about Bob's absence.

[big picture 2-1.mp3, 11 min.]

Hank: Pretty soon, if Bob doesn't show, we could start talking about the big picture a little bit. But before that, what is up with Bob?

Justin: (something indistinguishable)

Denise: Are we building a model like this or are we building one S function or do we have it plug into a larger system?

Hank: Yes, that is a pretty good question. Last semester, we kept trying to define how to proceed, and I kept suggesting that we make a skeleton of the code, and how I did that was by writing the names of the blocks and what they did in the code. And that is the kind of thing I would hope to happen here and how you want to organize the code.

Denise: So we've got to organize the code. I was thinking we would learn Matlab first and then try to organize the code.

Hank: And you would want to do both learning Matlab and dissecting the code simultaneously. Now learning Matlab will be the easy part and the fun thing and there is documentation for it. Learning the code will be kind of orthogonal and more challenging.

Denise: We are programmers, we are just dying to rip into the code.

Hank: Is that so? That's good. So the code has two main functions. I can take about all the S-functions and put them in one of two bins. One bin is like the Trash bin and the other bin is the stuff that needs to get implemented as part of the architecture. I can do that with a probability of success of what is useful of about 90%. The reason I mention that is to show that it is not necessarily easy to discern that. There are some functions in there which were written to support the hardware, like to read data of a serial file and according to serial data communication so packets were setup in a certain way.

The reason we don't need that code here is because we don't have that hardware.

That was a big road block last semester, that is getting the data into these two bins.

[Hank explains more of how to understand the difference and use features of Simulink to check each block of code and mask other functionality to determine which bin each block of code would best go into. Hank also describes a Simulink feature which helps mask functionality and make things private and hidden from the user]

Denise: We want to do that because we wont be supporting the code in the future.

Hank(jokingly): Well, this would be for a lifetime.

Denise: Well, some of us are going to graduate eventually.

Hank: You should try to mask things because it is helpful.

Denise: Yeah, if coders go in and change that later.

Hank: You folks can be really creative about it.... well anyway what will you be doing

Denise: Rip in the code probably, do some of the skeletoning stuff, now we know what we have to do.

Hank: I would recommend a couple of things, since we just looked at this Simulink stuff, you could play around with it while this is still fresh in your minds and start going through the blocks and start writing about things you dont think you need, and things you think you need, maybe write a sentence each about the blocks. We could meet next time and discuss it and I could tell you whether you were close or not. Or you could make a skeleton. It might be easier than directly making the skeleton, If you want to make the skeleton, you could try that but it might not be a super efficient use of your time. You could try it if you want, I suppose, I mean the more background you have on this the more help it will be. But I'll leave it up to you to decide.

Denise: Do you want to meet in one week or two weeks?

Hank: I think next week should be fine. Could you check if Bob can make it?

Denise: We will make sure that Bob is there.


Hank expresses his concerns and expectations about team structure:

[Team Responsibility 2-1]

[The situation is that the team is meeting for the first time, and Bob has not showed up]

Hank: How is your team structured? Is there like a lead person or a point of contact?

Denise: Pretty much anything to Bob.

Hank: That is just kind of a little concern. I mean, that is ok with me, certainly I have no say in that. But you guys need to make sure that you are all on board at the same level. I'll tell you what, I have office hours and I like to make meetings with students. If they blow me off, I let them have it, it gets brutal. I mean, I dont get abusive but I take that pretty seriously, not just because my time is really valuable, but it is an important thing to learn for the industry as well, so if you blow off a meeting a couple of times you may get away with it, but when the layoffs are coming, you would be a good candidate. I think it is a really poor way to manage things.

Denise: I apologize.

Hank: No, it is not your fault, but I guess it is something you guys can start talking about, you can do it in the context of me being the bad guy or something, but I think it is something you can talk about. Alright, so, thanks for coming by.

Denise: Thanks for your time, and we'll see you next week, hopefully with more people.

Shortly after the meeting Bob sends this email, explaining his absence and promising to not have a slip up like that again:

And the next day, Denise posts the risk document to the rest of the team to share it with their coordinator, coach and faculty Dr. Dave Voelker:

Questions:

  1. In the audio file(and transcript) big picture (2-1), Hank talks briefly about his experience with the previous team

    “Hank: Yes, that is a pretty good question. Last semester, we kept trying to define how to proceed, and I kept suggesting that we make a skeleton of the code, ”

  • At point in the Seabase I story is Hank referring to when he says this?
  • Can you spot that point in SI?
  • Do you think both parties(Hank and the team) were on the same page about this expectation?
  • As Hank, how would you have rather stated the expectation?
  • As the team, what would you have done differently in communicating in that situation?
  • What form of communication is this? [Cautionary Tale]
  1. How was the first meeting in SII different from the first SI meeting, in terms of:
  • Hank's conduct
  • The Team's conduct
  • Previous interaction between the Team and Hank
  • The team's preparation before the meeting
  • The technology being discussed
  • The expectation of the team
  • How formal is the communication?
  • How much direction Hank gave
  • The team's willingness to record interaction/take notes
  1. In the 'big picture' discussion, at the first meeting with Hank, Hank Says:

    Hank: So the code has two main functions. I can take about all the S-functions and put them in one of two bins. One bin is like the Trash bin and the other bin is the stuff that needs to get implemented as part of the architecture. I can do that with a probability of success of what is useful of about 90%. The reason I mention that is to show that it is not necessarily easy to discern that.

  • What type of communication technique is used here to describe the sorting process? [Metaphor – sorting the trash into bins, Cautionary Tale or Utopian View]
  • Why does Hank describe his probability of success with the sorting operation?
  1. Hanks Says:

    “Hank: I would recommend a couple of things, since we just looked at this Simulink stuff, you could play around with it while this is still fresh in your minds and start going through the blocks and start writing about things you dont think you need, and things you think you need, maybe write a sentence each about the blocks. We could meet next time and discuss it and I could tell you whether you were close or not. Or you could make a skeleton. It might be easier than directly making the skeleton, If you want to make the skeleton, you could try that but it might not be a super efficient use of your time. You could try it if you want, I suppose, I mean the more background you have on this the more help it will be. But I'll leave it up to you to decide.”

  • Is Hank just offering a recommendation here or is he indirectly telling the team what he wants them to do?
  • Is Hank's technique effective?
  • Did Hank direct the Seabase I team the same way?
  • As a student, would you prefer to receive direct instructions where work is concerned or a general sense of direction?


Thursday 27th January 2005 – Saturday 5th February 2005

Bob, who had worked on the same project in the previous semester, sends out an email to the client, to set up the interaction for the current semester. As is the only one who knows the client at this point, it behooves him to initiate the communication.

A meeting is set.

The first meeting begins in Hank’s lab in the Mechanical Engineering (ME) building. Present are Hank (the client), and Computer Science (CS) Software Engineering Senior design students Denise, and Justin. Bob, the third CS team member, is absent.

Hank begins by showing the team Matlab, and talks about the tutorials available with the application. He then asks: “are there specific things [in Matlab] I can help you with?”

This is a partial transcript of the meeting. Some code specific parts of the discussion have been left out of the transcript and can be found in the audio file instead.

[common ground 2-1.mp3, 17 min]

Hank asks about how the work of going through the Matlab tutorial was going.

Hank: Did you have tutorials and did you have a helpdesk? And they have tutorials there.

Denise: Well we were going through the SIMULINK material and it has in some cases things like Pull up this and do this. I am like are you sure that there is somewhere it tells you what it means? We are getting closer though.

Hank: Well, I can pull it up now but are there specific things

Hank is carefully saying that he will be happy to help them with “specific” things, possibly in order to assess whether the team has been doing their homework, and is coming to him with valid questions. It may be because he is wary of being asked to explain the same things over and over, without the team then actually implementing it

I can help with in terms of your understanding of Matlab, and the things that you need to identify or know where you have trouble getting in.

Denise: I was having a little bit of trouble with the defining of the S functions because they are very different from what we are used to, in terms of static, dynamic. I was also trying to use the Automatic generator which I know.

Denise, in her way was trying to assert that the team had looked at the material and made an honest effort, before asking for help.

Basically, I was trying to find

Hank: Did you folks have that simulation example?

Hank is still searching for evidence that the team did the work they were asked to.

That has a lot of S function examples in it. You can write them in C or in as encoded S functions.

[Some description of what S functions really are and how Matlab and Simulink uses an S function]

Hank: Do you folks have a numerical methods class? Or a class where you have written simulation code or written and solves differential equations?

Justin: I did something like that in a Fortran class once but not a lot.

Hank: Did you try to use the code builder to generate code?

[Hank then goes on to describe exactly what commands to use while running S functions written in C and shows them where to look for it in the Helpdesk]

Denise describes the problem

Denise, along with finally asking a focused question,in response to Hank's asserted expectation from the last few lines also establishes that she tried to actually run the simulation example

she had in choosing a compiler while running the S functions, in terms of correct version of compiler to be selected. Hank shows the CS team how to choose the compiler on the machine in the ME lab, and describes how to choose parameters in running the S-functions, and the differences amongst input, output and parameters and how to check for them on Simulink using specific keywords and commands. Also indicates which parts of the help document will be useful. He then demonstrates how to write a Hello World program and to run it, with detailed steps

Hank talks about the big picture and also asks about Bob's absence.

[big picture 2-1.mp3, 11 min.]

Hank: Pretty soon, if Bob doesn't show, we could start talking about the big picture a little bit. But before that, what is up with Bob?

Justin: (something indistinguishable)

Denise:

The heuristics of capturing all the necessary sides of any task – The Who, What, Where, When and Why. Here Denise starts with asking about What Needs to be done, Hank, pitches in the How(code breakdown) and then they discuss the When(both Matlab learning and Code breakdown in parallel)

Are we building a model like this

Denise, probably having learned from her prior experience with Hank, asks a well structured question that indicates how keen she was to have things move towards an end-goal, while attempting to also understand what the end-goals are.

or are we building one S function or do we have it plug into a larger system?

Comparison SI “Hank asked if we know how to go about the crane controller now, and Ken answered that he thinks we need to get more big picture, a flow chart, understand the terminology” In SI, we notice that the team was often looking for a description of explanation of the big picture, as opposed to in SII, where even the identification of goals was being made with specifics in mind. It possibly played to the SII Team's advantage that Denise was bringing this need to identify a goal up, instead of passively waiting for the big picture. To be described to you.

Hank: Yes, that is a pretty good question.

Hank appreciates that he is being asked specific questions which indicate that Denise had given it some thought.

Last semester,

A small reference to what Hank had hoped to accomplish the previous semester.

What is probably happening here is that Hank is subtly describing what his expectation was from S1, about the code-breakdown, and the skeletal map and HE did some of that, instead of the team. And also that that is what he expects the S2 team to accomplish among other things. Q: How confident from what has been said, would you as a S2 team member be of what expectations Hank may have of you. Was this clearly worded?

we kept trying to define how to proceed, and I kept suggesting that we make a skeleton of the code, and how I did that was by writing the names of the blocks and what they did in the code. And that is the kind of thing I would hope to happen here and how you want to organize the code.

Denise: So we've got to organize the code. I was thinking we would learn

Denise is confirming her understanding of what Hank is expecting of them. She is also presenting her view of how she thought the team would work, that is Matlab learning first and then code breakdown. Hank immediately expresses that the team will be working on both simultaneously.

Matlab first and then try to organize the code.

Hank: And you would want to do both learning Matlab and dissecting the code simultaneously. Now learning Matlab will be the easy part and the fun thing and there is documentation for it. Learning the code will be kind of orthogonal and more challenging.

Denise: We are programmers,

Comparison with S1, When Denise states that they are dying to rip into the code, Hank appears quite pleased, which is probably because he still had apprehensions about whether any actual code-breakdown would get done, as he had hoped in S1, but had not been able to see.

we are just dying to rip into the code.

Hank: Is that so? That's good. So the code has two main functions. I can take about all the S-functions and put them in one of two bins. One bin is like the Trash bin and the other bin is the stuff that needs to get implemented as part of the architecture. I can do that with a probability of success of what is useful of about 90%. The reason I mention that is to show

Here we can see Hank letting the students know that the bucketising is going to be challenging

that it is not necessarily easy to discern that. There are some functions in there which were written to support the hardware, like to read data of a serial file and according to serial data communication so packets were setup in a certain way.

The reason we don't need that code here is because we don't have that hardware.

That was a big road block last semester,

Here Hank is sharing what might be his disappointment with not having had the bucketizing done in Seabase I

that is getting the data into these two bins.

[Hank explains more of how to understand the difference and use features of Simulink to check each block of code and mask other functionality to determine which bin each block of code would best go into. Hank also describes a Simulink feature which helps mask functionality and make things private and hidden from the user]

Denise: We want to do that because we wont be supporting

Denise probably wants Hank to remember that the project was a short term commitment for the students.

the code in the future.

Hank(jokingly): Well, this would be for a lifetime.

Denise: Well, some of us are going to graduate eventually.

Hank: You should try to mask things because it is helpful.

Denise: Yeah, if coders go in and change that later.

Hank: You folks can be really creative about it.... well anyway what will you be doing

Denise: Rip in the code probably, do some of the skeletoning stuff, now we know what we have to do.

Hank: I would recommend

Hank first asks what the students are planning to do, but then goes on to tell them what he would want them to do. It could be a sign that Hank still wants to be able to dictate the course of what is done, but he wants the team to feel like they have a say in it as well. This could be a subtle form of encouragement.

a couple of things, since we just looked at this Simulink stuff, you could play around with it while this is still fresh in your minds and start going through the blocks and start writing about things you dont think you need, and things you think you need, maybe write a sentence each about the blocks. We could meet next time and discuss it and I could tell you

It is good that Hank wants to be able to evaluate the team's understanding and progress and is probably paying more attention to the student team than perhaps was paid to S1

whether you were close or not. Or you could make a skeleton. It might be easier than directly making the skeleton, If you want to make the skeleton, you could try that but it might not be a super efficient use of your time. You could try it if you want, I suppose, I mean the more background you have on this the more help it will be. But I'll leave it up to you to decide.

This could also be an indication that Hank wants the team to feel like they are also in control of what is happening, perhaps so they would be more involved.

Denise: Do you want to meet in one week or two weeks?

Hank: I think next week should be fine. Could you check

Again, Hank is asserting that he thinks attendance of meetings is important, and that he would like the team to take it seriously. Denise appropriately reassures Hank that they will be on top of things, to let him know that the message is received.

if Bob can make it?

Denise: We will make sure that Bob is there.


Hank expresses his concerns and expectations about team structure:

[Team Responsibility 2-1]

[The situation is that the team is meeting for the first time, and Bob has not showed up]

Hank: How is your team structured? Is there like a lead person or a point of contact?

Denise: Pretty much anything to Bob.

Hank: That is just kind of a little concern. I mean, that is ok with me, certainly I have no say in that. But you guys

Even in the early stages, Hank wanted the team to know that he wants them to take the project seriously

need to make sure that you are all on board at the same level. I'll tell you what, I have office hours and I like to make meetings with students. If they blow me off, I let them have it, it gets brutal. I mean, I dont get abusive but I take that pretty seriously, not just because my time is really valuable, but it is an important thing to learn for the industry as well, so if you blow off a meeting a couple of times you may get away with it, but when the layoffs are coming, you would be a good candidate. I think it is a really poor way to manage things.

Denise: I apologize

Denise attempts to assure Hank that she has understood the severity of what he is trying to convey and that the team takes responsibility for their actions.

.

Hank: No, it is not your fault,

Hank changes his stance slightly, perhaps having realized that he may have come down a little too hard, and tells them he is not assigning blame, but is just making sure that group structure is kept in mind.

but I guess it is something you guys can start talking about, you can do it in the context of me being the bad guy or something, but I think it is something you can talk about. Alright, so, thanks for coming by.

Denise: Thanks for your time, and we'll see you next week, hopefully with more people.

Shortly after the meeting Bob sends this email, explaining his absence and promising to not have a slip up like that again:

And the next day, Denise posts the risk document to the rest of the team to share it with their coordinator, coach and faculty Dr. Dave Voelker:

Department of Computer Science | MTU

www.cs.mtu.edu