Due Date: Tuesday of week 13 [week after Spring Break]
The following guidelines are expected for all homework submissions:
- All homework must be typed. Homework which is not typed will be returned ungraded and will be
subject to the late homework guidelines as set out on the syllabus page. PLEASE DO NOT scribble
something on lined paper and rip it out of your spiral notebook — hanging chads went out
with the presidential election in 2000.
- I don't care too much about what font you use or how large your margins are; however, you might
want to check out a monospaced font for
typing code, as it will be easier
to see the indentations.
- Speaking of indenting, PLEASE DON'T USE TABS TO INDENT YOUR CODE. Tabs
can often get interpreted differently by different computers and applications, and could make code
that is nicely formatted on your computer look "all over the map" on my computer or printer.
USE SPACES INSTEAD. You can set up almost every modern text editor to insert spaces
whenever you press the TAB key, or you can simply pound the spacebar.
- Work with a partner. This mimics an industry code development model called "pair
programming" which is part of the Extreme Programming software development method. Feel free to
collaborate in your pairs as much as you want, preferably doing the entire assignment together.
- DO NOT share your work between groups. Doing so will count as plagiarism, also
cheating. If you wish to discuss solutions with another group over
coffee in the Lair, that's fine as long as it is kept at the conceptual level, but each group needs
to turn in its own version of the solutions.
- In addition, DO NOT DIVIDE UP THE WORK on your homework assignments. You MUST work on
the entire assignment together. Failure to do so will cost you a letter grade on the assignment, so it
is enlightened self-interest to do things this way.
- You only need to turn in one copy of the assignment per group.
- You should submit your homework in a GitHub repository. MAKE SURE YOUR GITHUB REPO IS PRIVATE, AND BE
SURE TO INCLUDE YOUR PROFESSOR AS A COLLABORATOR.
Problems From Chapter Seven
- Ch 7, #1: Why is it better to find defects earlier rather
than later in the product development cycle?
- Ch 7, #3: How does test-driven development improve code quality?
- Ch 7, #5: What is the benefit of decoupling code?
- Ch 7, #6: What risk may you encounter when doing regression testing?
- Ch 7, #9: What is the difference between acceptance and system
- Ch 7, #11: How is customer testing differetn in Agile development
Problems From Chapter Eight
- Ch 8, #1: How is Kanban different from the other Agile methodologies,
- Ch 8, #2: What do the columns on a typical Kanban board represent?
- Ch 8, #6: What are
information radiators, and how do they help
- Ch 8, #7: What is the difference between a burn-up chart and a burn-down
- Ch 8, #13: What does the daily stand-up meeting provide to the team
beyond simply giving status?
- Ch 8, #15: Why is it important for a team to hold a retrospective
- Ch 8, #16: What is the best indicator of success in Agile?
- Ch 8, #18: If the daily stand-up meeting allows you to assess the
effectiveness of the sprint and the Sprint demo allows you to assess the effectiveness of the
product, what are you assessing in the Sprint retrospective?
- Ch 8, #19: How is stakeholder feedback collected in the Sprint review,
and what is done with that feedback?
Problems From Chapter Nine
- Ch 9, #6: What is an example of a product differentiator for frozen
- Ch 9, #8: Should developers participate in focus groups? Why or
- Ch 9, #9: When Agile development efforts are committed to the marketplace
through marketing and sales, how can the development team maintain flexibility?
- Ch 9, #12: How does a working agreement influence teamwork?
- Ch 9, #14: What are some examples of silos in the marketing organization?
- Ch 9, #17: Are there any departments or institutions that would not
benefit from Agile? Please explain your answer.
- Ch 9, #19: Since the Agile principles are easy to understand, does that
mean they are easy to implement? Please explain your answer.