NHS.UK frontend
github.com
github.com
Compare and contrast that to every private sector project I've worked on (for global household names none the less) and this sort of thoughtfulness and consideration simply is not compatible with the business objectives, and as such is the first thing to get the chop, leading to code bases that grow increasingly incoherent over time and deliver flakey solutions at best.
The next time anyone tries to sell me on the notion that the public sector can't do anything as well as the private sector, this is what I'll point them to. They wont understand what they're looking at of course, but that won't make them any less wrong.
What if I try to sell you on the notion that getting quality this high out of the public sector is extremely unlikely?
We actually have figured out how to run public sector software projects successfully. It's not a mystery anymore.
There's a lot of barriers still to practicing agile service design within the constraints of most government organizations, but good results are consistent where you can carve out the space to implement it.
Look at "digital services" teams at every level of gov:
- UK Originals: https://gds.blog.gov.uk/ - US Stormers: https://18f.gsa.gov/ - US Normers: https://www.usds.gov/
- CA State Child Welfare: https://cwds.ca.gov/ - CA Benefits Enrollment: https://www.getcalfresh.org/ - CA Digital Services: https://github.com/CDTgithub/DigitalServiceOpportunities - MA Digital Services: https://www.mass.gov/orgs/digital-services
- Philadelphia: https://www.phila.gov/departments/office-of-open-data-and-di... - San Francisco: https://digitalservices.sfgov.org/ - NYC: https://playbook.cityofnewyork.us/ - Boston: https://www.boston.gov/departments/digital-team
The cost to build something in the private sector is almost always cheaper than asking government employees to do it. The public sector "didn't build it" like you said, but if they had, it would have been cheaper. This is almost always the case.
In the private sector, shareholders take money out of the system in the form of profit. Something that costs £X in labour and consumables must be charged at £X+Y% in order to make that happen and still give money to investors. If they can do it cheaper, they still charge £X+Y%, and give the surplus to the shareholders.
In the public sector, there is no shareholder. If it costs £X in labour and consumables, then the cost to the public purse is £X. If they manage to do it cheaper, then that money remains in the system and can be used to either improve the offering, or subsidise another project.
Public sector workers are also often paid considerably less than their private sector peers, and departments are often highly restricted in their ability to pay market rates for specialist employees.
Although the total benefits package for public sector workers has historically been equal to or better than their private sector peers, this has typically been due to Final Salary pensions, which have been mostly phased out in favour of Career Average or even Defined Contribution pensions, all without a corresponding increase in salary.
(I worked to set up a UK public sector website back in 2004/05. We cut our costs by 90% - genuinely, 90% - by bringing all development in-house rather than using private sector contractors. I do not believe your assertions to be consistently true in the UK.)
We have a full-time and fully-staffed team comprising developers, designers, user researchers, product/project managers etc. focussed purely on this piece of work.
In our role working to deliver health content to the general public we take very seriously the need for our content to be accessible to users and we invest accordingly. This frontend library is something we hope to push to other healthcare providers as part of a wider drive towards standards adoption.
None of this work has come cheap, but in the public sector we work to very strict budgets (and some would say lower pay) and I would say the public are getting very good value for money here. (We are judged by and required to provide proof of "benefits realisation".)
NHS Digital's procurement processes are tight and focused. They have an expert in-house team of developers and delivery managers, and they only used us on where we could accelerate the project.
As a business owner, I would have liked a bigger contract. As a tax-payer and frequent user of the NHS, I'm very happy with their efficiency.
For people who don't know the NHS budget is approx £130bn (~$165bn US), they are a huge organisation that provides healthcare to 66 million people.
It's impressive.
They gotta fill a request for proposal in order to outsource a project, then there can be multiple rounds of back and forth to review and revise proposals. That includes quite a few documents, covering requirements among many other things.
Also, extensively planning and specifying requirements ahead of time is exactly the opposite of how you pull off delivering well-designed public UX like this.
In the public space you inherently never have a single person who can call all the shots, because organizationally you're accountable to all of the public. Orgs have to be set up to carry on operations resiliently outside having a controlled lineage of management. How you do things is far more directly and heavily influenced by legislation, and that landscape is constantly shifting over the course of your project.
BY FAR the private sector is where engineers can enjoy far more luxury.
In private sector I have met a lot more understanding with regards to managing risk in a smart and scalable way.
It is astounding how high the quality of software can be, if what the software is meant to do is known before it's written.
- Odd technology choices. It took me a long time to figure out what .njk files were.
- Misapplication of popular technologies. They're using webpack for... something? But most of the actual bundling is done by hand with gulp, and a lot of the JavaScript is operating in the global scope.
- Overselling. It's just a bunch of scss with some mostly-HTML components.
Nunjucks is a very popular JS templating language (more or less a straight port of the even more popular jinja2) - it's not an odd choice at all.
Edit:
Also, are you serious that GDS should consider front end developers their constituents and not their users?
https://www.google.com/search?client=firefox-b-ab&q=.njk+fil... I mean how long are talking here? 5s or 2 days?.
But you have to then ask for the specifics of how this project came about. You have to dive into how the Government Digital Service build a culture which could not just develop this product but could spread to other organizations.
The Soviets sent the first rocket to space in 1961. Twenty-one years later the first private space company launched its rocket using repurposed government technology.
There is no doubt that governments can do things. They are, after all, just groups of people; the same as private enterprises.
But while the Soviets were launching rockets, their citizens waited hours in line for their day's rations.
"The accepted norm is that the Soviet woman daily spends two hours in line, seven days a week, daily going through double the gauntlet that the American housewife undergoes at her supermarket once, maybe twice a week." Hedrick Smith.
When you marshal the entirety of society towards a goal you can accomplish great things. But always at a cost.
When a private business makes a terrible app, I can sleep soundly at night knowing I never gave anything up for that app's creation. If I see a beautiful, well-constructed, publicly funded app, I might be pleased at the attention to detail and admire the construction of the thing. But I have to wonder, what did I give up in return? How many people with broken arms waited in an over-burdened system for the prestige of a beautiful website?
The problem isn't that the government can or can not. Its the choice to do or do not. Its the opportunity cost to the society that poisons the government's action.
Also, your tax dollars are absolutely being handed over to private organisations in one way or another. Either through subsidies, tax breaks, welfare, economic initiatives, or direct investment.
Yes but you've missed the point. Those billions have turned out to be a net positive for the world. But at the time, why should someone dying of cancer fund a literal moonshot? Why should we antagonize the nuclear armed Soviets over a dead rock? Why this, why that?
> Also, your tax dollars are absolutely being handed over to private organisations in one way or another.
Then it incurs the same penalties! The opportunity cost argument still applies. "Why did we fund this business over that business?"
The majority of private businesses have no exclusive government support. They are free to fail with zero impact to society. This means their apps are crappier but no one had to suffer to make it happen.
Eventually, it became apparent to even the most out-of-touch politicians and civil servants that the weird nerds talking about "agile" and "lean" might have a point. The Government Digital Service proved that a small team could get huge results by using the right methodologies; we haven't looked back since.
https://www.theguardian.com/society/2013/sep/18/nhs-records-...
GDS does really good work. Not denying that, and it's awesome to see that in the public sector. However when your only(!) tool is a web app, every project starts looking like a thumb.
It should also be noted that others like the MoD have had even bigger successes than GDS, that simply cannot be publicised.
Even the NHS Digital Service is struggling with spend. The still-born Type 1 Diabetes project from a year or so ago a is prime example of writing off months of work without a word.
Yeah - I used money claim online this year to take a non paying client to court. It was a really nasty experience - the login is needlessly complex and had I not made manual notes I wouldn't have been able to log back in. Awful.
Or the old one? https://www.moneyclaim.gov.uk/web/mcol/welcome
PCOL dates from 2006 (I should know, I helped work on it, mostly performance testing using CompuWare to locate & iron out horrible Hibernate-on-Oracle issues...)
All of this was delivered by EDS, completely pre-dates the GDS stuff and shouldn't be considered anything to do with it. :)
Both Government Gateway and GOV.UK Verify aren't great. Verify seems be slightly better, if you can pick a decent verification company.
I suspect you're familiar with neither the scope nor scenarios and clients that Government Gateway services. Verify only does SAML. No ADFS/WS-* (so no support for the NHS, for example), no Chip & PIN (both Identify and Respond, on Java and .NET silicon -- this is important because provisioning), and assorted side-scenarios required by the security cluster.
The idea of a verification company is laughable. Forgive me. Digital identity systems must be designed so the disclosure of identifying information is limited to parties having a necessary and justifiable place in a given identity relationship (see law 3 of the laws of identity, https://www.identityblog.com/stories/2005/05/13/TheLawsOfIde...).
What justifiable role does a bank or credit agency play when I require meds for an STD? Amongst some very, very personal and private transactions some of us make? A credit agency's purpose is to provide a credit rating, and not to verify identity.
Also note that many banks and credit verification agencies GDS proposes are HQ'd outside the EU, which makes Verify impossible to use by many organisations in the UK - and can therefore never replace the Government Gateway.
Verify's technical shortcomings can be built out and addresed. The use of commercial, unjustifiable verification companies with poor security records to boot (Experian, HSBC, and so on) cannot. This is Verify's single biggest failing.
https://en.wikipedia.org/wiki/NHS_Connecting_for_Health#Crit...
On the other hands, I have seen more huge project failures on the public sector jobs than on private sector projects. Those elbow chainsaw people often catch fundamental flaws earlier than their public sector counterparts.
Given the choice I would pick to work on public sector projects than private sector simply because the much lower stress level and that you have more time to produce quality;Like the NHS guys has been able to on this project.
Disclosure: I have spent the last 18 years working as systems architect / technical leads on countless large government and private sector projects (web/intranet)
I largely agree with what you have written above, however things work very differently now in NHS Digital.
Every piece of work we embark upon is based on strict requirements from a commissioning body (typically NHS England or Public Health England) and is managed tightly according to budget and demonstrated realised benefits.
We have a highly capable layer of delivery managers who help translate and interpret these "business goals" into things which our agile teams of developers can work towards.
It's not perfect, but we're improving all the time. If we fail then the money taps get turned off quickly, and we move onto something else.
Except very few companies in the private sector knows what ADFS or even token based authentication is. So we have to sell them schooling in how to build what is essentially basic user authentication.
The internal services we get to build are also miles ahead of anything you’ll see in the Danish private sector. Probably because we can move a lot faster because we don’t expect our customers to pay for our updates. Our goal is to provide efficient, secure and stable software at the lowest price, and if that means we move things to the cloud, then that’s what we’ll do as soon as possible.
That’s the positive side. The negative side is the big failures, and we certainly have those. Mostly on a national basis, but that doesn’t make the seriousness of them any less severe.
They are a cultural descendant of GDS, who make GOV.UK amongst other things: https://gds.blog.gov.uk/about/
All of GOV.UK is open source in a similar way: https://github.com/alphagov
(Source: I worked for GDS.)
Because they have the right approach to software development and the services were so far behind and costing so much it couldn't really be objected to as a strategy.
The other big factor was that all 3 major political parties agreed at the time and it wasn't blocked. It was moved to focus on the needs of citizens owned by civil servants rather than the convenience of government and farmed out.
In the US we also have a new in house team of coders, led, I believe by xoogler Matt Cutts that has been doing an excellent job as far as I have heard.
I think the key here is that outsourcing your tech is rarely superior to highering talent in house.
The process seemed fairly open. The government send requests for proposals and contracting companies can bid. There is no trick involved. I found the requirements to be surprisingly well written on a few I had to read.
In fact one of the first things I reported is the banner at the top of the page saying "BETA This is a new service - your feedback will help us to improve it" - but it does nothing - it's just text, and there's no way of giving feedback. I reported that 3+ weeks ago and it's still useless.
How about the very-less-than-perfect UI? If they'd done even the most basic user testing they would have found lots of problems already, and that they didn't do such testing shows they weren't looking for problems (which is not a UI problem, it's a systemic dev/management problem). I even sent them a link on how to do UI testing, of course that's not been acknowledged.
And the UI will happily hide info you need. Or log you out, losing all the info you've entered because you've not hit the Save button. It's a bit pathetic - I'm a DB guy but I know more about front end usability than they do. And I really doubt they have a test suite of any comprehensiveness.
I could go on - I know the staff at the job centers also have had at least one issue (small but avoidable), I was there when it happened.
For a service intended for use by millions of people, it's not acceptable, not even close.
Shall I go on? I can give specifics, and the total time I've been interacting with this system is probably a couple of hours tops, and I've run into so much.
They could certainly do with improving its accessibility, though. I wish there was some way to subscribe to it. I have to use a third party service to create an RSS feed from it.
I will pass on your comments about RSS to our architect (who gets to decide these things).
We do syndicate all of our content via a service which requires registration. Maybe you could try this as a workaround?
The content on Behind the Headlines is fantastic, but the page seems a bit unloved. If I search for "health news" on Google it doesn't appear at all (I checked the first 7 pages of results). The SEO for the individual articles is admittedly much better. I think I personally found the page by accident when I was looking for some news about the NHS.
So, I'm not sure what I'd recommend (other than perhaps an email newsletter for the less technically-inclined). It seems like you have a real diamond in the rough there with great content which is let down by presentation.
They look the same and they look great! Also they are functional, lightweight, accessible, etc. One pearl in the sea of bad design that is the Web :)
That was published pretty long ago, like a year or two.
NHS Digital are working on a "Standards Library" encompassing how to go about building healthcare websites and services (as opposed to generic government services) which encompasses not only the design of a website but also the whole lifecycle of the service.
We still have work to do, but I think 2019 will see the release and adoption of our ideas across the UK!
Interesting fact I heard from one of their UX people - they write their html using a "screenreader first" paradigm. Eg they make the html work for screenreaders and the style it to work on mobile devices, and then desktop computers. It's a great approach for accessibility.
Website scores an F for Fail on mozilla's
https://observatory.mozilla.org/analyze/www.nhs.uk
hosting platform is not secure :
https://internet.nl/site/www.nhs.uk/431794/
email is not secure :
https://internet.nl/mail/nhs.uk/179122/
Please fix this and not let it drop into bureaucracy
Front end template for allowing people or doctors or someone to use NHS backend?
Why are people making NHS Websites? That’s the part I don’t get, who is using this code and for what? Isn’t NHS a government run service and they run their own websites?
They are a bit of a hudgepodge at the moment - one at random http://www.cityandhackneyccg.nhs.uk/about-us/member-gp-pract...
It looks like it's inspired or follows the same guidelines as most of our modern government websites (not all have been updated)
There is a central organisation that sets overall directions and can give orders. But then there are lots of other organisations that are within it or attached in some way or even privately owned groups that operate in association with it.
Each group usually creates its own web sites and the central organisation doesn't usually interfere unless something is wrong.
The following is AFAIK correct, but it's my personal experience, and I'm not claiming to be an expert on the NHS!
As a simplified example, I am covered by the NHS. In my case NHS Scotland, which is separate from the similar system in England or others in Wales and Northern Ireland.
I am registered with the local NHS GP surgery which puts me on the system and provides most non-emergency access to care.
That GP's surgery is (probably) a private partnership of doctors who own the building and employ themselves and the other staff (nurses, admin, etc).
They get paid by the NHS system as a whole to provide me healthcare, but are not direct government employees.
I actually picked this GP's practice over several others, each of which have their own websites, because its website showed that it was open to new patients and because they offered open clinic times that matched my requirements.
On the other hand, the local hospital is owned (2) by the regional NHS hospital group as a government owned facility which employs the staff there as direct NHS/government employees. Except in emergency, I would go to my GP first, then be referred to the hospital.
However this is a separate organisation from the regional hospital group that operates hospitals in the next major city.
(1) NHS structure and funding: https://www.kingsfund.org.uk/sites/default/files/2017-10/NHS...
(2) Though see https://en.wikipedia.org/wiki/Private_finance_initiative for a more complicated explanation
Your comment is a good explanation of how things work.
My employer, NHS Digital, is working on this frontend library as a way to spread good practice throughout the federated health and care system you describe.
In short, we spend money doing the research on how best to provide information to users/patients and then we promote the uptake of the technology we develop to best satisfy them - with the overall goal of improving self-care and reducing the need for costly GP appointments and hospital visits.
I'll be making sure we remove our jQuery dependency when I can. For now the team is simply aiming to get to an MVP that we can iterate on :-)
I'll be making sure we remove our jQuery dependency when I can. For now the team is simply aiming to get to an MVP that we can iterate on :-)