Senior design consists of a three quarter sequence in which students work in teams of five students (typically) to propose, implement, test, document, and deploy an engineering project. During this sequence, students will develop a project from inception to completion using sound engineering practices. Senior design is an opportunity for students to demonstrate mastery of their discipline as well as an opportunity for additional mentoring.
Teams are formed in the spring of the junior year. Each team must work with its advisor to develop two project proposals before the end of the spring quarter. A team may determine over the summer that it would prefer to work on something different. Such changes must receive advisor approval prior to the start of the fall quarter.
The senior design project is a culminating educational experience. It is an opportunity to showcase your expertise in a number of disciple areas. Essentially you are building a project with the expectation that it will be released to the market in May. The development will involve a number of Sprints, evolving the product from conception to final release.
What makes a great project proposal?
First, it should be interesting to you. You will be dedicating nine months of effort to this, so it should be something that captivates you and your teammates.
There should be some element of invention or novelty. What value does this end product deliver? Most likely, it should not be a reimplementation of an existing system unless it involves a truly novel implementation.
It should be challenging to your team. Of course, it should be doable, but there should be stretch goals inherent in the project that will test your skills developed over the past three years.
You should be able to pitch your idea as if you are pitching a new product for investment. Think: market, problem, opportunity, solution, and approach.
If you are a software engineering student, it should exercise most of the elements of software engineering:
- Requirements - Definition and analysis including selecting at least one stakeholder. You will need to become familiar with the domain.
- Software Architecture and Modeling - It should involve some interesting elements of software system design, including throughtful exploration of the architeture to support iterations.
- Design - Strategies employed, such as the use of patterns and allowances for evolution of the product.
- Testing - Building it to be testable and testing it. How good is the automation of the testing and was it considered from the beginning?
- Tools - Good use of development, testing, and management tools (including Jira).
- Experimentation and Prototyping - Applied to unknown technology to improve knowledge and reduce risks. As the architecture is developed and key mechanisms are determined, what risks arise and how will you address them in the development process?
- Third Party Components - Demonstrate your skill in discovering and employing third party components.
- Documentation - This takes many forms including continuous documentation such as, notes associated with tasks that our updated regularly, weekly reviews, sprint reviews, and other artifacts such as a technology report, discussions of where you achieved specific course outcomes, project presentations, poster, and final report.
If you are a computer engineering student, you will exercise a different set of elements that are core to computer engineering.
In general, senior design does not meet as a class. Exceptions are for information sessions, guest speakers, and team presentations. Otherwise, teams work independently and meet weekly with their advisor. Meeting times should be established by the start of each quarter. Each student is expected to spend at least 10 hours per week working on senior design (including meetings). Students should refer to the Schedule Conflict Policy if they need to schedule another course that is scheduled to meet at the same time as senior design.
Teams will use the Scrum framework to develop their project. The first few weeks of the fall quarter will be used to more clearly define the scope of the project by developing a produc backlog, developing experiments and prototypes to reduce risks and justify technology choices. Beginning in week 4 of the fall quarter teams will begin two 3-week sprints. A sprint consists of:
- team committing to delivering a working product
- team building the working product
- team demonstrating the working product (at the scheduled advisor meeting)
- stakeholder(s) providing feedback to the team during the demonstration
The winter and spring quarters will consist of three sprints each.
A Scrum planning meeting will take place with the team, stakeholder(s), and the advisor at the beginning of each sprint. It is critical that the team have a well groomed backlog. Sub-cases for the highest priority product backlog items should be fleshed out prior to the meeting.
The execution of the sprint will consist of the completion of sub-cases to achieve the increment (working product) for the sprint. Team members must document relevant information about each case by editing the case to add pertinent information. Advisor meetings for the two weeks in the middle of a sprint will focus on discussing team progress, identify successes and problems, and, if necessary, make adjustments to the plan. Prior to each weekly meeting with their advisor, the team must prepare a status report.
At the end of each sprint, the team must evaluate its progress regarding the sprint. A sprint retrospective document is generated at the end of each sprint to report on the effectiveness of the team and to document any changes to the way it works.
Teams will use JIRA Agile for project management and communication. A story is created for each product backlog item. Tasks are created for each task that must be accomplished to complete the product backlog item. Once a sprint begins, all PBIs to be completed during the sprint are associated with the sprint and the tasks are assigned time estimates. Each task is assigned to one team member who is responsible for its completion. Each team member logs time against his/her assigned tasks and updates the task with comments describing the work completed whenever time is logged. You should log the time to the task immediately after working on the task in order to communicate your progress to your team and advisor. All work required to complete the senior design project should be planned within JIRA Agile. If a team member finds that (s)he is doing work on senior design that is not associated with any of tasks in JIRA Agile, the team should determine either that the work is necessary (and then add a task for it) or that the work is not necessary (and then stop doing that work). As a result, there may be some non-PBI tasks for tracking time associated with things like meetings.
Developing proficiency with process tools is an important part of managing a project. Therefore, a significant portion of each member's senior design grade is based on the individual's ability to effectively use the tools. The tasks, tasks notes, repository commit logs, build history, and pull requests and subsequent feedback all provide useful information for determining each individual's level of contribution to the senior design project. All are encouraged to spend time early in the fall quarter becoming proficient with the tools.
Throughout the senior design experience teams will be required to submit project deliverables. The complete list of deliverables will vary depending on the phase and nature of the project. For example, status reports, updated product backlog, presentations, and peer evaluations are consistent requirements in all quarters.
Each team is responsible for creating a set of wiki pages that documents the project.
Dates and Grading
Got a question? Check the FAQ first. If it's not addressed, or the answer is unclear, please ask.
Last modified: Wednesday, 27-Apr-2016 13:49:50 CDT