Agile Methodology Intro
Agile methodology helps bring out all the good characteristics in group development. The sociology of how an individual and group of individuals work in a Scrum Team using Agile methodology is a key development skill. Often interview questions, for a job interview in the real world, focus on the processes of how you work on code.
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.
- To do/backlog
- In progress
- Code Complete
- Deployed
- 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.