605.607.81 - Agile Software Development Methods

Computer Science
Fall 2024

Description

This course emphasizes the quick realization of system value through disciplined, iterative, and incremental software development techniques and the elimination of wasteful practices. Students will study the full spectrum of agile methods, including Scrum, Extreme Programming, Lean, Kanban, Dynamic Systems Development Method, and Feature-Driven Development. These methods promote teamwork, rich concise communication, and the frequent delivery of running, tested systems containing the highest-priority stakeholder features. Agile methods are contrasted with common workplace practices and traditional, Waterfall-based methods. Examples of agile adoption in industry are covered, along with scaling methods for large-scale development. Assignments and projects are designed to help students apply agile principles and practices in their own professional or academic context. Additional subthemes in the course include enterprise agility, team dynamics, collaboration, software quality, and metrics for reporting progress.

Expanded Course Description

The Agile Software Development Methods course emphasizes the quick realization of system value through disciplined, iterative and incremental software development techniques and the elimination of wasteful practices. Students will study the full spectrum of Agile Methods, including Scrum, Extreme Programming, Lean, Kanban, Dynamic Systems Development Method, and Feature-driven Development. These methods promote teamwork, rich concise communication, and the frequent delivery of running, tested systems containing the highest priority customer features.  Methods for scaling agile projects (e.g., Scaled Agile Framework, Nexus, Scrum at Scale) will also be covered. Agile methods are contrasted with common workplace practices and traditional methods such as Waterfall, CMMI, and PMI/PMBOK. Aspects of scaling agile methods and the role of systems engineers and systems engineering are also covered, along with an overview of DevSecOps. Examples of agile adoption in industry are discussed. Additional sub-themes in the course will include team dynamics, collaboration, software quality, and metrics for reporting progress.

The instructor will provide a detailed example of a semester-sized project that serves two purposes:  (1) to help students see how to put all of the elements of Scrum together in a project, and (2) to help students get a sense for how to perform their own course project.  Discussion questions and reading assignments also ensure that student's leave the course benefiting from their classmates thoughts and experiences regarding key agile principles and practices.

Instructor

Default placeholder image. No profile image found for William Menner.

William Menner

will.menner@jhuapl.edu

Course Structure

Course materials are divided into modules which can be accessed by clicking Modules on the left menu. A module will have several sections including the overview, lectures / content, learning exercises and assignments (e.g., readings, discussions, and homework papers). You are encouraged to preview all sections of the module before starting. Most modules run for a period of ten (10) days, opening on Sunday and closing on the second following Tuesday.  Extending modules beyond the typical seven days provides students with extra time and flexibility for completing assignments.  Please see the Course Outline for a summary of the modules.  You should also regularly check the Calendar and Assignments areas for due dates.

Course Topics

Course Goals

To arm each student with the knowledge and practical experience that will allow them to apply and benefit from Agile Methods in their professional organizations and projects. These benefits include, but are not limited to:

Course Learning Outcomes (CLOs)

Textbooks

It is my opinion that a good, up-to-date comprehensive book on all agile methods does not exist. A comprehensive treatment of the subject requires delving into many books and web sites along with a good dose of practical experience - the exact process by which the course presentation materials were developed. Thus, the course modules are designed to be sufficient for the student's exploration of this subject. However, the serious student of Agile Methods should consider owning a few good reference books. To this end, I recommend the following optional book(s).

Optional, but highly recommended

Note that the course is not taught from these books. It is taught from the video presentations that are made available to students in the Course Modules. The following books are not necessary to complete the course, but if you could only have one or two books on the subject of Agile Methods, I highly recommend the following books as a great place to start.

Shore, J., & Warden, S. (2021). The Art of Agile Development. Second Edition. Sebastopol, CA: O'Reilly Media, Inc.

ISBN-10: 1492080691 ISBN-13: 978-1492080695

Rubin, K. (2013). Essential Scrum: A Practical Guide to the Most Popular Agile Process.  Addison-Wesley Signature Series (Cohn).

ISBN-10: 0137043295

ISBN-13: 978-0137043293

The Shore & Warden book is based on eXtreme Programming (XP) and I recommend this book for software developers.  The Kenny Rubin book emphasizes Scrum, dealing more with project management - thus, it is recommended for technical leads and managers.  Together, these two books form a reasonably concise treatment of the agile space. 

Textbook information for this course is available online through the appropriate bookstore website: For online courses, search the MBS website at http://ep.jhu.edu/bookstore. 

Note that individual student research is a required component of this course. Research can be conducted using web sites (not limited to those referenced in course materials). In addition, many books that have been written on the topic of agile methods may be available to students via the Sheridan Libraries.

Student Coursework Requirements

