A Developers Blog
(If you are looking for what we are up to and what's new with us - Announcements is where you want to go)
How on earth did we get here ?
|March 2011 - A café in Southend Green - Hampstead||
Who cares about the NHS anyway ? Damn it - Looks like I do !
Read an article in the Independent newspaper about how £15bn had been spent on upgrading the NHS I.T. systems and yet had delivered nothing. Some of the contractors responsible for this receive £1m delivery bonuses ? Ongoing infrastructure, networking and other costs will continue to be charged at billions per year for the next decade.
I am slightly irate and frustrated as I know the job in computer terms is easy but there is not much I can do to fix it.
It would be idiotic to take on suppliers of this scale who are so well embedded in the establishment.
I'm a 'banker' - well a programmer \ systems architect who works in 'risk assessment' for banks. Taking on these guys is just plain stupid. Need to stop thinking about it.
I also don't have and can't afford any lobbyists.
Damn, I'm still thinking about it.
|April 2011 - AWS & Azure Cloud services mature. Smartphones actually start getting 'Smart'.||
Software problems annoy me till I solve them and this really, really annoys me.
Having worked with massive databases for over 35 years and seen the costs plummet - a light goes on ! Server costs are only going to drop more but at an exponential rate. Competition in the cloud space is actually going to work and keep driving those prices down. I can't afford 100k servers \ data centres \ 24x7 staff \ security \ HIPAA \ Off-Site backup's and nobody would believe me even if I did.
Maybe - just maybe it's possible to compete on infrastructure with these huge I.T. contractors who have Government lobbyists and a surplus of cash. Anything they can do, I know I can do better and MUCH cheaper in the cloud. Based on their current success rate, that's a given.
Mobile API's and platforms start to stabilise and get ridiculously fast - GB's of RAM and multi-core cpu's become normal on phones. Moores law again is only going to make the devices cheaper and as they are consumer devices the price is going to plummet. There is just a chance that this might work.
|May 2011 - Maybe I can do something||
It's a bit like a red rag to a bull.
I can now buy server power for a few pounds that 5 years ago would have cost millions. The phones owned by users are becoming the desktop PC's - BYOD is happening and nobody can stop it. The only problem is the network - I can't cable or 'Wi-Fi up' the NHS. I just need to solve that small problem. Oh wait a minute !
|June 2011 - Re-playable Audit trails and a bit of UTC||
UTC is great for putting data back together
In the late 90's whilst working with Databases before we had 'Always-On' \ failover cluster technology I was working as a programmer in one of the first Call-Centre's. When the server went down, 500 operators stopped work. They didn't have to stop if we had occasionally connected clients. I figured out a way of solving this with a kind of 'Turing Machine' on the clients. We never developed the system - nobody thought it would work - except me.
|July 2011 - July 2012 - Occasionally Connected||
A Turing machine with a UTC twist ?
I'm lucky - I'm from a generation of analyst programmers that got to design whole systems, write the code and take responsibility if the system worked or not. We also got to work in many industries and with many languages :- Cobol, Algol, Fortran, George 3, DOS, PDP-11 Basic, x86 Assembler, Motorola 68000 assembler, Poly Forth, C++, .Net, Node.js, Java, HTML, Transact and Ted Codd is a hero and I actually understand Leslie Lamport. Maybe I can do this.
Nobody had managed to get 'occasionally connected' to work well. Nokia's offline maps were on a pedestal that delivered a perfect user experience - it worked where ever and whenever if you were connected or not. Everything should work like this. Maps however are GPS data - not logic or objects. We needed to add patients, treatments, record vitals and issue instructions to other members in the team even when we were off-grid.
I somehow just knew 'occasionally connected' with objects was possible and with some very, very basic code in the small hours one morning, some magic happened and it just came together and worked. It was 'proof of concept' code but importantly it worked with objects and logic. Leslie Lamport is a genius and the result is ‘State Machine replication in distributed computing’.
|July 2012 - 2013 - 'Works' is not good enough and at this point it might not even work at all.||
90% of the time will be spent on the last 10% - It's so very, very true
Whilst it might have worked, getting the algorithms to make it work efficiently was another thing - You could just download the entire data set each time and the just use the delta - slow, too much bandwidth - a bad idea. That was not going to work. It took another 18 months to get the algorithms tuned right and super efficient. I must have re-engineered it at least 6 times from the ground up before getting it right. The transactions are now measured in bytes - that's bytes - not kilobytes. I'm stunned at how much 'change' you can effect with this small amount of data.
At this point, the scary thing was that after 3 years invested in making this work, it could still have failed. I was on the right track but luck played a part in nailing it. I quit my day job.
|July 2013 - 2014 - The eureka moment (or year).||
It works !
In software development just occasionally you write something where the sum parts of the code takes on a life of it's own. Even though you wrote it, when the code is doing 'it's thing', you still stand back and think - Wow - That's cool ! You understand intimately how it works on one level but when it's working in multiples and in parallel you still think 'How the heck is it doing that?'
I set up 20 simulated software clients and got them to create new objects and then update and change the objects but each of them do this 10 times a second - thousands and thousands of random 'transactions'. Low and behold after 20 minutes of doing this, every client knew what every other client had done and each held an identical copy of the objects. Each also knew the order the changes had been made in. Perfect replicas but distributed remotely and that worked when they were connected to the network or not - 'occasionally connected' - Still seems like magic and makes me smile to this day. It's like a killer card trick.
|2014 - Now - Slap some 'lippy' on it and make it sing.||
The API is there but the interface... the easy bit ? Right.
All the code is custom, smooth scrolling timelines, context sensitive menus.
If a job is worth doing, lets do it right ! Unfortunately 'Right' is not easy and takes another 18 months.
One Tuesday - Sometime after 'tea' in August 2016 - She's 'cooked'
Cooked - Baked - Done
My friends like it, the beta testers like it, the Dr's like it and I like it. Now lets see what real people think ?
I'm reliably informed and experience tells me that if I though the hard work was over, it only really just started and one quote comes to mind :-
"If I'd known at the beginning just how hard this was going to be, I'd never have started in the first place". It's true.
No holidays or weekends off - pretty much 14+ hrs per day - 7 days a week for 3 years and no pay with still no guarantees anyone will use it.
Those are the old days right ?
We must have learnt lessons ?
Nothing Changes !
19th Jan 2016 Another 50m
20th Jan 2016 Another 117m
11th July 2016 Another 200m
8th Dec 2015 - Another 5bn
2nd July 2015 Another 40m
18th Sept 2013 Another 10bn
22nd Sept 2011 A mere 12bn - It's only money !
Seems a bit like 'If you do it right and make it work, you can't be asked back again to make some more money the second or third time'. Fail and you will make more money. This is the bad side of capitalism where failure is rewarded.
It is our sincere hope that AAA can and will make a difference. When we started this, what we wanted to do was not possible and had never been done before. We took a risk and put our money where our skill was.
Plugging AAA into a national database and medics or patients downloading their details or a patient list onto a mobile device is not difficult. We could start work on that tomorrow - Honestly.
The bottom line is that we hope we have 'raised the bar' - It's no longer good enough to get paid when the work you produce and your system has unequivocally failed.
AAA works - Download it, try it, use it and see if it works for you. It's not perfect but we WILL improve it.
We do expect to be paid for our work but here's the new bit - only if what we do works.
That should not be a refreshing perspective.