Product Management & Agile at Blueprint
This article explores how effective communication and streamlined meetings, leveraging platforms like Discord and GitHub (focusing on Issues and Project Boards) within Agile Project Methodology, can significantly enhance software development collaboration. Our goal is to provide strategies to optimize these tools, improving team efficiency and project outcomes.
Teamwork makes the dream work
Using Agile/Scrum in Blueprint Teams
Agile
Agile Methodology is a project management approach used primarily in software development. It focuses on delivering value through flexible, iterative progress rather than following a fixed plan. Agile emphasizes collaboration, customer feedback, and small, rapid releases of software.
Key Concepts:
- Iterative Development: Software is developed in small pieces, allowing for frequent feedback and the ability to adapt to changes quickly.
- Collaboration: Teams work closely with each other and with stakeholders, fostering better communication and more tailored solutions.
- Flexibility: Agile teams are ready to respond to changes in requirements, technology, and methods at any point in the project.
Scrum
Scrum is a framework that implements Agile principles. It provides a structured, yet flexible way to manage projects.
Key Concepts:
- Roles: Scrum defines specific roles - Product Owner, Scrum Master, and Development Team - each with its own responsibilities.
-
Product Owner: The Product Owner is responsible for maximizing the value of the product resulting from the work of the Development Team. This role involves managing the product backlog, defining product features, and prioritizing work based on business value.
-
Scrum Master: The Scrum Master serves as a facilitator and coach for the Scrum Team, ensuring that Scrum practices are followed. The Scrum Master helps remove impediments that obstruct the team's progress and works to ensure a smooth, productive environment for the team.
-
Development Team: The Development Team consists of professionals who do the work of delivering a potentially releasable Increment of "Done" product at the end of each Sprint. Development Teams are cross-functional, meaning the members have all the skills necessary to create a product Increment, and they are self-organizing, with no one (not even the Scrum Master) telling the team how to turn Product Backlog into Increments.
-
- Sprints: Work is divided into sprints, typically 2-4 week periods, during which a potentially shippable product increment is developed.
- Scrum Events: Regular meetings such as Sprint Planning, Daily Stand-up, Sprint Review, and Sprint Retrospective help teams to plan, coordinate, review, and adjust their work.
-
Sprint Planning: A meeting at the beginning of each Sprint where the team selects work from the product backlog to commit to completing during the Sprint. The outcome is a Sprint Goal and a Sprint Backlog.
-
Daily Scrum (Stand-Up): A short, daily meeting (typically 15 minutes) where each team member discusses what they did the previous day, what they will do today, and any impediments to progress.
-
Sprint Review: Held at the end of each Sprint to inspect the Increment and adapt the Product Backlog if needed. This is a time for the Scrum Team and stakeholders to collaborate about what was done in the Sprint.
-
Sprint Retrospective: Occurs after the Sprint Review and before the next Sprint Planning. This is a meeting for the Scrum Team to reflect on their processes and make improvements for the next Sprint.
-
This is a VERY brief and general introduction to Agile and Scrum. Please refer to the additional resources for more information.
How Blueprint Developers can Follow These Principles and Frameworks (Scrumprint)
Given the unique structure of Blueprint, adhering strictly to a traditional Scrum framework is not feasible for us. Our commitment to academic and extracurricular activities, alongside the absence of a standard 9-5 work schedule, necessitates a more flexible, hybrid approach to project management. Consequently, we are tasked with tailoring industry-standard methodologies to accommodate the diverse schedules of our student team members. Recognizing the dynamic nature of this adaptation, we remain open to continuous feedback and anticipate that our approach will evolve over time. The following outlines an adapted framework we encourage teams to implement
Roles
-
Technical Lead/Scrumprint Master: Oversees the project's technical direction and ensures adherence to the Blueprint Agile practices. Acts as a facilitator for the team, assisting with obstacle removal and process guidance.
-
Product Manager: Similar to the Product Owner role in Scrum, manages the product backlog, crafts user stories, and ensures tasks align with the non-profit organization's (NPO) requirements.
-
Designer: Collaborates closely with the Product Manager and NPO to iterate on designs throughout the project lifecycle.
-
Development Team: Comprises students who execute tasks, contribute to design and implementation, and participate in Blueprint Agile events.
Events
-
Weekly In-Person/Discord Meeting: This meeting serves as a hybrid of Sprint Planning and Stand-Up, allowing for flexible attendance based on members' availability. The focus is on setting the direction for the week, addressing any immediate questions, and briefly sharing updates.
-
Async Stand-Ups: Conducted twice a week via a designated communication platform (e.g., Discord). Team members update on what they've done, plan to do, and any blockers. This method ensures everyone stays informed and can contribute asynchronously.
-
Sprint Review: Held bi-weekly, coinciding with every second in-person meeting. This event is for showcasing work done, gathering feedback from the NPO, and discussing adjustments. It's an opportunity for reflection and celebration of progress.
-
Sprint Planning: Follows immediately after the Sprint Review during the same meeting. The team selects items from the backlog to focus on for the next two weeks, ensuring alignment with the NPO's needs and team capacity
Goals and Additions:
-
Limit Meetings: Restrict to one team meeting per week and one NPO meeting every two weeks to minimize disruption to student schedules. Use this time efficiently to cover planning, review, and immediate actions.
-
Office Hours: Held weekly by the Eboard Blueprint, providing an open forum for questions, guidance, and additional support outside of scheduled meetings.
-
Continuous Feedback Loop: Encourage ongoing feedback through a dedicated channel or form.
The next sections will show how tools like GitHub and Discord can be used to encourage this framework.
Joining & Interacting in Discord
Discord is our primary mode of communication used for project teams, tech teams, and general blueprint announcements. You can join Discord using this link: Blueprint Discord Link. Upon joining the server, you will be prompted to change your username to [FIRSTNAME] [LASTNAME] ['YEAR]. For example: "Atilla Duck '25". There are a lot of users on the Discord, so please do this as soon as possible.
If you are on a Project Team or a Tech Team project we kindly ask that you leave the notifications on for your respective channel.
Make Use of Discord Features
There are several features that you can make use of in Discord to help organize channels.
Pinning Messages: Use this to save the most important messages in your channel for quick access. This can include Project Proposal Documents, Links to specific resources, or important channel guidelines that you want to save in the channel.
Threads: Use threads to manage conversations on a specific topic. Perhaps their is a bug that someone needs help with or the Project Leader would like to collect team members opinions on a new feature. Using threads leaves the main channel less cluttered. Threads can be used for the Async Stand up events from the Scrumprint framework.
@People: Use the @ feature in your messages to get the attention of specific users or roles. Do not be afraid to make use of this feature if you need help with something or if someone has been unresponsive. "@here" is a good way to get the attention of everyone in a respective channel.
Reactions: It's respectful to acknowledge your teammates messages! Thankfully discord makes this easy so you can throw a quick thumbs up without having to type anything.
Webhooks
Webhooks make it easy way to get automated messages and data updates sent to a text channel in your server. Each project team and tech team project channel will be accompanied by another "-hooks" channel. This channel connects to the team's repository on GitHub. Whenever someone makes a contribution (commits code, opens a Pull Request (PR), comments on an issue, etc.) the "-hooks" channel will be notified. Currently, the Webhooks are configured to output the results of certain tests whenever you commit code. This makes it easy for you to see the activity going on in your project!
GitHub Project Boards & Issues
GitHub offers more than just hosting our repositories. There are two features that we can make use of to help organize tasks and adhere to the Scrumprint framework.
Project Boards
Project Boards on GitHub offer a dynamic and intuitive interface for managing the various stages of our tasks. By creating Kanban boards, we can streamline our workflow into three fundamental columns, which simplifies the process of tracking progress throughout the development cycle. This method not only aids in maintaining organization but also ensures that our team remains aligned with the goals of each sprint. Here's how Project Boards can be utilized effectively:
-
Visual Task Management: The Kanban board's visual nature allows team members to quickly understand the status of tasks at a glance, facilitating easier prioritization and allocation of work.
-
Guided Standups: Utilizing the board during standups helps the team focus on progress, identify bottlenecks early, and discuss solutions for any impediments, making these meetings more efficient and productive.
-
Sprint Planning and Review: During sprint planning, the board serves as a tool for selecting and assigning new tasks for the upcoming sprint, based on the team's capacity and project priorities. For sprint reviews, it provides a clear overview of what was accomplished, enabling a constructive discussion on completed work and areas for improvement.
Follow this guide to create a project.
Issues
GitHub Issues are a powerful tool within GitHub's ecosystem, designed to facilitate collaboration and communication on projects hosted on the platform. They serve as a primary method for tracking various tasks related to software development, including bug reports, feature requests, enhancements, and general questions or discussions. Here's a closer look at how GitHub Issues can be utilized:
-
Task Tracking and Organization: Issues provide a structured way to track work items, allowing team members to categorize tasks through labels, assignees, and milestones. This organization aids in prioritizing work and keeping projects on schedule.
-
Collaboration: They offer a centralized platform for discussion, where team members can comment, share insights, provide updates, and collaborate effectively on solutions. This open dialogue ensures that everyone involved has a clear understanding of the issue at hand and the proposed resolutions.
-
Integration with Project Boards: GitHub Issues can be seamlessly integrated with GitHub Project Boards, enhancing project management capabilities. This integration allows for the visual representation of tasks within the project's workflow, facilitating better planning and tracking of progress.
-
Customization: GitHub allows for the customization of labels and milestones, enabling teams to tailor their issue-tracking process to fit their specific project needs and workflows. Custom labels can categorize issues by type, priority, or any other criteria relevant to the project.
Issues should be descriptive and it should be clear what the requirements and scope of the task are.
Additional Resources
- GBM #3_ Product Manager Workshop (1).pdf
- 125 Project Management Buzzwords
- Principles Behind the Agile Manifesto
- The Scrum Framework
- Product Manager Discord
- Agile vs. Scrum: What’s the Difference?
- Scrum Team Roles & Responsibilities
-
User Story Mapping: Discover the Whole Story, Build the Right Product Book by Jeff Patton [BOOK]
-
Continuous Discovery Habits by Teresa Torres [BOOK]
-
Inspired by Marty Cagan [BOOK]
-
Sprint by Jake Knapp et l [BOOK]
No Comments