Students are strongly encouraged to review the detailed grading rubrics that can be found in Course Resources

It is expected that the class will take approximately 6–9 hours per week (average):

Student coursework requirements consist of the following:

  1. Written Papers (Assignments) (20% of Final Grade Calculation)

There are two distinct components to the assignment requirement. (1) In the first course module, students are required to write a paper that describes their experiences with elements of methodology and reveals problems encountered.  This is critically important, as it provides a basis from which the student can compare and contrast Agile Methods throughout the course. (2) The second component of the assignment requirement involves students writing three mini-research papers (MRPs) on selected Agile Methods presented in the course.  The key learning objective for MRPs involves students finding better ways to perform software development relative to their prior experiences.  To do so, students will perform research on topics chosen from lecture presentations. Students have the flexibility to choose topics that best apply to their interest or situation, but the researched topic must be closely related to the material covered in the identified course module. Research typically involves internet searches or reading from the references to discover published papers, blogs, web articles, portions of books, and other agile materials that allow the student to form a deeper understanding of a particular interest area.

A (minimum) two-to-three page write-up based on this research is required and due approximately 10 days after it is assigned (due dates and times are posted in the assignment). MRPs must be submitted to the instructor by the assigned due date and time by clicking on the assignment item link in the course website. MRPs must not contain any proprietary information.  Note that the topics chosen by the student can also be used in the online discussion forum (see Participation in Online Discussion Forums).

MRPs can be informally written, as long as they (1) stem from lecture topics, (2) form a strong connection between lecture topics and the student’s development experiences, and (3) support this connection via external materials (i.e., research).  MRPs may be written more formally if preferred by the student; however, these papers are not required to be formally written (as if they will be published in a refereed journal).  Although proper English and reference citation is expected, grading elements are concerned more with content than style or punctuation. 

Key aspects of successful mini research papers (MRPs) include (1) an ability to articulate the main points of the research materials used for the paper, and (2) critical thinking on how these points fit or do not fit with your organization, experience, or situation. As many of these papers typically cover specific agile practices, the student may wish to address questions like the following:

 

    • If you are NOT using the practice
      • What aspects of the practice do you believe would be easy to do? Hard? What sounds unnecessary? Why?
      • How does it differ from your previous experiences?
      • What conditions would have to hold for you to use the practice on your project or in your organization? Why?
    • If you are using the practice
      • What do you do differently than the way the practice is described in the lecture or literature? Why?
      • If you followed the practice to the letter, what would happen on your project or in your organization? Why?
      • What one experimental change could you try to provide new insight (good or bad)?

There are several MRP opportunities during the course (see the assignments in the course modules).  The MRPs on Lean and Scrum are mandatory.  You will need to select a third (mandatory) MRP from the following topics:  eXtreme Programming (XP), Kanban, Feature-Driven Development, Dynamic Systems Development Method, or Large-scale Agile / Agile Systems Engineering.  These options for a third mandatory MRP are referred to as the Choose 1 series. You will find entire modules in the course on all of these topics. 

Mini research papers will be evaluated and graded on a scale of 0 to 100. Assignments not submitted (short of the course requirement) will receive a grade of 0, resulting in a poor grade or an incomplete for the course. Late assignments will be reduced by a 10 point penalty per week late (no exceptions without prior coordination with the instructor).  Every attempt will be made to post grades and constructive feedback within one week of the assignment due date.

Your instructor provides additional and specific guidance on MRPs via a detailed grading rubric and communications in the Instructor’s Guidance area of the course website.  Posted on the course website is a long list of references that form a rich set of resources for students preparing mini research papers and online discussion topics.  Students are not restricted to these references, but they should find plenty of material for completing their written and online discussion requirements.

See the MRP Grading Rubric for specific guidance. The rubric is attached to each MRP assignment.  The assignments are found in the Modules and in the Assignments area.  The rubric may also be found in Course Resources.

 

  1. Participation in Online Discussion Forums (20% of Final Grade Calculation)

Student participation in online discussions is imperative for a successful learning experience. Lessons learned from research and past experiences provide the entire class with a broader perspective of course topics. All students are required to participate throughout the semester. The goals of course discussion are to (1) thoroughly examine the topic area, (2) apply critical thinking skills, and (3) establish a shared repository of research material to be used throughout the semester and beyond.

There are two primary components to this student requirement:  (1) Course Module Discussion Questions, and (2) Course Module Reading Discussions.

Most course modules have at least one discussion question.  Although students may respond to as many of these questions (per module) as they desire, students are only required to discuss one of the posed discussion questions in a module.  When more than one question is posed, students have the flexibility or option to choose the question that is of most interest to them. 

