Wednesday 2 November 2011

GiveCampUK–one very busy weekend

So the weekend of the 21st of October saw me attending the inaugural Give Camp UK event organised in the main by Paul Stack and Rachel Hawley to provide bespoke software solutions to charities.

The challenge was to be able to create the necessary software during the weekend and if possible get it live for the charities to be able to use.  The event was to start at around 5pm on the Friday night and coding to finish at 12pm on the Sunday when the teams would then present the software they had created to the other teams.

Friday 21st

I travelled into the event with my co-worker Johan Barnard, we had no idea of what we would need to do or what sort of software was needed but we were looking forward to the challenge!

We arrived at UCL just after 4pm and after registering we meet some other developers we knew including our other colleague from Dot Net Solutions, Mark Rendle, and waited for the kick off.

Around 5pm we all made our way through to a lecture theatre, unfortunately Paul was battling the London traffic so wasn’t able to kick off the event but Rachel handled it seamlessly welcoming us to Give Camp and then getting each of the charities to introduce themselves explaining why they were there and what they needed.  Rachel then proceeded to introduce the wildcard project which was to create a OSS CRM system specifically for charities; during the preparation for the event it had come to the attention of both Paul & Rachel that the cost of existing software for this purpose was often beyond what most charities could afford so they wanted to create a free version to help as many charities as possible.

Rachel then introduced the team leads for each of the projects, the roving experts and finished up by asking for people to indicate by show of hands the skills they had so that other people would know who to find if they ran into a problem.

With all the introductions over we then proceeded back to the hall where we would be working for the next couple of days to pick the team that we wanted to work on.  This was a harder decision than it sounds as each team was potentially using different technology to resolve the charities requirements.

In the end all of us from Dot Net Solutions decided to work on the wildcard project which was being lead by Give Camp veteran Kendal Miller and the added bonus was that one of Mark’s previous jobs had been writing CRM software.

Once the team was assembled we quickly made a decision to use github as our source control (which was possibly a decision we make too quickly) and then we set about sorting out what needed to be done using a few notes that Paul had put together as our requirements. This meeting was a little difficult due to the noise level in the hall and some of the team had problems hearing what Kendall and other members of the team were saying. Whilst the team discussed what was needed I pestered Paul for GitHub & LeanKit Kanban access and sorted out creation of necessary user accounts, Kanban card board and coerced Mark to sort the GitHub repo due to his experience through Simple.Data.

It was at this point that GiveCRM was born, originally just the name of the team it soon became the name of the product!

Paul and Rachel's organisation of coffee, soft drinks, tea, etc. was fantastic not to mention the fantastic food that arrived as we were organising who was going to do what in the team.

The team was divided itself into smaller sub-teams to handle the various functionality that we had identified needed to be developed such as data access, admin site, main site and an excel import/export facility to make life easy for the users to get data into and out of the system.

Johan and I took on the challenge of creating the excel import/export as we had recently spiked this sort of functionality whilst in work and so had a head start on the other team members.

It wasn’t long before our decision to use GitHub started to present problems for the team.  It turned out that most people had never used it and soon there was confusion over how to push, pull, branch etc. but we appeared to have sorted that out and started being productive.

Finally about 1am Saturday morning I had to try and get some sleep and so went to set up my air mattress and sleeping bad. Now I usually don’t go camping as I hate it but for Give Camp I was willing to give it a go, unfortunately it didn’t go well, it didn’t go well at all.  It must have been fairly comical to watch as my supposed luxury of an air mattress keep deflating itself which meant I had to pump it up about every hour until I gave up around 7am.

Saturday 22nd

So I had a bad night sleep, but when I came back to the hall where we were working I found several people who hadn’t bothered to sleep at all and had worked all through the night!

I quickly remedied my situation by booking a hotel room for that evening and then cracked on with the code.  By this time we had an excel export working and were finishing a xls import before moving on to being able to handle xlsx.

Breakfast arrived in the form of bacon or sausage sarnies which were quickly devoured by the hungry devs before pushing on.

One thing that was commented on was the fact we were writing tests and pairing but that was just how Johan and I rolled Winking smile as we didn’t have any real UI to test what we were developing, and since this was going to be a long lasting (hopefully) piece of software, we wanted to ensure that the code we wrote was correct.

It became apparent as Saturday progressed that our pain with Git and GitHub was not only still there but if anything growing. People were trying to pull recent changes whilst other pushed and soon we had to call a moratorium on git push/pull to enable the repository to be sorted out.

