3 ms·
One of these days I'd like to volunteer (with a large enough group of peers) to build a system like this for the government free-of-charge. I can't imagine tha
by smoyer 12y ago
One of these days I'd like to volunteer (with a large enough group of peers) to build a system like this for the government free-of-charge. I can't imagine that a hundred good developers working part-time couldn't get this system migrated in a reasonable amount of time.
One clue to why if failed describes there being a tension between departments and a new governance board. Providing a system like this based only on best practices should be pretty feasible if you throw out all the petty politics and "perceived but useless" pet features.
I'd imagine the current system (as it's mainframe-based) pretty much follows the typical forms entry (perhaps they're still using green-screens?). Moving the existing system as-is to a modern version of an RDBMS with an equivalent web-based front-end should be the first step. Once you're current, you can add features as you go.
- japhyr 12y agoI'm not sure that a hundred good developers would complete a project like this. I'd rather take a small team who could dig deeply into the project, and commit full time to it. One or more of those people would have to be pretty politically savvy to help pull it off.
- acveilleux 12y agoIt's death by a thousand tiny procedural cuts. There's thousands of users, dozens of processes and as many external dependencies. Money is always subject to whomever got elected last November and a great many people resent you. They're 57, been working with the previous system since the mid 80s and they like it dammit. They see the writing on the wall and the mainframe operator or data entry specialist job they have is a goner. Shy of a full pension too. Or the prima Donna department that always got their way is blue balling the analysts the whole way through because they don't own this anymore. Problems in this type of projects are all people and processes. I also work in Healthcare IT on the vendor side and I see projects that get shit done and project that die. It's about management.
- spiritplumber 12y agoYep, I can confirm that. My strategy is to tell people "I am going to make it work and you are going to either help me, or watch helplessly as I make it work without you and make you look like an idiot". It helps to take assertions like "you cannot do that" literally, even though they tend to be said to mean "you may not do that" or "you should not do that", and prove that you can in fact, do that all you like because there are no laws of physics preventing it. It has caused a few surreal meetings, like the time when a guy did a 40 minute long presentation on "I need more people and more money in my workgroup to make this work" while the first batch of completed, working, tested production units (built by me and one other guy after we got sick of the BS, I even paid for the manufacturing out of pocket) was in the middle of the conference table. Imagine a half dozen people trying to ignore what was literally in front of their eyes. Another time it also has caused me to escort a security guard out of the building because he was being disruptive. He had been told to escort me out of the building, grabbed me without asking my permission, and found himself in a headlock, then was informed that if he did want to fight me, he was welcome to. Then I got back inside and finished my business. Sometimes you just have to say "full speed ahead and damn the torpedos", or nothing gets done. (My father's rule of fights: Never hit first, always hit last)
- spiritplumber 12y agoI love how most of my comments that convey the message "Sometimes you have to push back when you are pushed" or "sometimes the job is more important than people's egos" get downvoted.
- bmelton 12y ago> One of these days I'd like to volunteer (with a large enough group of peers) to build a system like this for the government free-of-charge. I can't imagine that a hundred good developers working part-time couldn't get this system migrated in a reasonable amount of time. Unless you and those hundred developers had previously formed a company that was building software for the government, you wouldn't even be considerable, as a matter of law. The federal government has a list of regulations they're subject to, specifically documented in the "FAR" (Federal Acquisition Regulations). One of the first requirements is that they cannot source work from a vendor who has not done work for the government before, and that they must be able to be recommended by the agencies for whom the work was done. In the industry, these are referred to as "quals" (short for qualifications), and it means, specifically, that you have done this kind of work for a previous agency and done well enough that the receiving agency would recommend you. The only way to "get" quals if you don't already have them, is to sub-contract with a qualified agency, like SAIC, CACI, Boeing, etc, and get similar work so that you can gain enough qual to do the work yourself as a prime contractor. Generally, by the time you've done this, you'll realize that no, you and a hundred good developers are not enough to deliver a project of any size to a reasonably sized government agency, at least, not by yourself. For a project that would require 10-100 developers, you'll need at least two architects, a contracts attorney, a strong project management team, and a team of experienced writers in order to even put together the proposal response enough that would make it winnable. Sunlight Foundation tried to do this same thing, and ended up with a contract that wasn't even considerable by the agency. I cannot stress enough how difficult a contract proposal is to write, and how much work and effort is involved, and without a really good proposal, you literally could not even give your work away for free, even if you ignore that 90+ percent of government contracts are indeed "wired" for an existing vendor to win them. To even write a decent contract, you'll have to have a really intimate knowledge of how that agency is already doing things, which means hiring some people from within the agency for consulting before you can even begin to write a proposal. On top of that, your architects will spend all day in meetings trying to explain away stupid things to competitors like how creating a new table in an existing database will not subject the agency to more risk of hacking, how switching from SOAP to JSON will not make systems more vulnerable, etc., etc., to an audience consisting of competitors who want you to fail, managers who want you to fail, end users who want you to fail, and other folks who are paid to disbelieve you. Moreover, you'll be limited to doing all of your development on Sun Solaris (or AIX, or whatever) using Oracle Database, communicating messages via SOAP, etc., etc., and you won't be allowed to introduce Ruby, or Scala, or ZeroMQ, or whatever new-fangled tools you are used to using except those that already exist within the environment. Reading this back to myself, it seems awfully pessimistic. It probably is, but that wasn't my intent. But, there are reasons that government projects cost what they cost, and while definitely plenty of it is wasteful, that waste isn't in there by design, but is in fact a product of a system designed to not generate the very waste it creates.
- morgante 12y agoI think 18F is actually making some good headway on introducing modern development to government, mostly by recruiting great developers with the opportunity to show how things can be done properly. https://18f.gsa.gov/ https://18f.gsa.gov/