Fundraising tech/Roles and Responsibilities

Director
Focus on the success of the department.
 * Understand the overall goals of the foundation, and how departmental goals fit into the bigger picture. Use that perspective to help the department navigate possible priorities.


 * Help create and prioritize realistic departmental goals.


 * Negotiate for resources and personnel. Represent the department at the foundation level.


 * Understand larger challenges and help drive change at the Product level that would potentially benefit the department

Manager
The Fundraising Tech manager is responsible for leading the people on the team:

Focus on the success of the team and the individuals in it.
 * When there is a job opening, coordinate hiring people that can do the work while enhancing beneficial team dynamics.


 * Understand departmental goals, and how team priorities fit into the bigger picture. Use that perspective to help the team navigate possible priorities.


 * Create and maintain a productive environment for the team to work in


 * Make sure everyone has an understanding of the expectations around their role


 * Reinforce healthy collaboration, ownership, and beneficial team dynamics


 * Pay attention to morale and burnout, support individual team members through emergent issues


 * Identify and address destructive team dynamics


 * Handle performance issues with direct reports, and help keep the team accountable for the goals we have all agreed on


 * Remove blockers, when possible


 * Own the team’s budget


 * Work with direct reports on their personal development


 * Talk through potential career paths with direct reports


 * Help direct reports set individual goals which actively progress toward career goals, or encourage the exploration of options


 * Make sure that the team is communicating appropriately with the outside world. This includes working with other teams that contain stakeholders in a timely manner, reporting to upper management, and publicizing as appropriate to the rest of the world. (Note: I’m not saying the manager does the communication. Just make sure someone is, when it needs to happen)

Tech Lead (Sheepdog)
The Fundraising Tech (Sheepdog)  Tech Lead is responsible for guiding and representing engineering process and goals.
 * Maintains a cohesive picture of what Fundraising Tech does in order to align team  around tech goals and overall direction.


 * Makes sure that the technical direction for all Fundraising code is sound and does not jeopardize any overall team goals.


 * Keeps the team on track with foundation guidelines and best principles, including making our work useful and inviting to the open source community.


 * Engages in technical conversations with the team and has some degree of final say when tech decisions start to go the way of the bike shed.


 * Unblocks issues with other engineering teams, and ensures continued momentum of projects and goals.


 * Distributes knowledge of the systems across the rest of the team


 * Onboarding genie


 * Help get you the resources


 * Rectify single points of failure in terms of product knowledge


 * Accountable for negotiating with Product Manager and stakeholders (i.e. scoping work and helping to make feature choices)

Does NOT:
 * Be aware of the intersection of team dynamics and the expected workflow on specific tech projects
 * Note that you're doing some software engineering, but will have to prioritize "tech lead" responsibilities above all that.
 * Need to be the first responder on every issue
 * Make decisions about fundraising campaigns.


 * Make decisions about new payment product integrations (though can veto for technical reasons).


 * Perform any personnel management


 * Take ownership of projects that already have a "leader"/owner
 * Anyone who takes on a project would be considered the "lead" of that project

Product Manager
The Product Manager is responsible for Fundraising Tech product development.
 * Defines and owns the roadmap for all user-facing Fundraising Tech products.


 * Is accountable for prioritizing the tasks involved in the product development process.


 * Serves as the last word on whether a feature is complete or needs further refinement.


 * Wrangles and solidifies requests from stakeholders before they get to the tech roadmap.


 * Writes requirements around features that make it easy and clear for engineers to implement, in collaboration with stakeholders and engineers.


 * This may also include UI or sourcing designs from others as needed


 * Communicates team progress and achievements to stakeholders.


 * New: Is accountable for the creation and completion of team goals and the support of the advancement team (WMF budget, tools etc.).


 * New: Is accountable for team development such as team building, check-ins, etc.

Does NOT:
 * Write requirements for tech work specifically the backend systems of tech projects.


 * Provide admin assistance or serve as a messenger between Fundraising and Fundraising Tech.


 * Is dedicated to the "what the team does" description and proactively helps

Scrum master (not currently staffed)
The Scrum Master is the primary owner for the team's process. They support the Development Team and Product Owner in execution and planning.
 * Ensures the Development Team adheres to the Agile Manifesto and the tenants of Scrum
 * Serves as coach and facilitator through the process, helping with meetings and communication.
 * Supports the Team's execution by protecting the team from interruptions, removing impediments and coordinating with other teams.
 * Supports the Product Owner in the maintenance of the backlog.
 * Pursues constant improvement in the Team's process and execution.

Mountain goat definition

Does NOT:
 * Prioritize or estimate work
 * Write specifications or user stories
 * Serve as admin for Stakeholders, Product Owner or Team

UX Designer (not currently staffed)
The UX Designer is responsible for internal and external user-facing user interface design and development. Does NOT:
 * Is present at beginning (design) stages of user-facing products to guide the experience from an interaction as well as software design perspective.
 * Continues to support product development as the project evolves and iterates.
 * Designs app frameworks, forms, and UI flows with mockups, visual and (where needed) lightweight prototypes.
 * Pushes user experience across all front-end features to be better.
 * Do graphic design.
 * Make things "pretty" or "shiny".
 * Design banners.
 * Make product decisions.

Software Engineer
Software Engineers on the Fundraising Tech team are full-stack developers and generally are responsible for the following:
 * Keeping the donation pipeline online and functional by technically addressing emergent issues that adversely affect uptime in addition to maintaining confidentiality of donor PII


 * Troubleshoots clunky code, bugs and other issues.


 * communicates with fr-online about maintenance / emergencies


 * Designs and builds reliable, maintainable, secure and reusable code for our tech projects: Donation Interface, Central Notice, Dash, CiviCRM, and internal tools.


 * Designs and builds usable front-end components.


 * Improves test coverage of code and quality of code


 * Works towards open sourcing our components


 * Collaborates with others that use the tools and/or same codebase (internally or externally - e.g CiviCRM or CentralNotice)


 * Participates in team code reviews and design discussions.


 * Works collaboratively with teammates, other teams and technical volunteers to debug, design, build, fix, and deploy code, and coordinate APIs and production setup.


 * Documents software for others to learn from and understand.


 * Continuously learns about new or useful technologies.


 * Coordinates with payment processor technical staff to ensure interoperability


 * Team focus:


 * Train peers to ensure that knowledge of each component is spread across engineers, and retained.  https://www.mediawiki.org/wiki/Fundraising_tech/Training


 * Proactively attends regular team meetings and events


 * Monitor regular team communication channels. Has feedback on their use.


 * Engage in team development such as team building, check-ins, etc.


 * Take main responsibility, individually or with part of the team, for one or more codebases.


 * Participate in the coordination of team activities and goals (meetings, Phab tasks, IRC, etc.)


 * Mentor students and participants in outreach programs who contribute to our codebases.

Operations Engineer

 * Deals with fundraising cluster systems (civicrm, banner log collection, payments systems, development, reporting)


 * Systems architecture, procurement, build, maintenance, scaling


 * System monitoring, on-call duty


 * Fundraising database administration


 * Operations oriented tools for deployment, etc


 * Operations aspects of PCI and other compliance


 * Maintain logs, backups, configuration


 * Interface with Tech Ops for the stuff we use which that group maintains


 * Developer and fundraising user support

Director of Pundraising
The Director of Pundraising is responsible for pun leadership throughout Fundraising Tech.
 * Encourages puns, focusing on the more groan-worthy.
 * Ensures that people are either laughing or rolling their eyes at least 10% of their working life.
 * Maintains the Pundraising funds for beer purchases.