You want us to make a change? We can do it, but it'll cost you...
- Reference: 1631518212
- News link: https://www.theregister.co.uk/2021/09/13/who_me/
- Source link:
"James" is the Regomised teller of today's tale, which takes us back 20 years to the financial sector. It was a time of acquisitions; his employer had just snapped up a competitor. Not that it mattered to R, he was serving out his notice prior to a move to a workplace closer to home.
The banking world was being dragged kicking and screaming into the new century and James' employer was no exception. It offered its business customers all manner of cutting-edge services, including the ability to upload a file containing all cheques received that day (rather than requiring them to enter data by hand or send scans to the bank).
[2]
Well, perhaps not that cutting edge. While the file could be uploaded many times a day, it had to contain all the day's cheques since it would be overwritten every time.
[3]
[4]
The newly acquired bank had whizzier tech. Its customers could also upload the cheque file many times a day, but the files only needed to contain new data. The file on the server would be appended to.
So how to deal with the overwriting problem? "This web software," James told us, "was provided by an outsourced vendor and, when asked what it would take to fix the issue, the response was, '$100,000 and six months'."
[5]
Gosh. Unsurprisingly the issue had been bouncing around the management floors for quite some time.
Despite James being on his way out, he still had the title of "Manager of Software Development" and so was summoned to give his take on situation. It wasn't his (or his team's) system but, being a helpful soul, he trotted to the server room to see what code was actually running on the hardware.
Fifteen minutes later he reported back to the CIO: "I could do it in about six seconds."
[6]
The CIO, still stung by the six-month, $100k quote, questioned James' word. What was the catch?
[7]A practical demonstration of the difference between 'resilient' and 'redundant'
[8]How to stop a content filter becoming a career-shortening network component
[9]Hacking the computer with wirewraps and soldering irons: Just fix the issues as they come up, right?
[10]Scalpel! Superglue! This mouse won't fix its own ball
There was none. Other than the vendor's choice of platform and language.
"I explained that the website was written with a technology called 'ASP'," explained James. "The source code for that page was accessible to me."
ASP, for the uninitiated, was Microsoft's first crack at a server-side scripting language and turned up in the late 1990s as part of the Windows NT Internet Information Services. It has since been superseded by ASP.NET, but we'd be surprised if there aren't an awful lot of servers out there still running it.
Since James had access to the code, he was quickly able to find the section that received the customer's files and saw a line that looked a bit like this:
Set outputFile = fso.OpenTextFile(outputFileName, 2, True )
Ah yes, the good old FileSystemObject. James explained his proposal to the CIO: "That little 2 means 'overwrite the file.' If I change it to an 8, the file will be appended to and can just grow until we clear it."
He was quick to reassure us that he also added some CONST lines and used ForAppending rather than a plain 8. Hopefully he also updated the format argument as well.
A single change of an argument for $100k and half a year? So it would seem.
Sadly, James did not see the pay-off the vendor had demanded. He did, however, get some time to test the change really was that simple before it hit production.
"It did precisely what was needed," he said, "and the bank went on using that software for a few more years, without issue, until they, too, were bought by another bank."
Ever found the time and cash demanded by a vendor was vastly more than truly required by the actual change? Or were you that vendor, plucking figures out of the air, perhaps to discourage a pesky client from making annoying demands? Confess all with an email to [11]Who, Me? ®
Get our [12]Tech Resources
[1] https://www.theregister.com/Tag/who-me
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YT8hYyLQ5ELAQ1IgWB6dkAAAABM&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YT8hYyLQ5ELAQ1IgWB6dkAAAABM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YT8hYyLQ5ELAQ1IgWB6dkAAAABM&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YT8hYyLQ5ELAQ1IgWB6dkAAAABM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YT8hYyLQ5ELAQ1IgWB6dkAAAABM&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[7] https://www.theregister.com/2021/09/06/who_me/
[8] https://www.theregister.com/2021/08/31/who_me/
[9] https://www.theregister.com/2021/08/23/who_me/
[10] https://www.theregister.com/2021/08/16/who_me/
[11] mailto:whome@theregister.com
[12] https://whitepapers.theregister.com/
Re: Screw-up?
Who, me? Has turned into do the job your paid for, aka BAU.
I had thought that 8 would be the number of appendages and it broke over vm a bank holiday weekend or Christmas where some jurisdictions where still operational and doing file updates that effectively exceeded the appendage limit.
Re: Screw-up?
I suspect that the application worked on the assumption that in that file there couldn't be duplicate records for the day since it was overwritten each time, but now that assumption was no longer valid and the modification caused unintended consequences downstream.
Yes I know the saying about assumptions; as for myself I'd have some check in place anyway, just in case the same transaction was received twice on consecutive days...
Frequently...
Ever found the time and cash demanded by a vendor was vastly more than truly required by the actual change?
Yes, frequently.
When new in the current role we had one report outstanding that just didn't balance correctly, holding up sign-off for completion of the ERP implementation (I'd only come in towards the end to clear up the sh1t). Vendor suggested another day on site was needed and, "Could we bring another person along for the experience?"
After a full day's work they didn't resolve the problem* and then billed us for both people, travel, etc. In the mean time I'd completely rewritten the report in about 2 hours despite the fact I was unfamiliar with the data structures for that particular ERP system. I would have refused to pay but I suspect management approved it just to finalise the project.
*When I looked at the report it had VAT as price * 0.175 hard coded when the rate had recently dropped to 15%, and we were an exporter. The core table they were taking the data from had the correct VAT included as a field.
so many times
From a file format change fixed with 15 lines of VB to a change to an SAP interface which would stop the business operating (a previously unpopulated field now required populating with the same value as the field beside it) I was quoted 6 months to perform and implement the change.
This was a subsidiary of a huge energy company, the company I was working for had to submit these files daily to receive any revenue for the engineering jobs being performed, this was 10'000's per day.
This did involve me attending a corporate CAB meeting (a very large multi national) where I had to publicly humiliate the Lead SAP Dev Manager to get the change approved). It turned out she had never read the, very detailed change spec I had submitted and had merely declined the request on the basis that it was 'none core' and 'none urgent'.
In reality it would have lost £20 million pounds of revenue and would have resulted in the closure of the subsidiary business
Naive...
When you work for customers that when roles are reversed are going to screw you, you HAVE to screw them. That's why anything I did for lawyers, for example, costed far more than it would for another customer.... they will never do anything for you without asking a lot of money. Here they even have official prices they can't go below without being kicked out from the "Order". They even obtained that price fixing is legal, poor lads and lassies...
Working for a european bank out in Romania
I was implementing a new service bureau for a european bank out in Romania (worked out there for about 4 months)
Long story which I won't go into though it was internal service bureau competing against another internal service bureau but it was more dynamic to changes and would charge 10% of the cost of the other one and ran with with 15 staff total rather than a couple of hundred, I digress....
I was interrupted with what I was doing and was asked to join a conference call between them and a vendor trying to upsell something in the product as a party with no vested interest with either of them.
The vendor was saying that this new component was going to cost €100,000 and was trying to get the bank to foot the development bill even though the vendor was trying to sell it to them. I said, I could implement what the vendor was trying to sell for free with the current software and about an hour of time so didn't need it at all.
Was fun listening to the vendor get angrier and angrier as they realised their attempt to get the bank to pay for the dev (which they would then sell on to other customers) evaporate before their eyes and that the rest of the value add had evaporated with it.
Fun times!
"Ever found the time and cash demanded by a vendor was vastly more than truly required by the actual change?"
I had a client who managed to do that all on his own.
I did occasional support work for him but the vendor still required a support contract with themselves. To enforce this they had some sort of lock on the system which involved periodically running something - I'm not sure if they logged in remotely, sent him a file to run or just gave him instructions to do it himself. I kept well clear of that. What they didn't do was provide actual updates to the S/W so in that respect they weren't providing anything in particular, just occasional problem solving.
My remit had been a bit wider as general Unix and DB admin stuff. I'd very quickly come to my own view of their S/W and, in fact, one of the things I was doing was writing bits & pieces round it to do stuff the client wanted. Eventually he realised that their support contract was providing him with nothing and he worked out the coding of the lock file that had to be changed every 6 months or so, ended the contract and updated the lock himself.
Web sites...
I'm not an IT person but I did have to act as translator between IT people and other staff in the education sector in the same time frame as James and his bank.
A college Web site had a course listing with days/times/subjects/costs etc. The listing was produced from a spreadsheet on the shared drive via Mavis with a copy of Dreamweaver with some templates. The spreadsheet was updated by the managers for each department, and it was the Single Source of Truth for both the Web site and the printed brochure, the latter merged into a QuarkXPress template.
Time to get professional: A Web design company made a presentation to marketing manager about a database driven Web application and something was bought on a subscription basis.
Result: Mavis still produced the printed brochure from the Single Source of Truth spreadsheet, but also now had to retype the information into the poky little form on the admin page of the Web application. So we were paying monthly for a system that generated more work with the possibility of errors.
These days: most have got back to something sane (a Single Source of Truth, but these days coming from a business planning application - another source of pain).
Screw-up?
This being a "Who, Me?", I was waiting for James to accidentally bring the bank's online systems crashing down, accidentally trash the accounts of a major customer, that sort of thing. Yet his simple modification worked just fine - and he performed testing on it as well.
What gives?