Agile Methodology Introduction


Agile software development uses practices such as pair programming, test-driven development, stand-ups, planning sessions, and sprints. Agile includes the 12 Principles expressed in the Manifesto for Agile Software Development.


💡 FRQ Question 1

Explain how Agile methodology encourages collaboration compared to a traditional "waterfall" approach. Give one example from your own experience (or a hypothetical classroom project).


Roles

To ensure transparency during the sprint the Team should meet daily at the daily scrum (sometimes called a standup). As adaptation for classroom, Team should have a standup meeting for weekly plans, should have assignments for tasks, assignments for integration and deployment.

  • Scrum Master: The scrum master helps to facilitate the sprint by ensuring that an agile framework is followed. He/she is committed to tracking issues and maintaining scrum boards, but should also remain flexible and open to opportunities for the team to improve their workflow.
  • DevOps: DevOps is the combination of cultural philosophies, practices, and tools that increases an team’s ability to deliver applications and services at high velocity: version control, integration, dependency file management (POM file, requirements.txt), AWS and GitHub deployment are some of the key functions that improve velocity.
  • Development Team: The development team can be comprised of all kinds of people including designers, writers, presenters, developers, etc. Two key roles in Web Development are …
    • Frontend Developer: A front-end developer builds the front-end portion of websites and web applications—that is, the part that users actually see and interact with.
    • Backend Developer: Back-end developers build and maintain the mechanisms that process data and perform actions like data storage, security, and other server-side functions that are behind the scenes.
💡 FRQ Question 2

Describe the difference between the Scrum Master and DevOps roles. Why is it important for these roles to remain distinct on a team?


Workload

When planning there is an expectation of time.

  • Individual in Class Time. You should expect 3 to 4 hours of productive classroom work each week.
  • Individual at Home Time. To maintain pace in this class, you should consider a 2 hour coding or design session (weekly) outside of class time.
  • Sprint Calculation Time. 5-6 hours of coding or planning per week per individual, or 20-24 hours per team. If we had a two week Sprint this would be 40-48 hours of work.
  • Key to success. Make great use of time in class. Pair share programming typically provides three time dividend over individual programming when you are learning something new.
💡 FRQ Question 3

If your team has 4 members and runs a 2-week sprint, calculate the total expected workload. How would you balance in-class vs. outside-of-class time?


Issues

Sprint cadences have ideas/issues that are broken into short term work units called tasks. Teacher establishes Sprint time in class schedule.

Scrum Board / GitHub Project / Kanban Style

The Scrum Board contains issues that are assigned to individuals, each of these issues will have tangible deliverable links (code/video/…). Scrum Team will use Scrum Board to understand everyone’s ideas and efforts. This includes individual tasks. Use GitHub Projects add Issues to the board. Issues are placed in columns on a Scrum Board (Kanban) to represent progress. The below columns have been successful in our academic environment.

  1. To do/backlog
  2. In progress
  3. Code Complete
  4. Deployed
  5. Verified
💡 FRQ Question 4

Why is a Kanban board effective for classroom projects? Compare how it might be used differently in a professional software company.


Sprint

Sprint is a period of time that Team uses to plan work and execute work. This includes planning, research, development, deployment, and test. Typically, sprints will be 4 weeks with shorter chekpoints in the classroom. Anytime a sprint lasts longer than a week, there needs to be weekly Review Tickets (formative assessment) and concluding with an end of Sprint Review Ticket (summative assessment). Sample sprint follows…

  • Week 1
    • Monday - Sprint Objectives, Scrum Team Planning
    • Tuesday - College Board Test Prep Tuesday (Student Led)
    • Wednesday - Code, Code, Code
    • Thursday - Tech Talk (Teacher)
    • Friday - Code, Code, Code; Teacher 1 v 2, formative review
    • 2 hours outside of class for project work

  • Week 4
    • Monday - Sprint Crossover Grading, Scrum Team Planning
    • Tuesday - College Board Testing
    • Wednesday - Code, Code, Code
    • Thursday - Tech Talk (Teacher)
    • Friday - Code, Code, Code; Teacher 1 v 4 including Demos/Review Ticket/Peer, summative review
    • 2 hours outside of class for project work
💡 FRQ Question 5

Write a reflection on how sprint structure (daily tasks, weekly reviews, end-of-sprint demos) ensures accountability in a team setting. Give one classroom example.


7 Important Transferable Skills

💡 FRQ Question 6

Pick one of the seven transferable skills and explain how it applies both to Agile teamwork and to another area of your life (sports, hobbies, or other classes).


Assessments / Reviews

During Teacher reviews meetings ( 1 v 2 pair, 1 v 4 team), the pair or team will provide Teacher with an Issues that that will be called a Review Ticket. The issue will be completed, it will reference Tasks Completed and Self/Crossover Score(s). Canvas should be used as a guide to completing a review ticket, make sure you account for everything. Make sure Point total is a the top of ticket, if points are important to you! All assessments will be looking for these 7 elements in your work…


Hacks

Key deliverables of this Tech Talk…

  • Build Team Agile Manifesto, adapt from manifest provided. These points Teachers want to see adapted into your Manifesto: #1,#2,#5,#6,#7,#9,#12
  • Build Team Agile Methodology Diagram, work in Manifesto elements, and add Team Member roles.
  • Every individual should have a development role and a facilitating/devops role(s)… It may be hard to picture everything. Sample: Frontend/JavaScript Events and Action & Scrum Master, Backend/Database & Deployment, Frontend/UX Design & GitHub Branching, Backend/API & Testing.
  • Create Issues and a Scrum Board as output of a Team Stand-up Meeting.
  • Build an individual Issue(s) and link to your Time Box page
  • Add to PBL and Agile vocabulary on your personal GH Pages

💡 FRQ Question 7

Choose one Hack deliverable. Write a plan for how your team would complete it, including specific roles and tools you would use.