CMSI 543 / SYEG 557: Homework Assignment #1
General Details
Due Date: Wednesday of week 04
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.
HOWEVER……
- DO NOT share your work between groups. Doing so will count as plagiarism, also
known as
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 Two
- Ch 2, #1: In what ways does self-organization change the
day-to-day life of a developer?
- Ch 2, #3: Why would frequent delivery of working software
make a developer uncomfortable?
- Ch 2, #6: Instead of offering solutions to the team, what
should an Agile manager do?
- Ch 2, #9: How can an Agile manager demonstrate trust in a
team?
- Ch 2, #13: Why might an executive want to change the
priorities for an Agile team immediately?
- Ch 2, #15: What are examples of metrics that drive the
wrong behavior, and why? [give at least 3]
- Ch 2, #19: Why would someone choose to leave the organization
[resign] rather than move to an Agile environment?
- Ch 2, #20: What should be done when an aspect of the Agile
transformation is not working or delivering the desired results?
Problems From Chapter 3
- Ch 3, #1: What are the key themes for Extreme Programming?
- Ch 3, #3: What five activities need to be performed in an
FDD project?
- Ch 3, #4: What four requirement categories are used for DSDM?
- Ch 3, #5: What are the seven principles of Lean software
development?
- Ch 3, #7: What are the four key principles of Kanban?
- Ch 3, #8: Why was
crystal
used to name the Crystal
Family?