Friends & Family Tweet

For my 10% time project I have decided to look at whether Friends and Family Ratings could be submitted via Twitter.

The idea was that if you’re sat in a GP waiting room you might be tweeting, and if you were shown a particular hashtag(s) then you could use these to tweet a view on the service you’re receiving.

This example could be flawed in several ways, as you’re more likely to want to give an opinion after you’ve actually seen the doctor, not while you’re waiting there…

However I’m going to explore the possibilities and see where it takes us – there may be mileage in integrating with Care Connect so that people can submit real-time ratings, comments or complaints via Twitter. It could be extended beyond Twitter itself to other channels. We could make use of geo-location (thanks Russell) or QR codes (thanks Sean) to enhance the experience.

EDIT – there seems to be appetite for this today
http://www.bbc.co.uk/news/health-24669382

The technical bit

So far I have a basic Gherkin spec which looks like this –

Feature: Grab Tweets By Hashtag
In order to store tweets for processing
Twit can grab tweets with a specified hashtag from twitter

 

Scenario: Grab a new tweet with a hashtag
Given there is a new tweet with the hashtag #nhsfft
When you wait 15 seconds
And you run Twit
Then this tweet should be stored

In the background this automatically posts a tweet from a personal dev account I set up, and then runs a console app (called Twit, right now) which searches twitter for tweets with this hashtag and then stores the tweets in a RavenDB store for future processing. The 15 second pause is there as the tweet wasn’t showing up in search results immediately – this sucks a bit as it slows down the automated test…

RavenDB

The next step is to write a separate process, which takes these stored tweets and posts them to Choices via our comment capture API.

I’m trying to practice what I preach (!) and use a BDD and TDD approach to the coding, with lots of refactoring as I go to ensure the code-base stays simple and clean.

It’s also good for learning – I found that you don’t have to store the NuGet packages  in source control (thanks Steve), and am learning bits and pieces about RavenDB too.

Interacting with Twitter poses some challenges too. I began writing raw requests, but found dealing with OAuth was eating up time (when I just want to get something working) so am now using a couple of .Net components that wrap around the Twitter API. It’s likely that I’ll have to move from using the REST API to the Streaming API too, in order to ensure we don’t miss any tweets.

I’m also learning more about git – it’s only in a local repository at present, but will hopefully be in github soon!

DDD North 2

Went to Developer Developer Developer North 2 the other day. I’d not been to one of these before, but it was free, and local, so seemed like a good option for a bunch of us from work to attend.

I went to the following sessions:

10 Practices that make me the Developer I am today – Garry Shutler

Nice talk to start the day. Nothing ground-breaking, but I was encouraged to be more of a Code Nazi, and reminded that I should really try to learn a new language next year…

The Good, The Bad and The Automated – Paul Stack

Brilliant talk around Continuous Delivery and DevOps. Some amazing stats around how the likes of FaceBook and Amazon deploy up to ~1000 times a day…

We’ve done some good work ourselves with our build scripts, but we really need to work more closely with our Ops team to automate more of the environment set-up. We also just started implementing feature switches, and I think this is something we must make more use of. If we set it up properly we’d all be able to develop in a single Main code branch. Apparently FaceBook have their next six months of features all deployed to production, but all initially turned off using feature switches.

I need to read Jez Humble’s Continuous Delivery and the Dev Ops Cookbook, when it comes out.

BDD – Look Ma! No Frameworks – Gemma Cameron

Lot of familiar stuff about BDD, especially having just finished Gojko’s Specification by Example. Some good points around the importance of using conversations and examples to reach a shared understanding, and ubiquitous language. I like the idea of thinking of the spec as being a reminder for yourself in six months time.

Whilst I agreed with Gemma’s point that learning the right techniques is more important than picking up shiny new tools, to say that all frameworks are bad seemed flawed – especially when the first line of the code sample was

using NUnit.Framework;

JavaScript Sucks and It Doesn’t Matter – Rob Ashton

I think Rob wound a few people up, but I found him pretty amusing. I couldn’t help thinking throughout the talk that he could be Trevor’s evil twin.

Need to check out the zombie and PhantomJS headless browsers for testing.

Event Driven Architectures – Ian Cooper

Good deep dive talk. Reminded me I find this kind of architectural work really interesting…

 

Overall a good day, and I even won a book in the raffle at the end – something about business metrics – there wasn’t much to choose from by the time I got up there…