这是现代软件工程课的作业列表, 老师可以根据情况选用, 建议要保证每周都有作业。

团队作业 Team Homework: 适合团队完成的作业

这些作业都要团队的成员互相配合才能完成,  团队可以选出一位同学完成作业的具体写作和发博客部分, 大家可以轮流完成。 一个团队通常由 5-7名队员组成, 因此即使每周都有作业, 也只是团队中一个人要做文字工作, 因此负担不算重。

Team Homework #0: Collect student feedback about SE courses

列出小组成员的简介, 照片等。

收集以前上过普通 软件工程 课的同学的反馈。 主要有以下内容:

上课的课时, 年级。

课程的教材, 讲课方式

课程的实习项目情况

学生每人平均写多少代码

学生对课程的反馈

example:

《现代软件工程》作业1 学长采访

《现代软件工程》作业2- 寻访信息学院同类课程

 

 

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:

现代软件工程讲义 4 方法论 - 事后诸葛亮会议

 

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).