Tuesday, July 31, 2012

Dev4good 2012 deconstructed - part 2

Please, please, please listen! I've got one or two things to say. 

I have been writing code of some description since 2000 and would consider myself fairly knowledgeable when it comes to UI design, user interactions etc. I am realistic and know that I couldn't design my way out of a paper bag and that there are always better ways to do things...
And I guess most developers think the same, we all code our systems to be designed around the functions we build and the specifications we are given...

My way of thinking was about to be beaten with a stick (probably with a few rusty nails stuck in it).

Stwike him, Centuwion. Stwike him vewy wuffly!

Picture the setting (this isn't me), its 230am on a Sunday morning, you have been coding a project since 11am the previous morning and you turn the developer across the table and say 'something just isn't right'. The UX consultant who has been trying to tell everyone in the team about something called 'stakeholder', behavior, touch points for the last 15 hours turns and says "Boys I have an idea".
Queue 3 mini coopers, a bus going over the alps, or at least - 3 developers a super smart UX consultant and a whiteboard....

As I mentioned, I wasn't actually in the scene above (a lot of literary licence was used), I called in right towards the end (heading for what would turn out to be an incredibly uncomfortable bean bag) just to say goodnight, only to be told "Craig, Amy has just told us we don't need an IT solution for the Gaza project". Bearing in mind the gaza team had already split and it was nearly 3am, I thought what the hell this could be interesting.
Amy went through her presentation and I went from being completely shattered to being completely awake, everything she was talking about made sense. It appeared we had all missed the 'human' aspect of the problem and looking at the problem from a different angle (not the developer 'must write code' angle) meant the solution was extremely simple - we need somewhere for people to meet and share information.
This was where I dropped a bombshell, 'why dont you just do a mashup?'. Use the data feeds from all of the other projects, plus blogs etc and create a place for people to see the information they need to see.
The Gaza1 team came in as well to say they had realised that their solution was not going to work, mainly for technical reasons. They had framework issues and were stuck, everyone discussed options and they headed back to try some new options.

After an hour of discussing the different approaches of developer and designers I went to bed, feeling enlightened.

I've been here five years, they only hung me the right way up yesterday.

It will probably sound very cheesy, but the early morning lesson really struck home. I am reading the Nail it, then scale it book at the moment and there is a lot of talk about doing the minimum right first. You build a minimum feature set first and seeing what people think/need before adding more to it, this is exactly what the teams should be doing (lightbulb moment), thinking as a developer you always build to the end specification and would never (rarely) remove functionality just to get a build/release.
However thinking about the human problems and behaviours of the stakeholders you very quickly realise that actually most of the functionality in the spec is down to what you (or they) think they need not what they need.

This would prove to be a valuable lesson that I think nearly everyone learnt over the weekend, all for different reasons

Two days to dismantle the entire apparatus of the Roman Imperialist State

I digress, the morning started slowly, actually I think it was more like Saturday, just became Sunday so there was no real start and everyone just got up and carried on.
More coffee, monster energy, coca-cola was drank while the teams started on the home straight.

Wednesday, July 11, 2012

Dev4good 2012 deconstructed - part 1

Life of Dev4good 2012 - part 1

I have to admit there are a few grey spots from the dev4good weekend, I think the lack of sleep and overdoses of caffeine, taurine and sugar are probably the reason or a middle aged brain or a bit of both, anyway here is my dev4good, deconstructed.

I sometimes hang awake at night dreaming of...

On the 7th of July at 8am I wandered up from Charing Cross station to 101 St Martins Lane (mozSpace London) to begin dev4good 2012. As ever when I run events I like to get there really early, more out of a weird recurring dream that I sleep in and missed my own event, than anything else.
I am always apprehensive about how many people actually turn up, I had 57 registered but with 4 other hack events within a 20 mile radius it was a busy weekend for developers.
I had everything organised, from badges indicating the skills of the wearer (developer, designer, other) to chilled beer and energy drinks. 

But what had I forgotten?
This when the fear (F**k Everything And Run) kicks in, the nervous energy and adrenalin start pumping….
Thankfully people started to arrive, massive relief and more adrenalin (wuick flash back to Waynes World - if you book them they will come). John from Mozilla let us in and the fun began.

The early starters were given jobs while I headed to Tesco to pick up breakfast. All I had to pick up was 80 pastries to go with the Lavazza coffee we had been given. However the staff at Tesco had an issue with this and kept asking me how I was going to carry 80 pastries, “in a bag” I kept saying but they still couldn’t comprehend the purchase.
Anyway after much packing of pastries I got back to mozSpace to find a few more people getting ready to go drinking the freshly brewed coffee. Still not the 50 or so people I was expecting, but by this stage I had forgot the numbers problem, we had enough for 1 solid team and that’s all you need for a good hack.
We waited for a bit longer than I had wanted to, but everyone was happily chatting and meeting the other geeks, just on 30 people had turned up - stoked!

Welease the dewelopers

After Intros from me, the Givey Team (Dave and Nick), Mozilla (John) and Iyas who runs Hope and Play, plus a quick cameo from the naked guy out of friends at the window across the courtyard kicked the weekend off.

As you will see only one charity had a representative, this might be down to me not communicating the importance of this as well as I should (note to try harder next year) and to be honest it was something I was initially concerned about. This worry was quickly dispelled while listening to Iyas talk about his recent trip to Gaza, how bad it really is on the ground and what we could to do help. 
I remembered that we are working on problems ‘seeded’ by charities and the more input the charities have in front of the teams the bigger the chance our projects will come to solving the ‘real’ problems, more on this later.
I have to admit some of things I used in my opening speech may have had a bigger impact on the weekend than I had anticipated (in a good a way I hope).
Things that come to mind “if you are in a team and are not doing anything constructive, leave and join a team that needs you”, “last year teams wasted a lot time on trying to make an existing platform do something that it wasn’t designed to do, it might be quicker make it from scratch than to rebuild existing code” or “use the skills you have already, focus on your strengths and use them, learn where you can and teach where you can, but remember time is limited”...

What have the Developers ever done for us?

The goal for each team was to produce and demo a mvp (minimal viable product) in front of everyone else, sounds simple enough doesn’t it?
Queue the mission impossible theme tune.
So project intros were complete and now the scariest part of any hack event…. Will the people do anything when the gun goes off?

Another fear moment (probably a recurring dream about this too), everyone has heard the pitches and then decide to not take part and leave.  However I forgot I had a room full of some seriously smart and passionate people and after running around, trying to find the man size post-it notes, I came back to find the organic process of a group of individuals turning into teams.

Popular people front - splitters

This is a process that if you haven’t seen is quite cool to watch, it’s hard to explain but is a bit like the opposite of the Big Bang or like kids playing with play dough.

You start with a few people talking and others walking past overhear something interesting and get pulled in, if the conversation isn’t what they want they head off on a different trajectory. The bigger the group the more gravitational pull they seem to have on others, then all of a sudden the group will disband and people start to wander off again.
This continues until the groups stop disbanding and regrouping…. A very weird herd/pack thing I guess.
This happened last year as well, so there must be an anthropological reason for how/why this happens, whatever it is, it is very cool to watch.
The teams then headed off and started the first stint before food arrived, time for me to put on the “client” or “devil’s advocate” hat on. For the next couple of hours I bounced in and out of projects when asked to (or not) listen to their ideas, pitches and try and help them to keep their ideas within the rough specs we have. I think I was helping out but it is hard to tell this early on in the day, I am sure I pissed a few people off. My goal of the weekend was to make sure everyone built something that worked end-to-end, I think people enjoy to complete something and show it off.

Otters noses, badgers spleens

Food arrived at 12 on the dot, there was enough food to feed a small army.  The herds snuck out from the safety of their territories (air conditioned in some cases) to eat at the watering hole then moved back to continue working. There was a serious buzz around the place and nearly everyone seemed to be locked in to whatever they had been tasked with.

More splitters, the developers front of tower.js

This is where the fun began, there had been much talk about platforms, frameworks etc, with some very strong ideas about which is best for this and that. One of the teams had already split in 2 by this time, so we had Gaza1 and Gaza2, this was down to platform/framework choice I think.
I have to admit there had been murmurings from some, those mumbles of wrong framework, bad ideas etc and a few people had moved out of teams to help elsewhere.
Something I really liked (it took some balls to drop out of a team) and not something people can do at their day job - “Sorry boss I don’t like the database structure we are using and I am going to head off and work in the canteen this afternoon, ok, thanks, bye

One of the best quotes of the weekend has to have come from one of these particular incidents - “They all went for a cigarette, but never came back”.

The aliens/ufo scene

Between lunch and dinner there is a large grey spot in my memory, I do remember bouncing in and out of scrum meetings, making fresh pots of coffee, but not much a lot of detail. There seemed to be a lot of work going on and a lot of people sitting at their laptops with headphones on, just getting on with it.

Solidarity brothers, solidarity

Pizza arrived and this is where the teams had their first proper long break of the day, everyone came together for a some chill out time before heading back to the keyboards - dedication!

It was about this stage that I realised what I had asked everyone to do, last year the goal was to have  a good weekend hacking and have some fun. This year they had to build something that worked, then show it off and as any developer knows #failure is not an option when it comes to a live demo (Win95 and a USB device anyone).
I also had a chance to check out the project whiteboards and reflect on what had been planned by each team, they all had pretty big ideas and were way above what I thought was possible (proof of the skills and knowledge of the teams taking part).

I'm not the Messiah! Will you please listen?

There was a lot of coffee, monster energy drank over the next 12 hours, plus a tiny piece of sleep and in the early hours of Sunday morning, something close to a geek revelation took place for 2 developers (and me).

Crucifixion party, one cross each, by the left, wait for it...

big thanks to