7 ms·
IRS programming mystery continues
- aejnsn 6y agoCan someone explain to me why the IRS even bothered with a patent application on software? Those are taxpayer dollars being used to fund that innovation--unless it's a classified technology, it should be public domain. Furthermore, why did the IRS spend time and salaries to reinvent the wheel for a solution that is likely to exist as an OTS product?
- aejnsn 6y agoShamelessly tagging off my own comment for another thought. Remember the articles about states' unemployment insurance systems at the height of the COVID19-inflicted unemployment in March? They kept talking about hiring COBOL developers to address the current need. This next comment is intentionally vague--some federal government agencies offer frameworks for state governments to use in their own regulatory agencies. It's a shame we heard so little talk of that model in relation to state unemployment insurance systems at such an opportune moment. It's an unemployment insurance system--I cannot imagine there's too much creativity involved other than the clean integration of a business rules engine.
- Stratoscope 6y agoJust FYI for next time, there is a two hour edit window on HN comments, and no one minds if you update a comment with added thoughts. Either way, thank you for the interesting comment(s)! (At the risk of going too far afield, some feel that you should add an "EDIT:" note for any changes to a comment, but my personal feeling is that it's cool to simply edit without calling extra attention to the edit, especially when the edit doesn't significantly change the meaning.)
- aejnsn 6y agoThanks!
- andrewstuart2 6y agoWhich part of the $3.5 trillion dollar-a-year processing system that interacts with 3.5 million businesses, tens or hundreds of thousands of HR systems, paper forms, tax laws, jurisdictions, edge cases, bank transfers, etc, did you expect to come Off the Shelf. I work for a large bank, and yes, we use OTS software here and there, but that's such a miniscule part of the overall solution (let's completely forget organizational politics out of it). Try a few solutions, pick one, and get down to business because that was maybe 5% of the work. "Just pick a business rules engine" is easy to say, but the meat of this problem is still the rules: thousand to hundreds of thousands of individual tax codes, jurisdictions. That, and the countless inputs and outputs the IRS presumably already deals with. Couple that with the fact that politically, where do you think your career is going if you move fast and break things, and mess up $3 trillion dollars of revenue across 143.3 million tax payers, including some of your boss' biggest campaign donors? Not to say it couldn't be done faster, easier, if you could break through the legacy and politics, but that's a really big if, and it still leaves you with all the complexity of the tax codes to implement on whatever great stack you find.
- aejnsn 6y agoI am not referring to some sort of gateway, ESB, etc. I am referring to the patent application, which would be for a tool to port code from Assembly to another target language, the example they used being Java.
- andrewstuart2 6y agoI'm not sure what ALB assembly is, but I do know disassemblers themselves are kinda rare (which this really isn't either; more of a disassembler+transpiler). On top of that, whatever ALB assembly is, it kinda sounds like there might be only a market of one or two places in the world using it. Remember, they're saying these systems were put in place in the 60s and 70s. In 1960, COBOL was the new hotness -- modern day Go has 5 years more maturity than COBOL had in 1960, and there was no internet yet. Even ARPANET wouldn't be invented for another 9 years. Whatever was being written back then was not written by developers with the kind of access to information we have today. And definitely not with the kind of storage luxury we have today that permit us to document and comment as copiously as we want to.
- thrill 6y agoPatents can be used to protect yourself from others.
- eximius 6y ago> In FY 2019, the IRS plans to cut 2,200 employees.[1] In Rettig's FY 2020 budget request, he plans to cut an additional 1,800 employees. Since FY 2010, staffing decreased by about 19 percent, primarily in compliance and enforcement.[2] Sounds like the current administration doesn't want a functioning IRS. Less government, less money, less enforcement for those who can avoid obvious fraud. It is everything the current administration wants. [1] - https://www.govexec.com/management/2018/05/irs-defends-budget-would-cut-more-2200-full-time-jobs/148415/ https://www.govexec.com/management/2018/05/irs-defends-budge... [2] - https://home.treasury.gov/system/files/266/02.-IRS-FY-2020-CJ.pdf https://home.treasury.gov/system/files/266/02.-IRS-FY-2020-C...
- dragonwriter 6y ago> Sounds like the current administration doesn't want a functioning IRS. The current administration, and Republicans in Congress for about 20 years before the current administration, including when they had majorities in one or both Houses.
- eximius 6y agoYea, probably. I just only cited data for recently.
- redis_mlc 6y agoThe article is incoherent to IT experts, but it's generally a good thing to bring issues to light. tl;dr: the IRS wants to convert its assembly language software to Java, but not badly enough to actually finish it after 20+ years. Advice to IRS: since you have somebody who understands the issues, Jian Wang, incentivize him to do it - while that option is available. I've done transitions like what's mentioned in the article. It takes somebody to understand and shoulder huge risk, while being a target of naysayers who won't do the same. There are very few people who will do that, especially in government, when you simply don't have to assume any risk.
- aejnsn 6y agoWhy port a system from 40 years ago? I cannot imagine those systems are built with flexibility to endure policy changes of today.
- Jtsummers 6y agoBecause a lot of business logic is probably hard coded and undocumented. Porting it moves it to a platform/language that may be better suited to continuing operations or applying the strangler pattern.
- aejnsn 6y agoYou're probably right. This problem just hits different in my mind because implementation is outlined in the IRC. If using the past is any way of predicting the future, I would imagine a history of bills and policy changes could indicate levels of necessary flexibility and where. I am looking at this with rose-colored glasses. :)
- hindsightbias 6y agoBecause the IRS Masterfile is hard. Nobody alive today knows how it all works and 99.9% of coders have no experience with something that complicated. At the IRS, when the screen said one thing and the docs and regs said another, the software was right. Every time someone filled out the paperwork thinking theyd found a bug, a couple months later a letter came back with 20 years of tax code citations showing why you were wrong. We only found bugs in the software for new tax programs.
- pstrateman 6y agoThat sounds like they wrote a tool to convert assembly into Java.... I don't exactly have high hopes for that. Am I missing something?
- happymellon 6y agoDidn't Micro Focus already do something like this, to allow legacy systems to be retired without needing software rewrites?
- redis_mlc 6y agoSounds ugly, but if it's important enough and you have somebody who understands all the angles, it could be possible. That excludes 99.999% of government employees, though.
- aj3 6y agoIt’s not immediately clear what benefits that would bring though besides ticking a box of “technically a modern language”. Automated translation won’t be much more readable than assembly and it won’t magically become enterprise grade OOP either.
- throwaway744678 6y agoI was wondering the same; I guess it would be easier to refactor step by step (renaming functions and variables as you work through the code)
- redis_mlc 6y agoAccording the the article, they want to move from a local environment using assembler to Java, which apparently gives them a direction for network access, including web.
- DFHippie 6y agoYou don't think it's easier to develop in Java than assembly? And setting aside the development experience, it might be easier to hire Java programmers.
- Stratoscope 6y agoI am really confused about something in this article and I hope someone can bring me up to date. The article revolves around this patent: https://federalnewsnetwork.com/wp-content/uploads/2020/01/IRS-patent-10_2019.pdf https://federalnewsnetwork.com/wp-content/uploads/2020/01/IR... The patent is assigned to "Internal Revenue Service United States Department of the Treasury". The article also mentions that "two other related patent applications remain dormant. They lie abandoned, as the U.S. Patent and Trademark Office calls it, because the IRS wouldn’t pay the issue fees." I thought that government work like this was in the public domain. Can the IRS/Treasury patent an invention?
- webmaven 6y agoYou're mistaking copyright and patents. In principle, issuing patents on government developed technology isn't contradictory to their core purpose, which is to ensure public disclosure of inventions rather than keeping them as trade secrets. It certainly helps establish prior art, which is no bad thing, even for software patents. I'm not sure whether the US government then ever exercises their option to restrict competing implementations of the technology for the life of the patent. OTOH, the government produced implementation itself is public domain, as you noted, and not subject to copyright. In theory, this might make patented government software freely copyable (if released), including into collective works of other software, but unforkable due to patents, even though its public domain status WRT copyright allows derivative works.
- wahern 6y ago> I'm not sure whether the US government then ever exercises their option to restrict competing implementations of the technology for the life of the patent. Not directly, but since the Bayh-Dole Act (1980) as a matter of Federal policy contractors can retain ownership of patents and the government routinely grants exclusive licenses to federal employee inventions. See https://en.wikipedia.org/wiki/Bayh%E2%80%93Dole_Act https://en.wikipedia.org/wiki/Bayh%E2%80%93Dole_Act
- webmaven 6y ago
- ilaksh 6y agoIsn't it fairly well accepted at least by some factions that the tax code needs to be entirely simplified and rewritten? So maybe there doesn't need to be a translation of the old system. But rather a totally new one that could be much more easily created from scratch. In public, on GitHub or something. In a modern programming language. Possibly attached to an Ether-based US cryptodollar. Do Chinese taxes interface at all with their new digital currency?
- aejnsn 6y agoWhen we have companies like Intuit lobbying for complexity, this is what we have.
- kelnos 6y ago> Isn't it fairly well accepted at least by some factions that the tax code needs to be entirely simplified and rewritten? Unfortunately not the factions with the power to effect change. The tax prep industry loves a complicated tax code, and spends a lot every year lobbying to keep things complicated and keep the government from preparing our taxes for us. The rich prefer a complicated tax code with loopholes that help them legally hide income from taxation. Some of them are Congresspeople, or at the very least are campaign donors. > So maybe there doesn't need to be a translation of the old system. But rather a totally new one that could be much more easily created from scratch. In public, on GitHub or something. In a modern programming language. I don't think there'd ever be the political will to start from scratch here, even if that might be the best thing. So we're stuck with what we have, and the legacy system likely has a lot of un- or poorly-documented behavior in it such that it's safer to translate it into a higher-level language where there's more expertise at hand to deal with extending and modernizing it.
- dragonwriter 6y ago> Isn't it fairly well accepted at least by some factions that the tax code needs to be entirely simplified and rewritten? Yes, by “some factions”. But even among those factions, there's no consensus on the basic goals such a simplification and rewriting should be guided by, so there's no strong base of support for any particular fundamental change, even among those who would embrace the idea that fundamental change is needed.
- noobermin 6y agoCan someone enlighten me? Is Java really the best choice for this? I guess it's too late at this point but I'm still curious.
- andrewstuart2 6y agoConsider that this effort started 20 years ago, and also consider that if you want to hire a general backend developer today for a reasonable price, Java is the language to pick.
- caetris1 6y agoThey decided on Java and .NET because they needed to hire contractors in DC that had those skills.
- cyberdrunk 6y agoJava is the safest bet if you want to write something that will be maintainable at reasonable cost through the next 50 years.
- beambot 6y agoOracle (i.e. Java) & "reasonable cost" is a surprising pairing.
- cyberdrunk 6y agoJava licencing is manageable compared to the cost of developing a human resurrection technology in 2100 to bring back to life developers of by then long-forgotten technologies, which were hip in 2020. I bet Java will still be doing fine in 2100. Furthermore, the support of a behemoth such as Oracle is very reassuring for large businesses, which know that they won't be left alone with their tech stack. Can the same thing be said about Python or Scala?
- caetris1 6y agoIf there was any way to translate the legacy code running on mainframes into a Java application, naturally, there would be an infrastructure migration issue. The new plan plainly states that the infrastructure is dependent on: "Establish Cloud Management Office and Cloud Governance", which also depends on installing the new "Procure and deliver ECM Release 1 Cloud platform on Treasury Cloud". This stuff takes a lot of time and they've been preparing for the change since 2015. This is entirely not simple. https://www.irs.gov/pub/irs-utl/irs_2019_integrated_modernization_business_plan.pdf https://www.irs.gov/pub/irs-utl/irs_2019_integrated_moderniz... See page 29 for details.
- jimrandomh 6y agoNot a mystery, and discussed previously on HN before. The IRS abandoned this technology because it lost key employees, because it was not legally allowed to pay market rates for them. Discussion in 2018: https://news.ycombinator.com/item?id=16377804 https://news.ycombinator.com/item?id=16377804 .
- sokoloff 6y agoI suspect this is at least half the problem. Imagine the team of software leaders you’d put together to pull off that project. Imagine the team of software engineers you’d need to implement it. These senior positions are paying mid-high six-figures in industry and the mid-level positions are paying $250K or more. If the IRS is paying under $200K, making you follow government employment rules, work on an antiquated public works project, and giving you a terrible career development experience, it shouldn’t be any surprise the recruiting problem they face. You can’t get the talent you need for this project because the talent you need knows that 500 is bigger than 200.
- rubidium 6y agoJust a datapoint: I (And lots of other people) could readily build and maintain a team of software engineers for $109-$134k salary in the Midwest that would be fully competent in achieving anything the irs needed.
- sokoloff 6y agoI’m confident that that’s true in the “bulk construction” aspect of the project, which is of course an enormously important component of the task. I’m not at all convinced that that’s true for the architecture and strategic planning aspect of how to tackle the project. (I’m talking about industry salary rate for top leaders and architects here; I’m not suggesting that people with this profile aren’t available in the Midwest; I’m merely stating that they could make wildly more than $134K in industry even in the worst-paid Midwest city.)
- csharptwdec19 6y ago
- russellbeattie 6y agoWhat's weird is that every 5-10 years, a normal operation that isn't growing exponentially or anything, can easily fit all their digital stuff into another system that's faster, bigger and cheaper. Usually by so much that it offsets the cost of upgrading. The IRS must have experienced a half dozen of these cycles. Can't they just do it all on an Excel spreadsheet running on a disused workstation in the back room by now?
- londons_explore 6y agoI hope they do more... The basic task is collecting the taxes. The hard task is making sure nobody is illegally paying less tax than they should. That hard task is one where you can throw in more data and compute and get out more accurate lists of people to investigate. Whereas 50 years ago, people might be investigated nearly at random, I hope that today's investigation decisions are based on credit card statements, bank statements, lists of people who have purchased property, shares, details of company directorships, etc. That's a lot more data from a lot more sources, which has to be fuzzy matched by name - I can imagine why these systems are still big, complex and slow.
- jonnypotty 6y agoI love how assembler code is compared to a steam engine. We literally think old code is bad because its old.
- bsdubernerd 6y agoThe entire industry is broken regarding this fact. Old tested/working software developed for 10 years, dozen contributors spanning the entire history but with a last commit older than 12 months on github? Dead project. Heck reading on HN I've seen this comment even for projects having commits longer than 6 months! People will favor a buggy/featureless project with a single lead dev all the time, just based on this.
- giantDinosaur 6y agoThe signal is very much not that software with no commits is bad, it's just very common to have half-finished projects or very buggy packages which are no longer maintained. I'd say the quantity of those greatly outweighs the quantity without relatively recent commits which are good. This means that, as a very coarse heuristic, it's probably a good idea to be fairly skeptical of projects without somewhat recent commits, if only they're to keep up with the latest npm update or whatever.
- jonnypotty 6y agoNo one would need to make guesses like this if anyone knew how our software worked.
- treeman79 6y agoStand alone code isn’t big deal. Code that has dozens of dependencies is a whole other matter. I had to bring in a 5 year old, since last commit, library. On its on it was fine. But the dependencies were a massive pain.