IMAG0406We identified that the main cause of the pain was changes to solution or project files which then in turn lead to the decision to have a token that you would have to have if you wanted to push any changes to solution or project files, this token took the form of “the pill” which was provided by the Site Doctor.

From that point forward you would frequently hear calls of “who's got the pill?” or “give me the pill I need it!” as the various team members updated the repository.

About midday Johan and I finally pushed working code that would allow the import and export of xls files into the main repo to allow the teams on the admin and user sites to integrate it allowing them to be able to use it.  As soon as we had done so a change was required to the API to make it easier to import the data and provide it in a friendly way to Simple.Data for inserting into the database.

Mid afternoon the altered API was completed and after merging it into the main repository I took a quick break to book into the hotel I had arranged earlier.

When I came back I found the team pushing on and joined Johan in progressing with the xlsx import and export functionality which we worked on for the rest of that day.  Around 11pm the team had a meeting and did a walk through of the demo we would be doing on Sunday to identify where we needed to focus our efforts to get the code done so that it would work.

About 12am I headed back to the hotel to get some sleep leaving some of the guys still furiously coding.

Sunday 23rd

After a good nights sleep I got back to UCL about 8am and with Johan finished and merged the xlsx functionality into the main repo (with a brief pause for a bacon butty for breakfast), with all coding to stop at 12 we only had limited time left to complete our work.

After talking to Kendall it was decided to not worry about implementing a xlsx exporter at this point as there was other more pressing functionality required, such as authorization.

Johan jumped onto that but quickly ran into issues with the way the code had been structured making what we had all believed to be a fairly trivial task more complex and actually in doubt for completion.

I had to leave Johan to that code as the guys using the excel export had discovered and issue that needed to be resolved in relation to the output of the spreadsheet.

We all paused at about 10:30 to walk through the demo again and to decide what we would and wouldn’t work on now to try and ensure a stable product.  It was at this point that the inclusion of authorisation was dropped, whilst we would continue to work on it it would be in a separate branch for inclusion into the main repository after the event.

12 midday quickly arrived and with it the code freeze.  We then sorted out merging the code to the repository and ensuring it all built before downing tools.

At this point we had an admin site that allowed charities to register and import data via excel and a “normal” site that allowed the charities to work out who they want to include in any campaigns by a custom search screen where they can build up the criteria that the members of the charity need to match before exporting to excel to use in word mail merge or outlook mail shot.

Here’s the team that did all this in such a short space of time:

The GiveCRM team
L-R: Anthony Steele , Kim Richmond , Chris Diver , Saqib Shaikh , Robin Minto , Kendall Miller , Adrian Banks , me (Alastair Smith) , Johan Barnard , Mark Rendle , Neil Barnwell , Nathan Gloyn . Photo copyright © Bert Craven 2011. Used with permission.

After some brief photo’s of each team, all attendees and the organisers we all tucked into a fantastic hog roast that Paul had arranged, and it was absolutely fantastic!

We helped tidy up the hall and then all moved to the Cruciform building across the road for the presentations by the various teams on what they had done for their respective charities.

I thought that we had done well to create all the functionality we had but some of the other teams had really excelled, especially Dylan Beattie’s team who had been working with Scene & Heard and had in fact put live on Friday night the functionality that they had requested and once that had worked went back to the charity and said what else do you need and proceeded to complete that by Sunday.  The YouCan Hub also went live that weekend I won’t forget and Dan Elliot’s presentation given in the form of interpretive dance!

There was also a mountain of swag to give out, the sponsors had been really generous and special thanks must go to Charity Technology Trust who provided every attendee with an 80Gb SSD drive.

Summary

I found it a hard weekend, trying to build so much in such a sort space of time, and with me being ill it didn’t make it any easier.

So what have I learned? first up I’m not camping again, next Give Camp I’ll have to sort out accommodation before the event.

Yes I will do it again, I think it provides a great opportunity for the UK development community to help out charities who otherwise wouldn’t be able to afford the software they need.

I fully expect the next Give Camp to run even smoother, this was the first and Paul and Rachel did an absolutely fantastic job of organising it and if there were problems or pitfalls I don’t think the attendees noticed as they handled everything – well done Paul & Rachel!

I’ve registered my interest in next year (inadvertently upsetting Paul with my tweet about it – sorry Paul) and will look forward to hearing more about the event as details are released.

GiveCRM is still being developed and you can get involved over here, please do check us out and see if you can get involved.

Finally - Thanks!

No post about the weekend would be complete if I didn’t include links to all the sponsors and other companies that contributed to Give Camp and helped make it a success:

Sponsors

Companies that contributed

No comments:

Post a Comment