Agile Methodology


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.


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.

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.

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

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

7 Important Transferable Skills

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…

  1. Creativity Creativity doesn’t necessarily mean you paint or draw or sculpt well. Creativity in education and workplace, in many cases, presents itself in terms of how you approach tasks and solve problems, Do you both inside and outside of the box for solutions? Or, do you stick to a planned system? If you solve even the smallest problem, you’ve demonstrated creativity. This skill scales up: Big problems are enlarged small problems; small problems scaled are big problems.
    • Conceptualize problems and solutions
    • Display foresight
    • Make connections
    • Make intelligent inferences
    • Synthesize ideas and data
  2. Critical thinking Solving complex or abstract problems requires critical thinking, especially when the problems are critical. Not only that, but critical thinking skills also enable the discovery of deficiencies that could cause less than optimal results.
    • The ability to take a step back and look at things more critically and say ‘Where might we have to have gotten this wrong?’ or ‘How might we be able to improve this?’ is critical thinking. IIf you can articulate this skill you will stand out!
    • Critical thinkers head off problems before they arise. And if they do surface, they take them head-on.
  3. Communication Effective communication is the crux of everything you do.. It doesn’t matter how creative or intelligent you are, or how many computer languages you know: If you can’t communicate well, your other skills are meaningless. Students are encouraged to talk about how they were able to bring their teams together.
    • Verbal skills. How do you address an audience in terms they can understand.
    • Listening skills. Learning and understanding without defensiveness.
    • Writing skills. You need to be able to write in such a way that non-experts will understand.
    • Technological communication skills. You should be able to discuss highly technical hard skills in a way appropriate to your audience. Communication details are not the same for all audiences.
  4. Collaboration through Leadership Leadership skills generally encompass communication, problem-solving and managing conflict, relationship building and being able to get people on your team on board with a mission or project. Leaders are big-picture thinkers who take various interests into account when making major decisions. Leaders are responsible for:
    • Delegating responsibility
    • Demonstrating effective time management
    • Initiating new ideas
    • Major decision-making
    • Managing conflict
    • Managing groups
    • Multitasking
    • Teaching and mentoring
  5. Collaboration through Teamwork Individuals that work well with others. This is a important category mentioned in early school. But it applies to High School, College and adults. Trust is the major difference between working alone versus working in groups. And trust can be hard: Some people are skeptical by nature or want to work through an entire project lifecycle solo. But placing trust in an active, dynamic team provides more than just project completion. Teamwork — a sense of community — elevates spirits and improves productivity.
    • Accepting responsibility
    • Making and implementing decisions
    • Managing time wisely
    • Meeting both short- and long-term goals
    • Organizing
    • Setting and meeting deadlines
  6. Researching Research is not a process performed by Teacher, Boss, or some upstream process. Everything you do in Technology requires research. Research is a key part of the lifecycle: changing plans, fluctuating results, and roadblocks require research before anyone can take action. Conversing with team members is a form of research: If you’ve asked a peer’s opinion on a technical matter, you’ve performed research.
    • Analyzing information
    • Brainstorming solutions
    • Delineating needs and requirements
    • Extracting information from data
    • Gathering information
    • Forecasting possible roadblocks
    • Setting goals
    • Solving problems
  7. Technical Ability We live in a tech-heavy world, and you need to understand the tech your project requires. Try to stay current with the many technical advancements on your project. Make sure that you play with the different softwares and platforms that are part of your environment. Be knowledgeable and speak to the technical things that you are learning.
    • Being easy to work with
    • Quick to learn
    • Glad to learn
    • Failing and always willing to try new things
    • Willing to open new doors in case of a drastic oversight

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