This article is the first in a series of posts that we will make following the completion of our development sprints. We will provide an overview of what happened during the sprint, discuss some of the challenges faced, and highlight our achievements.
This year, the fundraiser engineering team is following agile methodology that came out of an ‘inception’ process facilitated by ThoughtWorks.
During the process, we defined and prioritized the high-level requirements for this year’s engineering efforts, identified pain points in our development process, and strategized solutions to enable the team to quickly respond to the constantly changing needs of the fundraiser at a sustainable pace.
We came up with clearly defined roles and lines of communication for everyone involved in the development process, having daily time-boxed stand-up meetings, two-week long development sprints, and a flexible yet well-defined format for creating user stories and acceptance criteria.
We also resolved to implement unit tests for all new software we develop and generally strive for good code hygiene in an effort to build more resilient and reusable software.
After exploring a myriad of open- and closed-source agile-oriented project management tools to help us coordinate our work, we settled on Mingle. While we would much prefer to use an open-source solution, we settled on this proprietary tool as it much more closely meets our needs than any of the others we explored.
You can log in to Mingle to view our backlog, sprint histories, and sprint progress with:
- Username: guest
- Password: guest
The team this year is comprised of:
- Arthur Richards (Tech lead)
- Katie Horn (Developer)
- Ryan Kaldari (Developer)
- Jeff Green (Operations engineer)
- Ryan Faulkner (Data analyst)
- James Alexander (Business analyst/Product manager)
Sprint 4 wrap up
We just completed our fourth development sprint. Our efforts during this sprint were somewhat hampered by vacation and travel for Wikimania. During this sprint, we:
- Began adding an API for the ContributionTracking extension, which will allow us to seamlessly forward donors to PayPal
- Added filtering mechanisms for campaign and banner logs in CentralNotice, to allow for more easily tracking changes to campaigns and banners.
You can view sprint 4 in Mingle (log in with guest/guest) and read our notes from the retrospective.
Sprint 5 kick off
We are currently exploring the possibility of adding new payment providers for processing donations (in addition to our current providers, PayPal and PayflowPro), in order to increase the currencies available for donations as well as potentially open up new donation methods (e.g. bank transfer).
Adding a new payment provider to the current architecture is a significant engineering challenge, requiring some serious refactoring of the DonationInterface extension, and we are eager to get started. So, we have decided to make sprint 5 a one-week sprint to try and wrap up the unfinished tasks from sprint 4 so that we can kick off engineering efforts to accommodate additional payment providers as soon as possible.
You can view sprint 5 in Mingle (log in with guest/guest).
Upcoming deployments
Pending code review, we will be deploying the following later this week:
- Fixes to CentralNotice that allow banner dismissal by banner category
- CentralNotice enhancements which allow for logging banner settings changes as well as filtering logs by time, user, campaign, and banner
Get involved
If you are interested in getting involved, visit us on IRC in #wikimedia-fundraising.
Arthur Richards
Fundraiser tech lead
Can you help us translate this article?
In order for this article to reach as many people as possible we would like your help. Can you translate this article to get the message out?
Start translation