[0] https://twitter.com/oppnaskolplatt/status/137505230118290637...
[1] https://github.com/kolplattformen/embedded-api/commit/b61122...
(I’m the founder of this initiative)
How do we improve this common scenario? What are the root causes?
The common themes are:
1. Lack of technical project competence at the decision maker level.
2. Scope creep. Where the one true system has to do everything.
3. A 'one-pass' approach where everything is expected to be delivered as a working system at the end of the project.
Even fixing two of these gives us a solid shot at a successful project.
The Phoenix payroll system comes to mind, the Canadian government tried to shift the blame to IBM, but have their hands tied since IBM delivered exactly what was in the contract. It's just that what the government decided to put in the contract has little to do with how they really do payroll.
It wasn't a big project, I was the sole coder. What had been sold in was basically a Drupal install with some customization. I made sure they wrote a decent specification before I accepted the job.
I delivered on time and we had the first test with the client. Everything went very well, and the client seemed happy.
On the client side, the project was then moved from the project group to those who'd actually be using it. And then came the question from the new manager:
Mgr: "This looks nice, but what about all the other sites?"
Us: "Other sites? The contract was only for one site."
Mgr: "Well, the whole point here was to have 17 sites with site-specific content written by site-specific users, managed centrally with a unified look as if it was one single site."
Us: "Err... that's not what the specification we agreed on says."
Mgr: "Well, as it stands this is useless to us."
And so the simple three day job turned into many weeks.
It facinates me that no one ever stopped to wonder if was actually possible to implement all that.
It failed horribly, costing billion of DKK in implementation cost and even more in taxes that couldn’t be collected.
Isn't this basically a given? I find it hard to imagine that any organization could come up with good, complete requirements before they've had any software written.
- a bridge
- airplanes
- most houses
- etc
Hardware comes to mind - it’s all hardware on the list, basically.
Software (outside certain realms ofc) like this? I’ve been, like many others here, doing this software thing for 20+ years now.
Big and small, I’ve basically never seen anything spawned from a project-driven organization actually deliver great results.
Most software is supposed to change, indefinitely - that’s the point!
Everyone in this day and age should know that requirements change over even short periods of time, so why even bother trying to pin them down in detail up front - you’re going to do everyone involved a disservice.
There is something to this agile thing and a “project” is it’s anti-pattern.
Not mention how much a quick feedback loop will learn you about the operation side of things.
Operations and change, it’s all you can build for and that is best done one step at a time.
(This joke of a platform is spread across multiple (5?) vendors/partners no less. A couple of them probably started just for this, backed with vc funding. It’s most likely a glorious mess!)
End rant.
That means the government comes up with a way for the parties to collaborate and just enforces that. So the actual implementation is open to competition.
Things like communication protocols or extensible APIs or schemas for exchanging APIs.
But who decides who is skilled enough? Then we are quickly in the realm of politics ..
How about we give you a 23-year old recent grad instead?
I read the 2014 one as a part of our project management uni course, but couldn't find it with a simple Google search so here's the 2015 one:
[pdf] https://www.standishgroup.com/sample_research_files/CHAOSRep...
It looks like a success until you ask operations and people maintaining the deliverable.
This is usually not factored in and ends up at at different cost center.
You almost never get the full picture of continuity when dealing with a project organization hence it’s really, really hard to judge.
https://www.zdnet.com/article/study-68-percent-of-it-project...
People don't notice when things go right.
What about all the 5+ year, $100M projects you didn't hear about, because they never made the news, because the project went smoothly?
Even in general conversation we tend to vent about how bad our day/week was, and not how awesome something went:
Maybe that's a little far, no?
Worse, I have seen not enough people run for open council positions, so anybody willing to fill out the paperwork can ‘win’ without anyone in town voting.
"@Stockholmsstad are now acting like angry toddlers."
I'd read between the lines. I don't think it's a hurt ego, not with these numbers. Someone is (continued) to be paid for this to be happening. This reeks corruption.
It's more government officials and contractors with their reputation and money on the line. In the case of government officials, it's not necessarily unmarked-bills-in-a-paper-bag-under-the-table kind of corruption, but the more pernicious "revolving door" of government/private industry kind.
Absolutely correct, it's smells exactly like the kill-LiMux "Project" from Munich.
But Sweden has a pretty big history being corrupt, just think about Assange, Olof Palme...and the bad russian sub story.
A better approach is agile with customer's actual employees guiding small changes all along from the beginning, and customer's project managers/budgeting managers tracking progress, requirements, and costs.
I like the idea but that's not a product I think open source folks ventures to build much?
There's nothing preventing a group from making a FOSS replacement of a government project made commercially, even if its goals aren't ideal.
where is juicy details like who did it? Oracle? IBM? ..?
> So a few parents decided, since the data is basically their data, to build their own better version. A couple of months later, @oppnaskolplatt was ready.
Bad precedent that must be squished ruthlessly. Otherwise next time they would decide to have their own better roads, police, government... that slippery slop of "we the people".
According to [1], no less than four contractors: Tieto, Ping Pong (apparently responsible for security), Unikum and Nova Software.
[1] https://translate.google.com/translate?sl=sv&tl=en&u=https:/...
Directly employing most of one's required software engineers is largely a very new phenomenon, and not yet widespread.
In Norway, you'd have e.g. Evry, Itera, Bouvet, Miles, Computas as well as international companies like Steria, Accenture and CapGemini. They contract out developers at ~$125 an hour and pay a regular middle-class salary. A large portion of software engineers are employed at a company like this.
You could volunteer to do all the work and they'll still oppose you at every turn.
My hope is that we'll reach a stage where citizen participatory programming is normal for all. Where my dad could offer a PR to fix a typo on a government page casually as he browses it.
I have a feeling we're not far off but you need it to happen in a place with low entrenched interests but with sufficient enlightenment.
I think big US cities have the latter but not the former, and authoritarian developing nations lack both the former and the latter. So maybe smaller Western nations like Estonia.
Or, my biggest hope, sufficiently advanced townships in America.
While that is always true in reality(you are always responsible for your actions), it is not legally obvious when you buy commercial products(you can blame the manufacturer).
While people are often reluctant to accept that. I find that it is often what people’s arguments in this regards can be boiled down to.
I suspect the argument usually comes in the form of FUD from consultants like the ones in charge of this project. But I wonder what makes it takes hold. Incompetent lawyers? Bureaucrats who like to play armchair lawyers? Or just outright corruption?
I can see why you’d be defensive and make a project together with the firm that is the biggest player in software for the public sector (although their reputation is poor).
What I don’t understand is why the project is a Big Bang release type thing. Or why the contract can’t have clauses about openness or interoperability? If the supplier is scared by that or charges more for it - switch. Having source visible or exposed APIs doesn’t mean they have to accept PRs (although that would be great PR)
It does in my country, Portugal, at least: https://pt.wikipedia.org/wiki/Dom%C3%ADnio_p%C3%BAblico
And it sounds like it comes from some "Berne convention" in which a lot of other countries also participated.
They are horseshit at anything after that
And that's where things go sideways.
I vividly remember how everyone shrugged of some small, local politician spending 50 Million SEK(5 Mil USD) on some project to "Cheer up the town square" ended up with 5 contractors, all friend of the local politician, that produced one 50 page report on how "dancing and talkin street lamps will cheer up the town square" was the final result. The politician denied to answer further question to reporters, insisting the project gave good insights, and no one gave a single crap
I hope this publicity changes things.
Isn't that how Mint works?
BankID is both an authentication and user information service system. Swedish customers can sign up with BankID, and the beauty of the setup is that we are exposed to less private information than we otherwise would.
On login, these same customers go through BankID flow, and we get an assertation from the service that essentially tells us "login is valid for this previously assigned unique customer identifier".
"We need a school comms platform. It needs to have messaging and scheduling. People need to be authenticated (duh)."
Now ordinarily I'd say "WTF who would build that for free?" but by the looks of it someone has done substantial work for free already.
Heck, you could probably get free work from the kids themselves. There's plenty of people in education who would want to do odd jobs on it.
Now maybe pay up for a few senior devs and a PM, so that someone is at least responsible for it, with their income tied to it. But make it a small group, for the same reason.
If there's suggestions, or something breaks, there's a place to report that. End of the day, it's a platform for the people by the people.
Sounds like a great way to get a community to build its own infrastructure?
There's a Cunningham's Law parallel here: the best way to get a good free open source system is to first build a terrible expensive proprietary one with shady business practices, and let the frustrated users do the rest.
I'd love it if we lived in a society where everyone could contribute to everything. You see a bug, you report it on the board, someone says "hey I don't have time but you can look at it, it's gonna be in myscript.py". You fix it, they check your fix, and we're all better off.
Having an army of kids doing it would help everyone. I think working on a real thing instead of a contrived project is huge in the development of coders.
And as you say, they can add their owm imprint. Society has got to renew itself somehow, and it's not by being corporate.
> Now maybe pay up for a few senior devs and a PM.
> platform for the people by the people
I think you're overestimating the abilities of "kids" and non-professional devs and underestimating the complexity of running that kind of show (thus underestimating the ratio of professionals/community necessary to pull that off). Notice how most successful open-source projects are in fact supported by tech companies and worked on by professional devs on those companies' payrolls, and how, despite that, most open-source projects still end up kind of chaotic.
Believe me its way worse here in Germany.
I would consider this a luxury problem...
German government is the european leader in corruption , even covid was used by many of them to get kickbacks for masks for elders and wasted 2 Billion € there.
And like the corrupt "Flintenuschi" Ursula von der Leyen they get promoted to President of the European Commission for that if they manage to delete all evidence from their phone after beeing caught.
- Stuttgart 21
- elbphilharmonie, Hamburg
- Mobile Internet
- Everything that has to do with the Deutsche Bahn :D
- more stuff...
https://www.istartedsomething.com/20140420/msn-messenger-and...
It sounds like if I would get 1% of the price to build this, I would laugh all the way to the bank.
Jebus....
Frankly, I see jail time for the contractors doing this.
Looking at the code, it appears that they authenticate against the api? So it’s a third-party app using an api, against the first-party’s expressed wishes, to read and/or manipulate student data?[1]
Of course the city will defend against that.
[1] Correct me if I’m wrong here.
The app uses your device, your electricity, and your credentials. The API is built using your tax money.
I don’t see a problem.
Why would that be a given.
I can understand it in scenarios where it messes up a monetisation strategy - but this bein publicly funded it's the opposite of what I'd expect.
So that leaves a defense against... their own users? Makes no sense.
Plus the tax payers funded the platform so it's not like the government has any legitimate interest in protecting the product itself like a private business might.
Who is going to maintain that app over time?
Maintenance sucks and is expensive.
I'm going through this right now with a security system for a non-profit. The old system is open source and works--but it's 10 years dead.
So, they'd like to add these couple features. Who is going to develop that? Who is going to pay for that? What happens 10 years from now?
So, they can pay money for a commercial solution which is "Somebody Else's Problem(tm)" or they can go with a bespoke system that becomes their problem.
Maintenance is a cost that open source never accounts for.
input: 5+ years and 100 million dollars
output: crappy system
maintenance: still necessary, hire anyone but probably the expensive guys from before
The route that these parents demonstrated:
input: a few months and presumably a whole lot less money
output: something that seems to be well-liked
maintenance: still necessary, hire anyone
Regardless of "but who's going to maintain it", the benefits should be clear here. People don't work on open source code because they get paid to and shrug when they do something useless or even detrimental just because the boss says so. They work on it for a passion. Now if you hire a company to write the open source code, you kind of lose that benefit, but if the development is out in the open, the public can at least keep track of it and say "but this doesn't make sense" or "let's get a working system before we spend another 4 years over-engineering and bloating this". This open model is how the corona tracker was developed in the Netherlands and it worked super well. The question is now whether the government will dare to do it again with the next IT project.
Don't forget: sometimes the copyright is still owned by the contractor that developed it, at which point the options are only "hire the expensive guys from before." Want to make a change and the vendor can't/won't? Oops, guess you're starting over from scratch! Or you don't make the change you wanted to and live with it as-is.
Are they clear?
Or is this the "Chrysler Comprehensive Compensation System" all over again? aka the gigantic disaster that somehow spawned the Extreme Programming "experts" and implemented the easy 80% while missing the really hard 80% (yes, that totals to 160% intentionally).
It's really easy to produce something that majority like but doesn't get even basic use cases. For example, let's start with some simple stuff:
- Does it meet GDPR guidelines?
- Does it meet accessibility guidelines?
- Does it meet security guidelines for protection of personal information of minors? (Apparently the original government software completely blew this off. As always.)
As I have pointed out previously on HN, that adds a bunch of cost to government software that MUST be paid if the software is part of government functionality.
I can whip out a single page app in a hurry. Ask me to comply with those issues and I'm going to have to spend a lot more time on things.
Don't get me wrong. Big IT projects like these always become boondoggles. However, everybody always simply gives the open source project the benefit of the doubt at being "better" when it probably just blows off a lot of functionality.
Government CRUD applications have to be able to handle the majority while still allowing the 0.1% to be handled.
In fact, open source is almost always worse--the proprietary company can at least generally demonstrate that they can do what they say.
And, for contracts like these, the end customer generally gets the source anyway. So, to the end customer, there really is no difference.
And this is before we get into the whole "Whose budget holds the money for that maintenance over time?" political football. A lot of government contracting is about transferring uncertain future payments into certain present payments. And someone will try to kill that budget at some point.
I love open source. But open source software almost always fails hard when the subject isn't relevant to software programming.
This is not a "current proprietary system" vs "open system maintained by volunteers". They can basically adopt the open system which is better and pay whoever they want the same account of money to maintain it. They just need to shift which system is being maintained. (And may even save money that way)