这是现代软件工程课的作业列表, 老师可以根据情况选用, 建议要保证每周都有作业。
团队作业 Team Homework: 适合团队完成的作业
这些作业都要团队的成员互相配合才能完成, 团队可以选出一位同学完成作业的具体写作和发博客部分, 大家可以轮流完成。 一个团队通常由 5-7名队员组成, 因此即使每周都有作业, 也只是团队中一个人要做文字工作, 因此负担不算重。
Team Homework #0: Collect student feedback about SE courses
列出小组成员的简介, 照片等。
收集以前上过普通 软件工程 课的同学的反馈。 主要有以下内容:
上课的课时, 年级。
课程的教材, 讲课方式
课程的实习项目情况
学生每人平均写多少代码
学生对课程的反馈
example:
Team Homework #1: interview past projects
For each team, pick a past Software Engineer Course project (either done by USTC team, or by Tsinghua students), Interview students of that team, read their blogs, and report on your learning, then publish to your team blog.
§ Did they reach their goals in project? how many users do they have?
§ lessons learned from them,
§ and what would you do differently if you were in that team, or if you could re-do the same project from scatch.
§ You can interview by face to face talk, email, phone, or interview their users.
Please post your homework to your homepage.
Deadline: 2nd week
example:
http://www.cnblogs.com/SE-team-2011/archive/2011/02/28/1966921.html
Team homework #2: innovation in new application domains.
Please read books about innovation, and blogs about innovation, e.g. I have several:
http://www.cnblogs.com/xinz/archive/2011/07/09/2102052.html
http://www.cnblogs.com/xinz/archive/2011/07/10/2102310.html
http://www.cnblogs.com/xinz/archive/2011/07/11/2102667.html
I had an old assignment for PKU students: http://www.cnblogs.com/xinz/archive/2011/06/26/2090631.html.
Now I’d like to see you do the same thing with 微博, or 团购. (就是把作业中所有提到 博客 的地方都换成 微博, or 团购), since we have 4 teams, I’d like to see team 1 and 2 pick 微博, team 3 and 4 pick 团购.
Deadline: 8th week
you need to apply accounts, and use these accounts for a period of time in order to have meaningful investigation. So I suggest you start early.
example: 团队作业——微博网站小调查
Team homework #3: how does your team evaluate member’s performance?
Please have a team meeting and decide how your team plan to evaluate each member’s performance.
see this blog for details.
Deadline: 3rd week
Team homework #4: your proposal for your team project
following the NABC format
deadline: 4th week
Team homework #5: spec of you most important feature
PM of each team need to write a blog, sharing the spec of your most important/challenging feature.
what’s is your project NABC?
who is your typical user?
what is the scenario?
deadline: 10th week
Team homework #6: Test Plan and Test Matrix
Write a blog to describe in detail how you’re going to test your software based on scenario and persona
1. your test plan
2. the personas (典型人物) of your software
3. How do you expect different personas (some teams have 3 personas) to use your software? What’s their need and their goals, how your features work together to solve their needs?
4.Your test matrix (测试矩阵)
On what platform, what language, what type of machines, what type of browser, etc. to test your software?
5.What is “exit criteria” (good enough) for your software for beta release?
Hint: focus on the first 5-15 minutes.
Deadline: 11th week
Team homework #7: Alpha/Beta Stage Scrum report (repeat this for Beta Stage)
report the progress of 10 day scrum, each daily report should contain:
a) what was achieved by each person yesterday (list specific work item #)
b) what to do today (list specific work item #)
c) what is blocking each team member?
d) show the “burn down” chart of the team progress.
post this report as a blog, for 10 consecutive days,
Team homework #8: Alpha Release
write a blog post to show your Alpha release
deadline: Alpha release week (recommended: 7th week)
Team homework #9: Alpha Release Postmortem
write a blog to show what the team has learned in the alpha stage. You can use this template to help the discussion:
deadline: 1 week after Alpha Release
Team homework #10: Bug Bash
Each team has released beta version Code Complete. students can test each others’s release.
to do:
a. Team 1 will test team 2’s product
b. Team 2 will test team 3’s
c. Team 3 … 4
d. Team 4 will test team 1’s product
Each team should make their product/site ready for testing before the 14th week
Score: the team logging most bugs will win.
Please read <移山之道>, my blog, or other doc for the guidelines of open a good quality bug.
For bug bash, a bug must meet the following criteria: 1) A subject started with “Bug Bash: …” the subject should summarize the problem. 2) In the body of the bug, report your “steps of reproducing the bug”, a short form is “repro:” 3) then report what do you expect. Start with “expect:” 4) Then report what happened, start with “result: “ If your bug doesn’t meet such criteria, it will not be counted as a “bug bash” bug. |
due date: right after beta Code Complete (12 - 14th week).
Team homework #11: Zero Bug report
Please triage all the bugs, all team members look at each bug and decide one of the following:
Must fix (P1)
Important to fix (P2)
Nice to have (P3)
Won’t fix (for many reasons)
You will use the next several days to fix ALL bugs, and get to 0, then you can have a Zero Bug Build, your product in this build is called Release Candidate 1 (RC1), you then test it to make sure it’s great, if not, you fix more bugs, and have a RC2, RC3, etc.
When you’re sure you got a good enough product, you will turn the RC into a real release.
write a simple blog to show your team has reached Zero Bug. please attach a screen shot of your team project’s bug list (how many P1/2/3 bugs), how many bugs you don’t plan to fix, and why.
Team homework #12: Beta Release
write a blog to show the world that you have released beta product.
deadline: 15th week
Team homework #13: Alpha Release Postmortem
write a blog to show what the team has learned in the alpha stage. You can use this template to help the discussion:
Besides the standard template for Postmortem, each team should also report the following:
1. 每个成员在beta 阶段的实践和alpha 阶段有何改进?
2. 列出每个人具体的改进。
3. 团队在beta 阶段吸取了那些alpha 阶段的经验教训?
4. 3. 12 条敏捷开发的原则中, 团队做得最好和最不好的各列举 2 点。
http://www.cnblogs.com/xinz/archive/2010/12/11/1902849.html
http://www.cnblogs.com/xinz/archive/2010/12/10/1902725.html
http://martinfowler.com/articles/newMethodology.html
5. 对照 The Cathedral and the Bazaar (大教堂和集市), 软件团队的模式 (link) 你的团队开发模式是哪一种, 优势/劣势在哪里?
http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s13.html
deadline: 1 week after Beta Release (16th week)
Team homework #14: Final review (16th week)
a. TA will book a room for students + reviwers.
b. each team need to have app, video recording, spec, etc. ready. (please post these to your blog as well)
c. each team talk to users of your product, and record their feedback (text, audio, video). summarize that as a blog.
c. each team should have real user’s feedback to show how good your product is.