That was the philosophy. Don't bother reading the article, I just summed up the only info that wasn't just there to take up space.
Disappointing that this was light on any real details like who the contractor was, or if it was done by state employees. What the integration story was? Technology? Staffing count? Budget? You know, all those things which would speak to 'How' Kentucky built the site.
Part of it was contracted to "CGI Group of Canada" - the same company that created the Federal exchange[1]. Word around town is that Doe Anderson[2] helped out, though that might have just been for marketing materials. The state government also has a pretty good group of developers on hand (lost my best intern to the KY Department of Transportation).
The sad part, this is the 'best' and I see a home page that even with a simple design pattern and a relatively easy technology stack - missed some pretty basic best practices that are virtually free from a technical effort perspective. 30 different HTTP calls on the home page, no bundling or minification, 4 404 errors, no CDN usage...but it works, I guess nothing else really matters if you meet that metric.
This is the right way to do things. Even if they took 2 years and had elite agencies working on it... there would be a list of little complaints purists would have.
The point here is... theirs works... because they kept it simple.
As joemaller1 pointed out, scale matters. My newer application here (an SMS-driven learning solution) gets more messages every day than Kentucky has inhabitants.
Still, getting the job done is not optional and, when it involves a government, not trivial either. They get my respect.
Even if I disagree with their taste for technology.
Looks like it was built with ASP.NET MVC 4, which has minification and bundling built in. Should be easy for them to take advantage of it... maybe they just ran out of time or don't care.
The bundling features in ASP.NET MVC 4 were at best release candidate and at worst beta until mid summer. I can see why using them may have made some developer's leery. Adding these features now as indicated by several other commentators should not be difficult.
Most or all of what you mention is premature optimization and I would advise against it at this point. The bottlenecks are in connecting to back-end systems, not on the front-end.
Just looked it up, running ASP.NET MVC 4. Not surprising, tech concentration is pretty regional and this part of the country is very heavily Microsoft focused.
A further testament to the quality of their effort, in that it's according to you a good match to their local technical base, we're pretty sure it scales up to the level needed for the state (intuitively and per the evidence), costs of licenses is I'm sure noise for the effort, etc. etc.
Why do people still say stuff like 'cost of licenses'; the cost of licensing Windows Server for a system even at large scale (think StackOverflow) is so small it barely qualifies mention.
Unless you are talking about licensing SQL Server per processor, the cost of licenses is unimportant.
Well, seeing as how I like persistent data, as I'm sure this site does, SQL Server licenses would be a factor.
But I was more thinking of the shoestring startup shooting initially for ramen profitability, where every unnecessary, can't instantly scale dollar spent is one too many.
This is an effort with a serious budget, where today's back end costs of all sorts are I'm pretty a very small part of it all, probably even bandwidth.
This is exactly the problem, people think Microsoft shops have an allergy to open source? You ever stop to think that maybe people are just using the best tools they can for the job?
> This is exactly the problem, people think Microsoft shops have an allergy to open source?
Yes. That's exactly what I think. So, what I'm about to say isn't in any kind of defense. I'm just going to document my personal bias for all to read and hope to be enlightened:
I don't think anyone really chooses to run a Microsoft Server, other than Exchange-Server[1]. I think people are forced into it because of at least one of the following: 1) Their corporation demands it, 2)They don't have the skills to use Linux or OSX, or 3) That individual may have the skills but the other people on the team that need to be able to help out, do not have the skills.
Anecdotal: I once interviewed in a place that had Microsoft servers and SQL Servers, I asked them if they'd consider using Linux. They said "Oh, we're a Microsoft-Gold-Partner, so no Linux here." This was in 2007 for a small-to-mid company somewhere in San Francisco.
So IFF I'm correct about the above, then anytime someone chooses a Microsoft server(not counting anything related to Exchange)... I assume the whole shop is on MS-stack. I might be horribly wrong; I'm posting this to have other HN people correct my terrible thought-process.
1. Because Exchange really, truly, works and it's hard to get everyone to agree on a tech to handle emails+meetings. Exchange seems to be the most widely supported choice.
People run Microsoft software for a variety of reasons, and while it may shock people on HN and elsewhere - often times it is for reasons very similar to your Exchange statement at the end. It really truly works. SQL Server is a fantastic RDBMS at the mid and high end of the market. 1000 people are rolling their eyes right now because once upon a time they touched a system that used SQL Server and it was terrible and the developers were not happy. Give me a break, you can write crappy code for any system and SQL Server is no different.
As for Windows running the server, it has been a very long time since anyone tried to claim it inferior as a web server - about 5 years ago when Scott Guthrie's team made IIS modular the story changed and it is now every bit as capable as Apache.
Don't worry though, I wont try to defend Sharepoint.
The mix is there though, I have clients who run Windows on the server and Oracle as the DB. Also MySQL, Raven and one using Redis as a backing store. I have a client who runs a rails shops and use SQL Server as the backend because its BI stack is so strong and even have a client who is a 'Microsoft shop' who is considering ASP.NET MVC running on Linux pointing at a MongoDB repo.
What I recommend is based on the feature set they need and their access to talent, the cost of server licensing can sometimes play in the discussion but only at the lower end of the market (startups, small business).
Couldn't agree more. As someone from the area, I have trouble finding anyone who knows anything about linux. Interview questions about basic tools/tasks, such as ssh, grep, ps, vim, etc. are met with blank stares. But they all (claim to) know c#. And on the other hand, I don't see many jobs at all with requirements outside of a MS stack, so we're stuck in a bit of a chicken-egg problem here.
3 months to test a website. That's crazy!! Why didn't they build correct the first time?!
</sarcasm>
This is why I really hope they use the government's failure as a means to educate the lay person on how difficult it is to build a technology system and equally how important testing it is: https://news.ycombinator.com/item?id=6586499
Why not apply the federalism principle. This comment https://news.ycombinator.com/item?id=6622746 by protomyth on another Obamacare topic points out "The writers of the law wanted a top-down centralized approach and that isn't how the US Constitution or US States are structured." and why we shouldn't be surprised by it's abject top level failure.
ADDED: to the initial responses to this: no, not even close. E.g. explain where the Federal government has a role in this beyond the FDA's standards establish what can be sold, which are in part an economy of scale.
E.g. the Naval Observatory and NIST each maintain independent ultra-precise time bases for the nation, which strikes me as just right. At the national level, Daylight Savings Time is promulgated, but states like Arizona (minus the big NE Indian Reservation) and Hawaii where it's not a good idea don't observe it.
But most things should be left to the "50 Petri dishes" of the states (or groups of them, e.g. the Multi-State Lottery Association http://en.wikipedia.org/wiki/Multi-State_Lottery_Association ). Romneycare? Sure, why not try it? Obamacare? I think you know my answer to that.
And please don't make replies that don't factor in the Federal government's interference in this starting with WWII.
You mean, set national standards and leave the implementation to the states within those standards, with feds only stepping in if the states refuse or fail?
That's exactly what PPACA does for most things -- including the exchanges.
"You mean, set national standards and leave the implementation to the states within those standards, with feds only stepping in if the states refuse or fail?"
No, that's a modern bastardization of the idea, where the Federal government claims to be following the letter of the idea but steps in with all sorts of central mandates and requirements even so. They've got some pretty good rackets going on with "optional" compliance to programs tied to truckloads of money, too.
Federalism would be... let the states handle it. No Federal requirements. No Federal interests. No Federal laws. If Vermont wants full on state health care with no private option and Texas wants full private healthcare with little more than disability assistance, let them. Washington DC interferes with neither.
The PPACA hasn't got a drop of Federalism in it.
Whether you consider that a problem is up to you. I'm just explaining that it doesn't have any.
Kind of an ironic story to bring that up with. Perhaps if more states had taken advantage of their freedom to apply the federalism principle, things would have gone better.
Cept put men on the moon, build an expansive national system of roads and tracks and bridges and tunnels, develop technologies like the internet, atomic energy, and others.
Everything you've mentioned except transportation, not counting the Interstate system, was done for national defense purposes, which are very much a duty of the Federal government.
Mercury through Apollo were political stunts. The sequence goes like this: Eisenhower let the Soviets orbit the earth first to let them establish an "Open Space" president; prior to that they were saying any satellites orbiting over their territory were illegitimate.
However at the same time we were competing for allies among the Third World, and our claims of technological superiority took a big hit. So the "space race" began. First was of course Mercury, put a man in orbit, then a couple of years later JFK committed us to "landing a man on the Moon and returning him safely to the Earth"
But it was just a stunt, leaving no infrastructure in place, heck, even finished Saturn Vs were left outside to rot (due to the inevitable delays, Nixon had to cancel the last planned Moon missions because of the sunspot cycle making them too dangerous).
The Interstate system was based on the German Autobahns, and President Eisenhower's experience trying to move on troops on our old system. However we've had a long and very mixed history of Federal involvement in transportation systems, such as the transcontinental railroad scams (see e.g. http://en.wikipedia.org/wiki/Cr%C3%A9dit_Mobilier_of_America... or which went bankrupt (hint: the land grants were the real prize)).
The Internet was developed by/for/with the Defense Advanced Research Projects Agency (DARPA) to allow the sharing of the then very expensive computers.
I trust we all know what pushed the initial development of atomic energy in the US, and as I understand it our first reactors developed to specifically produce power were for submarines, where they made a massive qualitative difference.
The Jupiter C and Vanguard rockets were inferior to the R7. But that doesn't translate into military inferiority (Eisenhower knew this, but the public didn't buy it).
The Americans didn't need the same capacity as the Soviets in rockets for several reasons. First, US nuclear weapons were supposedly half the size of the Soviets'. Second, the Americans had air superiority. Third, the Americans had land next to the Soviet Union (thus didn't need to fire as far). Fourth, the R7 that launched Sputnik took hours to load. And could not be on standby indefinitely.
Both space programs were stunts in the early days. But using a Saturn V to deploy nuclear warheads is like using a flame thrower to start a barbecue. It could have been done, but there are easier/cheaper ways.
However, you do have to be somewhat blind to see that a large segment of the population, it's the Republican platform for instance, genuinely believe the government can do nothing right. Every failure, no matter how small, supports that position. No amount of facts change that position.
In a more general way, less and less peoples views seem to be swayed by any facts that disagree with their worldview. Everything has become an us vs them, my team is better, right and perfect view of the world.
You are misrepresenting the R's position. It's not that government can do nothing right, it's that government does things less efficiently than private enterprise.
The irony there is that his post ranted about people not being swayed by facts while misrepresenting an easy-to-understand fact for anyone not grinding some biased political axe.
Take a look at the site's JS files and the proud developers stamping their names all over it. Google their name and you will see the dev work was outsourced offshore.
It feels like there was no one overseeing engineering quality across any of these government sites. Quality doesn't have to be QA but best practice standards in both software design and testing. Few unit & automation tests and peer reviews would have gone a long way to releasing decent software.
Sounds easy. But it requires a person with deep understanding of software projects and with real political weight within the project to keep creeping requirements at bay.
I know few developers who worked on Kentucky's Kynect. It's apparently been executed by many contractors like hcentive, CGI etc.
IMO, it would be inappropriate to single out state employees or the contractors and appreciate only one of them. Great execution or bad one is mostly an outcome of how capable and driven the executive team is.
Hmmm, do you really think it looks like "garbage"? I'm a back end developer, don't claim to have much taste in these things, but it strikes me as simple and straightforward, maybe not pretty, but not ugly.
And their images: tiny. Home page 32K, the one for individuals and families 26K. The old home page picture that used to be on Healthcare.gov is now gone, but I recall someone saying it, or another picture on the site, weighed in at 1.8M.
As a fellow backend developer, this KY site doesn't look ugly to me. It looks minimal, seems to be pretty easy to get around, and seems to fulfill its purpose very well. It loads incredibly fast, and the text is all easy to understand.
I'll take bland and functional over pretty and awkward any day when it's something this important to so many. Whoever did this for KY did a great job, IMO.
Not that my opinion matters at all, but I do think that it looks like garbage. That said, I agree that whether it looks like garbage or gold, all of that is secondary to whether or not it works correctly, and it seems to (not first-hand knowledge, nor am I a Kentucky resident.)
Seems to be a common pattern with these gov websites or maybe the outsourcer. Bad quality code! Really really bad JS code chaining everything to the global prototype, hoisting issues indicate low comprehension about JS, no basic minification or cdn use et al.. awful. I hope they didn't spend in the millions to build that.
Now if these folks could code well they would probably also build out unit tests. Thus reducing the need for manual labor testing the site, logic etc and launching faster.
I really don't understand these statements. I agree that the code isn't particularly elegant and violates some best practices but who else should have written it? I see so many comments be it here or Reddit or anywhere really from know it all criticizing work people have done. If it's so easy for it to have been done the way you say then why does it never seem to be done that way.
It seems that the devs available to build these projects for the government aren't the best ones. The best ones must be at Facebook refactoring the Poke code.
> It seems that the devs available to build these projects for the government aren't the best ones. The best ones must be at Facebook refactoring the Poke code.
There are lots of companies on Silicon Valley writing great code that are doing things a lot more important than Facebook pokes.
The reason you are seeing so many comments criticizing the work done on these government sites is due to the mountain of money spent on offshore outsourcing to deliver rubbish quality. A grad/junior software engineer in Silicon Valley could produce better quality code.
Everyone is an expert until they have to deliver something!
That ignores the back ends to the back end. E.g. an IRS system that might be able to handle a million people with query/response transactions would almost certainly need different strategies to scale up 100 times.
>That ignores the back ends to the back end. E.g. an IRS system
Just make sure your component won't fail. Perhaps offer other departments help with sharding, be that consulting or paying for servers. Give a friendly error message that the other system has gone down, but your data is saved and will be resumed automatically upon next visit. Maybe retry later and email people when it succeeds.
>an IRS system that might be able to handle a million people with query/response transactions would almost certainly need different strategies to scale up 100 times.
I don't see why it would. Sort by name or SSN and do a roughly-even split across your servers.
Forcing simplicity during design seems like a great way to avoid the complexity that takes over many larger projects. Too bad this couldn't be done nationally.
I'm curious what the cost of this system was. Or perhaps more importantly, what's the cost per person that will ultimately be covered.
Among the hundreds of lines of javascript on the home page, I did see a block about disabling the back button. Their front-end work is certainly sub-par.
The important thing to note here is that a lot of states (but not all) that built their own exchanges are having similar success. Many states that decided to not build their own exchange, and thus saddled the federal government with another state to be responsible for, did so because they want the rollout to proceed poorly so that the law will fail.
I also give Hawaii and Oregon initial credit for not launching their sites on Oct 1 because they knew they weren't ready. That takes a level of moral courage we didn't see from those running the Healthcare.gov effort.
This is not apples to apples. I actually just went to the site and got a quote. The site works well and I don't want to diminish what they built, but I ended up getting quotes from like 3 different insurance companies. Compare that with dozens (if not hundreds) operating on the federal level.
The website is very simple. Which means that it would not be a big deal to throw some media queries in and make it mobile friendly. This is 2013, I don't understand why rwd is still not applied everywhere.
There is a good reason not to apply / do mobile version in the beginning. A lot of websites don't run properly on mobile browsers and the API support vary in different mobile browsers. Hence, it's a good idea to keep them for desktop. And a lot of people wanted to register for the health care will either consult with a specialist (running off a dell computer) or home computer. Not a tablet or your android phone.
Anyone paying attention to the news back in 2001? Remember when Sun and the other tech companies were offering all kinds of totalitarian tech solutions (like national IDs) to "solve" terrorism. Ah, how times change.
Keep it simple.
That was the philosophy. Don't bother reading the article, I just summed up the only info that wasn't just there to take up space.
Disappointing that this was light on any real details like who the contractor was, or if it was done by state employees. What the integration story was? Technology? Staffing count? Budget? You know, all those things which would speak to 'How' Kentucky built the site.