Guiding Bitgold’s Development with PXP

One of the courses I’m studying currently requires me to complete a test case of applying a particular software development methodology to one of my projects. Today, I chose to apply PXP (Personal eXtreme Programming) to Bitgold.

PXP

I was interested in applying XP to Bitgold if possible, after doing a little reading about it last night and finding that its process is simple. There’s a major problem though – XP is tailored for multiple-person development teams – conversely, I’m Bitgold’s sole developer. So I did some research to see if XP could be altered for one-person projects, and found Agarwal and Umpress’ introductive paper for PXP.

PXP is a derivate of XP, made to be used by single-person teams. It features some key areas of XP like testing, factoring and integration, although it reduces features like pair programming. The process starts with user stories, which are then broken into features, which are broken into tasks at the start of each iteration. Generally the most important features are prioritised to be coded, refactored, integrated, and tested very often. The PXP white paper (referenced earlier) details the PXP process.

I made a Trello page this morning, to organise each of these items. The page reads basically from left to right in sequential order of when the work will be completed. Basically, iteration tasks will be added, and they will progress to the right through each of the phases until they conclude in the release phase. I’ve created user stories for Bitgold, and broke them down into features and tasks. Although I’d created requirements prior to using PXP, it was easy to backstep a little to transition my current work into the PXP process.

Bitgold’s Trello page is a high level description of my workload – it is supplemented with external documents that describe the work in more detail. I completed some test documentation after putting the Trello page together.

Test Documentation

PXP, like XP, requires a large amount of testing (possibly more than what’s ideal for a single developer…). Prior to starting a development iteration, I had to create assurance test plans for validating that Bitgold has the required required features after a few iterations have passed. I created such test plans for each of the features, which can be found at Bitgold’s GitHub repo.

Having these done means that I can now resume development! So I’ll start working on linking Bitgold and JSON.net up after the weekend, as part of my first iteration. PXP has been very easy to use with my project so far – hopefully it doesn’t create any issues later on!