SE 3020: Software Development Lab II, 2021-22

Instructors: Dr. Rob Hasker, Dr. Jonathon Magaña, Dr. Josiah Yoder

Office hours:

Dr. Hasker: See his home page, https://faculty-web.msoe.edu/hasker/
Dr. Magaña: See Blackboard
Dr. Yoder: See his home page, https://faculty-web.msoe.edu/yoder/current

Course Description: This is the second course in the software development laboratory sequence, in which students work on large-scale software projects. As students develop their individual and team skills, they can take on additional responsibilities on project teams.

Prereq: SE 3010

Format: 2 lecture hours, 2 lab hours, 3 credits

There is no textbook for this course.

Course Learning Outcomes: On successful completion of this course, the student will be able to

Grading

  Percentage  
Sprint 1  20%
Sprint 2  20%
Sprint 3  20%
Contribution Report  25%
Peer evaluation   5%
Presentation  10%
Total: 100%

The MSOE grading scale will be used, though higher grades may be awarded to individual students if it increases fairness. In addition, successfully demonstrating mastery of course outcomes is a prerequisite for a passing grade. Failing to meaningfully participate in the project may result in being administratively dropped from the course.

For an A in the course, you must make significant contributions. This includes both technical and process contributions. Process contributions include project tracking, reviewing deliverables, providing leadership in an aspect, etc. Technical contributions include designs, implementations, tests, and other activities leading to a viable product. Both are required of all students; simply writing code is not sufficient. To engage effectively in both and get an A, you will need to log at least 90 hours for the term. This must be distributed evenly throughout the term, meaning you need to plan on approximately 10 hours per week on the project. If this is too much time, you may wish to postpone engaging in SDL. Students can put in more time without penalty, but the 90 hours (spread evenly) per term is sufficient except when a student is explicitly informed they need to do more to address inadequate performance. While 90 can be considered the minimum number of hours, it is not the maximum. However, working more than 90 hours does not, in itself, increase the likelihood of earning an A.

Team Formation

As for SE 3010, the course coordinator and instructor will determine team and project assignments. Generally a student will continue participating on the same team as SE 3010, but this may change if necessary. Reasons for changes include (but are not limited to) students studying abroad, students failing any of the courses in the sequence, and product owners determining a project is finished.

Schedule

The term is broken into three sprints and one "flex" week. In the winter, the suggested schedule is
Weeks Sprint Objectives
1-3 22w1
  • Update the team's Definition of Done
  • Allocate PBIs. Have no more than two PBIs open at any one time.
  • Use GitLab's Merge Request feature to pull every major improvement into dev, even if the full PBI is not complete.
  • Complete PBIs and have them validated by the POP.
At the end of the sprint,
  • Close all completed branches.
  • Merge dev to master.
  • Meet with your PO and demonstrate your progress. This demonstration must be out of the master branch. Identify priorities for the next sprint.
  • If you cannot perform the sprint review with the PO in a timely fashion, do a review with your instructor and organizing a meeting with your PO as soon as you can.
  • Conduct a sprint retrospective capturing concrete, measurable process improvements.
  • Produce a sprint report capturing each team member's contribution in terms of completed work and hours logged as well as the retrospective. A format for this is provided.
  • Consider whether roles should be rotated. The product owner proxy will generally not change, but other roles should change at least once every other sprint.
4-6 22w2 Perform the same activities as for sprint 22w1. If you have not yet done so, publish your system where your client can access it so they can perform initial testing and provide useful user feedback. Rotate roles if appropriate.
7-9 22w3 Perform the same activities as for sprint 22w1.
10 Flex Week
  • Meet with the product owner and identify priorities for the next sprint. Be especially careful to identify when the system can be published for more general use, at least as a prototype.
  • Review the project's Readme file and other documentation to ensure each document is current.
  • Complete any outstanding PBIs or strengthen testing as appropriate.
  • Perform exploratory testing and document standing issues.
11 Finals
  • Each team presents their work. Everyone should be involved in presenting the material.
  • Practice your presentation to ensure it fits within the time allotment.
  • All presented functionality must be built from the project's master branch and, where relevant, must be presented from a working server.
  • The presentation this term should focus on delivered functionality, discuss changes to architecture, and discuss lessons learned. As before, ensure the demonstration is early in the presentation.
  • Students must be good audience members with laptops closed.
  • Each student writes a contribution report capturing their accomplishments, both in terms of completed PBIs and pull requests as well as indirect contributions such as showing leadership, completing their roles, and identifying errors when reviewing pull requests and other resources. The report is also to include the total hours spent on the project in the quarter (with useful breakdowns).
Sprint grades are broken into 50% for documented effort and process and 50% for other deliverables.

Attendance and Logging Time

Teamwork is critical to SDL, so attendance is mandatory and missing results in grade penalties as determined by circumstances and your instructor's policies. The exceptions are:

When you do miss, send email to your team and your instructor briefly stating the reason for the absence and describing how you will make up the lost time with a verifiable activity.

Tardiness also impacts the team. Arriving more than 5 minutes late three times will result in a penalty, and arriving an hour late may be treated as an absence. Likewise, leaving before the end of the class time will also be penalized.

Log time to tasks on the appropriate story board. Log all time to the closest five minutes, and be sure the description distinguishes the work from other time logs. Log all time, both in class and outside, including non-development tasks as well as time researching solutions and time writing code. Failing to include a description will likely result in the time being ignored. Unless you really do stay approximately 120 minutes, the lab time should be logged as 110 or 115 minutes. If you find a mistake in how you entered the time within a few days, fix it. If many days pass before you find the error, talk to your instructor.

As a special case, log all time to sprint ceremonies (planning, reviews, retrospectives, etc.) to a ceremonies PBI. Leave that PBI in the backlog. Standups get special treatment: since they should be quick, you can log that time to the first task you work on for the day.

Communication

Communication is particularly important in SDL. It is expected that your team will establish effective communication channels (Slack, Snapchat, email, or whatever). Discuss with your instructor whether they wish to be included in those communications.

All students are expected to subscribe to coursewide Slack channels. Many announcements will be made there and nowhere else. Instructors will monitor Slack and email on a daily basis, though some instructors may not be able to monitor them on weekends. Students are expected to do the same.

Integrity

Students are expected to engage in this course ethically and with integrity. It is expected you will work with your peers, however it is unacceptable to submit the work of your peers as your own. Fabricating evidence of participation (through misleading time logs, grossly inaccurate status reports, claims to have reviewed documents without examining them, etc.) are forms of academic dishonesty and may result in penalties discussed in the Policy on Student Integrity in the catalog.

Additional Notes

Students with documented disabilities, chronic medication conditions and mental health concerns: MSOE provides services to make reasonable accommodations available. If you are a student who requires or anticipates the need for accommodations, please contact Student Accessibility Services Office at 414-277-7281, by email at moureau@msoe.edu, or in person at K250 to discuss appropriate accommodations and eligibility requirements.