Reading assignments are handled in a very similar manner.  For course modules with reading assignments, students are required to read a minimum of one item from the reading list.  Students are then required to discuss the reading in the discussion forum. 

For additional clarity, during modules with a reading assignment and discussion question(s), students will post a minimum of 4 times:  one original post for the selected question, one response to another student regarding their question post, one original post to a reading assignment, and one response to another student about the reading. 

For a given course module, discussion questions and reading discussions typically become available on a Sunday.  Each student is required to make an initial significant post by the following Friday.  Beyond Friday, students are required to respond to at least one of their classmate’s posts by the following Tuesday.  Specific due dates and times can be found in the Agile Student’s Checklist (see Course Resources). 

Please read the detailed grading rubric for online discussion, which is also available in the Course Resources area.  I’ll highlight the spirit of the rubric here.  By "significant" post, I mean: (a) 250 - 300 words (or more), (b) properly referenced, and (c) demonstrating critical thinking skills (opinion should be separated from fact).  Follow-on responses should recognize and comment on the responses of classmates. Follow-on responses can be significant in nature, but do not have to be as long as your initial response.  They should still show critical thinking skills, make connections between different perspectives, and should add value to the discussion.

The Assignments area of the course website contains entries for online discussion forum participation.  This will be the mechanism for providing feedback to students regarding online discussion performance. Insufficient or inappropriate participation will be addressed on an immediate and direct basis.

  1. Individual or Team Project (40% of Final Grade Calculation)

