- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Bureaucratic problems require bureaucratic solutions.
Admin
Finally, a happy ending.
Haven't you ever wondered why, when reading about an application's changelog/history, it sometimes says "version 1.2.3 : functionally equivalent to 1.3.1 but released only in market X / for customer Y"? I'm sure I have seen something like this before. Well, this is (probably) why.
Admin
Ok, but WHY?
Admin
I once heard about a "new" version of a tiny open source tool - can't remember the name. The changelog read something like this :
Version 1.6.9 : it's been two years since the last update. That's beacause the software does its job perfectly and has no known bug anymore but people keep asking me if the project is dead ; so here is a version bump without any change to please them.
Admin
Until they upgrade from 3.4.31 to 3.5.0. Oops ...
Admin
So Initech is requesting new features, when they haven't approved the last (3.5) one yet? There's your problem.
Admin
This could happen again in the future.
So, Chops company should change their products to have 2 version numbers.
One version number would be the "public" version number, nicely displayed in the the "About" information, to keep Initech happy.
And the other version number (the actual one) should be hidden somewhere in some obscure place like some "Advanced settings" menu, so the helpdesk support people could still get that information.
Otherwise, Chops could also just hide the actual version number in plain sight, just below the fake one, thanks to some misleading label and smaller font to make it pass off as the version number of a mere internal component ("INITRODE OFFICE v3.4.31 - driver v3.5.1")
Admin
Sounds about right. Where I work, all software has to be approved by the state. We recently found out that we can no longer buy SSL certs from a certain vendor (because they aren't approved), but we can buy that same vendor's certs through an approved reseller. Go figure.
Admin
Did Initech have the request for new features approved by IT?
Admin
Ah, bureaucratic grift. Gotta love it.
Admin
The version number of this comment is held for moderation.
Admin
Sometimes I want to try a new whiskey, but my internalized hater of everything that is new rebels against any new brand names. I solved the problem by asking the liquor store to pour the new whiskey I want to try into a bottle of the brand I've been drinking for years, and voila.
Admin
I think Hanzito nailed it in one. Just like tech can't solve social / organizational problems, nothing but bureaucratic solutions can solve bureaucratic problems.
@Debra Ref:
The other scenario where I've seen this is where some other shop's code was built on top of ours, and that code included hard-coded version number checks of our code's versions that could not be changed because reasons.
So we had to continue to label our product, e.g. v3.4.x so Big Customer's crappy in-house add-ins / add-ons would still run while we're actually up to v3.6 or even v4.2.
Admin
3.5.1: Emergency patch release to fix a serious regression in 3.5.0. This patch is cumulative so no need to install 3.5.0 first.
Admin
This is exactly how my comment -- number 15 -- can be FRIST!
Admin
If your product is still compatible with code designed to run on version 3.4, semantic version says you shouldn't be incrementing the major version number.
Admin
Frist.4.31
Admin
You do know that not everyone uses "semantic versioning", right?
Admin
"Everyone was happy with this outcome."
That's the REAL WTF. That NEVER happens.
Admin
And what's the problem here? They've already updated numbers in changelog, now 3.5 will stand for something new.
Admin
"we shipped 3.5 a few months ago", possibly also to other customers.
Admin
The smart move now would be to immediately release 3.4.31 as 3.5.0 and then to rerelease it as 3.5.1 so that Initech can deploy 3.5.2 as it arrives…
3 new versions including a major increment in just a week – what productivity!
Admin
To be clear, everyone was blissfully happy. As in "ignorant".
Admin
@Hanzito, I think you have that backwards. Bureaucratic solutions create bureaucratic problems.
Admin
Where I work, I had to fight hard to be able to increment the version number of a program I updated. "Because other software check that number, and stop working if it doesn't match".
So, someone spent years checking a string that was designed and requested to be immutable. Useful... I guess.
Admin
Then there's the joy of Windows version numbers. Windows 3.11 existed for so long that many people wrote their version checks like this:
So when version 4.0 finally came out, the above version check would fail, and the program would go back to some Windows 3.0 limp-mode, or, more likely, throw an error message "upgrade to Win 3.11" and refuse to run. So the next version of Windows that shipped was officially 4.99.
Admin
Close, but not quite right.
The Win16 API
GetVersion()
returned the version number backwards, with the minor part in the MSB and the major part in the LSB, so lots of lazy programmers(1) would do stuff like this:So when Windows 95 (the first to be officially numbered as 4.0 behind the scenes) came out, it included code to detect that a Win16 program was linked to run on Windows 3.X, and for such a program,
GetVersion()
returned 3.95, coded as 0x5F03, which is, indeed, not less than 0x0A03.(1) Above all, ones who worked on what the book I read about this described as "commercially important" applications, which I'd guess refers to either MS Office or Corel Draw.
Admin
Seen this so many times..... from both sides. As Support, trying to persuade Engineering not to do this, then also having to do it.
Moral of this story - never have customers who can dictate this sort of stuff.
Admin
One of the biggest A fires I've ever seen play out had a root cause that the code to check the topology database version under or overflowed because this big client who was just like the one featured here was able to pick-and-choose their features and were anchored on their own version. Anyhow it was an edge case that mainline QA hadn't thought to test for. Old code at just this client. So while deploying an upgrade to their network, the moment the database version check failed, the entire nationwide network went "thud". Yes, it had to be power cycled.
Admin
Had something similar years ago, some big customer wanted a fairly minor change made for compatibility with some special-snowflake thing they were using. We made it and since the release hadn't been through the full roughly week-long battery of regression tests and whatnot (none of which this trivial change would have affected) it was tagged as "beta". Beta meaning "hasn't been run through all the releases tests yet but other than that equivalent to production code" rather than "experimental".
Someone saw the "beta" tag somewhere in a config file and had a fit. We explained why it was there and why it was a technicality that didn't matter. After numerous emails back and forth we decided it was easier to just hand-edit out the beta tag in the binary...
Admin
I've run into that before. Friend of mine wrote and maintained a widely-used small open-source utility and used to get queries like that, "X hasn't been updated in Y years, is it abandoned?". His reply was "no, some people just take care to get it right the first time".
Says something about that sad state of our industry that people get suspicious when there aren't patches and band-aids applied all the time.
Admin
The product may have plenty of totally incompatible features and have underwent a total rewrite, but still be perfectly compatible with an add-on that uses about 1 % of the products feature set & API.
Admin
Programs do not live in void and as the environment changes they generally have to evolve too so no changes for years do usually mean that the program has been abandoned and possibly will not work in your new version of OS.
Admin
Well, the problem is their "3.4.31" is actually the normal 3.5.1, not just a generic "3.5". If they what they "upgrade" to is specifically a normal 3.5.0, it is actually a downgrade. A downgrade that they paid for.