Need help from S/W Project Managers (in Off-topic)


xDanELx October 18 2005 5:57 AM EDT

I am currently teaching a class in developing software for a diploma level class. I've decided to conduct the class in a project-like manner and I need the help of PMs with their experience, as I have none. I've asked the class to create a cheque writer application.

What I want them to do is to go through the process of:
1. Determining requirements (initial research regarding cheques)
2. Interview me (as a client) to determine what I want
3. Develop a project proposal
4. Get acceptance for the proposal
5. Create a project plan (scope, time, cost)
6. Develop the software
7. And finally, do testing

Basically, go through what would be a simulation of the entire project process. Any help or experience and what I could do to make the thing more realistic would be greatly appreciated. :)

chernobyl October 18 2005 10:06 AM EDT

If you want to make this project like real life, and you're going to be the "client" then the best thing you can do is to act like a real client.
Real clients don't know what they want, describe it completely incorrectly, expect impossible features, have unreasonable deadlines, and always think that their 'vision' of the project is exactly how they describe it, even though it never is.
Make it hard on them. Give misleading information and expect them to sort out what you mean, and have to ask you detailed, pointed questions. On the field, these skills are going to turn out far more important than the ability to write concise, working code. When things come out 'different' than your 'vision', say so, but don't say why or how up front - this is a common miscommunication between management and development that, for some reason, management expects development teams to handle.
Also, it'll be important to separate your duties as "client" from your duties as "project manager" - if you can, assign PM to one of your students. PM will usually assign blocks of code to developers on the team and come up with code specifications; a client doesn't have a clue about any of this and doesn't care.
This is all more or less verbatim what I went through in a similar class. I was fortunate enough to be the student assigned to PM duties, and we actually completed the project (this was a "bank account" web service written using cross-platform tools) nine days ahead of schedule. I really feel that everybody on the team benefitted greatly from the experience and I hope you can pass that on to your students.

Wolvie October 18 2005 11:37 AM EDT

Don't forget to whine at random intervals for no particular reason, go dark and cease communicating with them at critical junctures, and deny having ever seem any email or communication containing bad news or warnings of potential bad news, even if you've already responded to it.

That way the students will get the "real" experience. :^)

xDanELx October 18 2005 1:47 PM EDT

Thanks for the inputs. I have already told them about clients not knowing what they would want, but they'll know what they want when they see it (e.g. prototype). So yeah, I am going to be playing "I want everything including a time machine and a portable anti-gravity unit with it", do you want fries with that? :)

Somewhere along the line, I'll be requesting a change to the application so they'll have to do CM as well. I think I'm getting nasty. /me grins evilly

Regarding communication, its going to be hard to do that. I'm in the class! lol...

Stephen October 18 2005 6:42 PM EDT

I'd agree with cernobyl. You play the client, form them into a project team and give them roles ie. Project Manager, Technical Architect, Solution Architect, Lead Developer, Developer. As a client speak only to the PM or SA, and define who they speak to as well. Make the PM write management plans, get the SA and TA to write the high level business and tech specs, get the team lead to write coding standards, etc. etc. Then see how long it takes tham to write the code!

xDanELx October 18 2005 7:05 PM EDT

I honestly wish I can do that Stephen. But these guys are not from a technical background. The last time I did the team thing, it was a disaster. Their lack of knowledge prevents me from assigning those kinds of roles. Problems with the classes include:
1. Half of the class comes in 15-45 minutes late
2. 1-3 people tend to be absent per day (how does groupwork work?)
3. About half comes into the course with no idea what to do in IT! (not joking)
4. When in a group, one works, while the others sleeps/chats/stares/surfs/sms/break etc. Sigh... I've been trying to minimize groups ever since. :P

So far, what I've done is for them to do exercises for pieces of the program (file/db access, date/time manipulation, and number parsing). They're currently working on interviewing me, and creating a project proposal individually. I'm not asking too much for the class I think. Just give them some experience and be able to put together all that they've been "learning" into practice.
This thread is closed to new posts. However, you are welcome to reference it from a new thread; link this with the html <a href="/bboard/q-and-a-fetch-msg.tcl?msg_id=001ZG0">Need help from S/W Project Managers</a>