The purpose of the project requirement is to gain hands-on experience applying the agile principles and practices to a problem of the student's interest.  Students must balance the length and meaningfulness of the project against the shorter time constraint of a part-time semester. It's okay to combine this effort with a work project (i.e., a project that is part of a student's job), but proprietary information must not be included.  Student teams may form to work on a course project, but teaming is not necessary. Please read the detailed instructions and guidance, which is available on the course website under Course Project. I will capture the highlights here.

There are three primary components to the course project student requirement:  (1) Project Proposal, (2) Course Project Checkup, and (3) the Final Course Project Submission.

Students are required to submit a short project proposal early in the course. (Yes, you can choose your own project.)  This proposal will require approval by the instructor. Any changes to these proposals during the course will also require approval by the instructor. The approvals are designed to ensure some minimum level of effort and complexity for adequately exercising agile methods.

Next is the Course Project Checkup.  The purpose of the Course Project Checkup is to ensure that students are making progress and for the instructor to provide any corrective advice that may be necessary.  Students submit their agile artifacts and evidence of progress.  In return, they receive constructive guidance for completing their final course project submission.  The checkup is designed to ensure that students maximize the educational benefits of the course project.  Agile projects require regular and steady effort.  Students should begin their project immediately after project proposal approval.

Check the assignments or the Agile Student’s Checklist for specific due dates and times for each component of the Course Project.

  1. Learning Exercises (Quizzes) (20% of Final Grade Calculation)

Based on Peter Brown’s excellent book, Make It Stick: The Science of Successful Learning, course learning exercises (or quizzes) execute what Brown calls retrieval practice – “recalling facts or concepts or events from memory—is a more effective learning strategy than review by rereading. … Retrieval strengthens the memory and interrupts forgetting. A single, simple quiz after reading a text or hearing a lecture produces better learning and remembering than rereading the text or reviewing lecture notes. While the brain is not a muscle that gets stronger with exercise, the neural pathways that make up a body of learning do get stronger, when the memory is retrieved and the learning is practiced. Periodic practice arrests forgetting, strengthens retrieval routes, and is essential for hanging onto the knowledge you want to gain.”

This course prefers the term “Learning Exercise” to “Quiz” to emphasize the positive aspects of this grading element.  Questions are typically multiple choice, multiple answer, or true/false.  Learning exercises are designed to check your understanding and reinforce key agile concepts.

Due dates for Learning Exercises are typically tied to the end of each module.


Grading Policy

Grades will be calculated based on the instructors' judgment applied to each of the grading components described above in the Student Requirements section or in the referenced grading rubrics and according to the percentages listed in the table below. Late coursework will be reduced by a 10 point penalty per week late (no exceptions without prior coordination with the instructor).  I am often perplexed when students do not notify me of some problem at work or at home until after coursework deadlines. This is too late for you to not be penalized. If you show the courtesy of contacting me prior to the deadline, at least we can discuss what might be possible.

For overall final grades, the following is intended to provide a high-level description of the type of student accomplishment associated with each grade level.

A final grade of A indicates achievement of consistent excellence and distinction throughout the course-that is, conspicuous excellence in all aspects of assignments and discussion in every week. The student consistently addresses the critical elements of course topics and shows exceptional insight when applying, evaluating, or contrasting course material.

A final grade of B indicates work that meets all course requirements on a level appropriate for graduate academic work. The student consistently addresses the most important elements of course topics, but does not address all characteristics on which items should be evaluated, compared, or contrasted.

A final grade of C indicates work that satisfies course requirements, but lacks insight into the significant distinctions between the elements of course topics. For example, the student consistently addresses only some of the elements of course topics and excludes critical elements on which course topics or methods should be evaluated, compared, or contrasted.

A final grade of F indicates work that does not satisfy course requirements. The student consistently fails to address the main elements of course content and does not construct valid arguments when evaluating, comparing, or contrasting course topics.

A numerical score between 0 and 100 will be assigned to each student for each of the course’s grading elements based on the instructor's judgment and according to the provided guidance and rubrics. 

Final grades will be determined by the following weighting:

Item

% of Grade

Experiences with Methodology Paper (1) + Mini-Research Papers (3)

20%

Participation in Online Discussion Forums

20%

Lecture Viewing and Learning Exercises (Quizzes)

20%

Individual or Team Project

40%

 

More specifically, final grades are calculated as follows:

20% x Average Written Paper Score +

20% x Participation Score (discussion posts + lecture viewing) +

20% x Aggregate Learning Exercise (Quiz) Score +

10% x Course Project Checkup Score +

30% x Course Project Final Submission


Course Policies

Home research assignments are due at the date and time posted on the website as indicated in the Assignment. Please provide advance notification of any special circumstances (e.g., temporary lack of internet access) that may result in late submissions. Late submissions without justification will result in a degraded score.

Spelling and grammar are not generally graded. However, egregious violations of the rules of the English language will be noted (without specific correction). Consistently poor performance in either spelling or grammar is taken as an indication of poor written communication ability that may detract from your grade.  Some students have found Grammarly to be an effective writing aid.

Academic Policies

Deadlines for Adding, Dropping and Withdrawing from Courses

Students may add a course up to one week after the start of the term for that particular course. Students may drop courses according to the drop deadlines outlined in the EP academic calendar (https://ep.jhu.edu/student-services/academic-calendar/). Between the 6th week of the class and prior to the final withdrawal deadline, a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and withdrew from the course.

Academic Misconduct Policy

All students are required to read, know, and comply with the Johns Hopkins University Krieger School of Arts and Sciences (KSAS) / Whiting School of Engineering (WSE) Procedures for Handling Allegations of Misconduct by Full-Time and Part-Time Graduate Students.

This policy prohibits academic misconduct, including but not limited to the following: cheating or facilitating cheating; plagiarism; reuse of assignments; unauthorized collaboration; alteration of graded assignments; and unfair competition. Course materials (old assignments, texts, or examinations, etc.) should not be shared unless authorized by the course instructor. Any questions related to this policy should be directed to EP’s academic integrity officer at ep-academic-integrity@jhu.edu.

Students with Disabilities - Accommodations and Accessibility

Johns Hopkins University values diversity and inclusion. We are committed to providing welcoming, equitable, and accessible educational experiences for all students. Students with disabilities (including those with psychological conditions, medical conditions and temporary disabilities) can request accommodations for this course by providing an Accommodation Letter issued by Student Disability Services (SDS). Please request accommodations for this course as early as possible to provide time for effective communication and arrangements.

For further information or to start the process of requesting accommodations, please contact Student Disability Services at Engineering for Professionals, ep-disability-svcs@jhu.edu.

Student Conduct Code

The fundamental purpose of the JHU regulation of student conduct is to promote and to protect the health, safety, welfare, property, and rights of all members of the University community as well as to promote the orderly operation of the University and to safeguard its property and facilities. As members of the University community, students accept certain responsibilities which support the educational mission and create an environment in which all students are afforded the same opportunity to succeed academically. 

For a full description of the code please visit the following website: https://studentaffairs.jhu.edu/policies-guidelines/student-code/

Classroom Climate

JHU is committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone has the right to be treated with dignity and respect. Fostering an inclusive climate is important. Research and experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. At no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity. 
 
If you have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to the course instructor directly. Reporting will never impact your course grade. You may also share concerns with your program chair, the Assistant Dean for Diversity and Inclusion, or the Office of Institutional Equity. In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).

Course Auditing

When a student enrolls in an EP course with “audit” status, the student must reach an understanding with the instructor as to what is required to earn the “audit.” If the student does not meet those expectations, the instructor must notify the EP Registration Team [EP-Registration@exchange.johnshopkins.edu] in order for the student to be retroactively dropped or withdrawn from the course (depending on when the "audit" was requested and in accordance with EP registration deadlines). All lecture content will remain accessible to auditing students, but access to all other course material is left to the discretion of the instructor.