Agile Methodology
The 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 focus on the processes of how you work on code.
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, managing dependencies, POM file management, AWS deployment are some of the key functions that impact 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 a build and maintain the mechanisms that process data and perform actions like data storage, security, and other server-side functions that you cannot see.
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.
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
- Complete
- Deployed
- Done
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 2 weeks or longer in the classroom. Anytime a sprint lasts longer than a week, there will be a weekly Review Tickets (formative assessment) and concluding with an end of Review Ticket (summative assessment). Sample sprint follows…
- Week 1
- Monday - Sprint Objectives, Scrum Team Planning
- Tuesday - 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 2
- Monday - Sprint Crossover Grading, Scrum Team Planning
- Tuesday - Test Prep Tuesday (Student Led)
- 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…
- 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
- 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.
- 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.
- 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
- Collaboration - 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
- 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
- Technical
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 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 Methodology Diagram, add Team Member roles
- Create a Scrum Board as output of Team Stand-up Meeting
- Build an individual Issue
- Add to PBL vocabulary on your GH Pages