Wikimedia blog

News from the Wikimedia Foundation and about the Wikimedia movement

Posts by Arthur Richards

Fundraiser engineering heats up: Sprints 5 & 6 update

The last three weeks have flown by as fundraiser engineering starts to heat up.  Aside from the usual bug fixes and cool new features, we added a new member to the team, made some modifications to our development process and began tackling one of our biggest challenges this year: integrating with a new payment service provider.

Highlights

  • Jeremy Postlethwaite joined the engineering team and is quickly getting up to speed.
  • We had our first ‘tech showcase’, where we demoed all of the functionality we’ve developed to date*. The showcase provides an opportunity for project stakeholders to see progress in near real time, which allows for better decision making as well as more effective change/risk management. This will be a regular part of our sprint wrap-ups.
  • First production-level test of the RapidHtml system, which is very light-weight solution that allows for quick html-based credit card form development and provides template tokens for dynamic form elements. This was tested during last week’s weekly fundraising test, when we tested the efficacy of collecting the donor’s billing information from the landing page rather than on the credit card form.
  • The Mingle engineering team over at ThoughtWorks Studios invited us to visit and see what the their development cycle is like. Seeing what their processes are like proved valuable. It hammered home that ‘agile development‘ is more about the mindset and values found in the Agile Manifesto than about any specific development practices. We will continue to collaborate with their engineering team to share information/ideas and hope to have the opportunity to do so with other engineering teams in the future.

Sprints 5 & 6 wrap up

  • Increased logging of changes that happen in CentralNotice, including interfaces and filters to search and review those changes.
  • Added an API to ContributionTracking which allows us to bypass the interstitial page that a donor gets sent to prior to donating when they choose to donate via PayPal
  • Began abstracting and refactoring DonationInterface (links to current development branch) in preparation for adding an additional payment provider.
  • Bug fixes to the RapidHtml form delivery system in the DonationInterface extension
  • Bug fixes to our contribution auditing framework (which ensures our contribution records in CiviCRM align with accounting, etc.).
  • Ongoing operations work improving resiliency and reliability of the fundraising architecture.

You can view sprint 5 and sprint 6 in Mingle*, and view our notes from the retrospectives.

Sprint 7 kick-off

For Sprint 7, we are going all-in on integrating with Global Collect, a new payment processor which will allow us to take donations in more currencies and with more region-specific payment methods. Work will continue abstracting/refactoring the DonationInterface extension, as well as building a payment notification listener compatible with Global Collect’s ‘Payment Status Communicator’.

Get involved

If you are interested in getting involved, help smash our open bugs and/or visit us on IRC in #wikimedia-fundraising.

* For access to Mingle, log in with username/password of guest/guest.

Arthur Richards
Fundraiser tech lead

2011 Fundraiser Engineering Is Underway!

Engineering efforts for the 2011 annual Wikimedia Foundation fundraiser are underway. This year’s efforts kicked off at the end of May and will be ongoing through the 2011 fundraiser.

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:

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