• Reinder (unregistered) in reply to R.Flowers
    R.Flowers:

    I favor starting at some large, arbitrary number and counting down. When you get to zero, you can't have any more issues. Which is good, because you don't want customers or clients to get the idea that you actually have issues to resolve.

    Plus, when you get to, say, number 32, you'll say "Thank God I'll soon be through with this s**t!"

    Real software converges on perfection, as TeX (currently at version 3.141592) and MetaFont (version 2.71828) do.
  • (cs) in reply to Mark H
    Anonymous:
    You're still disregarding the fact that two strings can have the same hash. In that case, you can only narrow it down to two possible versions.
    If you are getting collisions with a 16 byte hash of your build number, then either you've got a pisspoor hashing algorithm, or you've got way too many builds.
  • jim (unregistered)

    Wow. That actually sounds like the sort of place I'd enjoy working. I gave up getting annoyed by management and other 'superior' beings and now look forward daily to the opportunity to express my feelings in an open and honest maner.

  • mostlyevilfrank (unregistered) in reply to Anonymous Coward

    Wouldn't it be 94 (LXLIV) and 44 (XLIV) years since L = 50 and C = 100?

  • Build Guy (unregistered) in reply to Martin

    Oh that won't work either.  I wasn't using MD5, but something else that jumbled up some info so it wasn't obvious to the user, but could be decoded.  Well one day it generated the string SEX in the middle of the jumble.  To borrow your md5 string it would have looked something like this

    d41d8cd98f00b20sex800998ecf8427e

    Now the program was being profane.  Oh please!

  • (cs) in reply to mostlyevilfrank
    Anonymous:

    Actually it's 84 (LXXXIV) years till we get a C in there again, hell it's 34 (XXXIV) years till we get an L.

    Anonymous:

    Wouldn't it be 94 (LXLIV) and 44 (XLIV) years since L = 50 and C = 100?

    You're counting right, but you forgot your roman numerals.

    We hit an L at MMXL, which is only XXXIV years away.  And there's a C at MMXC which is only LXXXIV years away.
  • kahuna42 (unregistered) in reply to Phrediac
    Phrediac:
    Anyone remember dBASE I - never existed - it was decided that version II sounded more stable. Or, WinWord 3, 4 or 5?

    Does anyone know what happened to Preparations A - G?



    there wasn't a winword 3,4, or 5 because they decided that the version numbers needed to match the DOS version of Word...

  • lrb (unregistered) in reply to Mark H
    Anonymous:
    Anonymous:

    Silly as the request is one could rename 'Version' to 'Release Code' and then take some sort of hash of the version and build number. 

    It will be a pain for support to have a little de-hasher program and a pain for the customers to recite some long string of senseless letters and numbers but hey we're all used to that from trying to register WinXP anyway



    This is not a WTF. Managers and marketers aren't always idiots, but I think programmers are too quick to assume that they're always right. Sure, you need release information for support purposes, but its not inconceivable that showing end users the number of builds between releases is undesirable.

    Of course, a hash of the build number WOULD be a WTF, because there's no such thing as "dehash" -- by definition. Of course, some other kind of encoding would make perfect sense. How about hex? Or some kind of alphanumeric cypher?

    Plain: Release 2.8 (Build 448)
    Hex: Version Code 2-8-1C0
    Alpha substitution: Version Code B-H-DDH

    Of course, this probably wouldn't occur to a product manager or marketing manager because they're not computer scientists. The real WTF is that the developer didn't come up with an obvious solution to a trivial problem and helpfully suggest it as an alternative to the manager.

    Nothing will ever beat the PHP WTF from a couple days ago. Everything from now on is just denouement.

    This is far from a "trivial problem".  While programmatically it may be simple to obfuscate the version and build numbers so that they couldn't as readily be understood by the customer, that is not all that would need to be done.  This change would affect at the very least customer service, quality assurance, and sales.  It would necessitate a company wide restructuring of communications involving different versions of the product.  This move could also cause customers and partner companies to restructure their communications as well.  At the very least several major processes would need to be altered.  Also, due to all the change, the propensity for miscommunicating will rise resulting in a higher likely hood of errors being induced into the product.  All of this adds up to a cost that will be far from trivial. 

    Why do this?  Because of the opinion of one product manager and the head of Marketing?  Dirty Harry said it best when describing opionions in that they are like butt holes, everyone has them and most are full of crap.  Where are the hard facts to backup the need for the change.  Where is the business case spelling out what the costs will be both for doing the change and not doing it.  What will be the benefits?  What will be the ROI? Where is the research into industry best practices?  Where is the list of potential risks and mitigation factors?  I'm talking about process change, not programmatic change.  This is a business problem not a technical problem and there should be significant business justification before making such a major change to the product and it's surrounding processes.

    I don't see how the product manager nor the head of marketing could possibly be qualified to hold their position is a software company when asking for such a major change in company intra and extra communications without having a validating and detailed business case to justify such a change.  This is just bad business.  At the very least the two individuals should recieve a formal warning if not be fired out right.  Idiot decisions like this can drive a company out of business very quickly.  I've seen it done on more than one occassion. 

     

  • Ken Weinert (unregistered) in reply to Build Guy

    We have some 15 character base26 IDs at work that we generate and we have the same issue, but it's usually the 4 letter "words" that cause us to drop that ID and generate another one.  It's usually only when someone in management notices one of those that we have to go throught the gyrations of reprocessing a document so it has a different unique ID.

    Amusingly, the folks rarely notice it when it's at the start of the ID - of course ours are all ASCII so they don't stand out quit as much when they don't lead off.

  • Euncheese (unregistered) in reply to Carnildo

    Hah! I wouldnt' send the email. I'd go home, disconnect my phone, get to the golf course and see how many paychecks before they stop coming altogether.

  • (cs) in reply to Deparment of Redundancy Department
    Anonymous:
    Stupid people abound. If you say you're going to quit or resign, then you are just as stupid because you're going to find the idiots cousin at your next job. Adapt. Overcome.

    Ah, the refrain of bitter jaded people who have never been at a decent company.  I'm sorry, dude.


    Amen to that bro. There are good managers out there like there are good companies out there.
    Seriously I've seen them (though they hide during the day)
  • avery (unregistered)

    really hilarious! i hope A. Selvan, did not plan on killing them. ^_^ (kidding)

  • alah (unregistered) in reply to Code Slave

    The versions of Windows are correctly consecutive: 9x are 4.x, 2000 is 5.0, XP is 5.1

  • alah (unregistered) in reply to alah

    ... sorry, too late. I already found the many readers wrote the same answer ... forget it.

  • Anonymous (unregistered) in reply to alah
    Anonymous:
    The versions of Windows are correctly consecutive: 9x are 4.x, 2000 is 5.0, XP is 5.1


    You seem to forget NT 3.1, 3.5, 3.51 and 4.0.

  • Miles (unregistered) in reply to RatDancr

    I liked Clipper as well; it was the finest XBase compiler of its day! Btw, Paul, just to refresh your memory, it was called "Summer 87"...

    I stopped using Clipper when I switched to Delphi 1.0 in 1995; Clipper was at version 5.02E and CA (the new owners of Clipper) were trying to get everyone to buy into the OOP paradigm with a Clipper-based product that REALLY stunk...

    I loved the email chain - I think I may have worked there as well at some point. Keep up the good work.

    Thanks for the laughs, and the detour down memory lane!
    Miles

  • Pinkfloyd (unregistered)

    And who would want to purchase version 1.0! Fricking idiots, point to Micro$soft products, having a version number is like wiping your ass after dumping one, you just do it cause you don't like having that mess to clean up after!


    When the trouble tickets keep coming in and you need to know the version forward them to his blackberry on the golf course!

     

     

     

     

  • Christian Jensen (unregistered)

    What about random numbers with the version embedded in it?

     

    aksj28dhfskjdh448asdfkj2xy

     

    and call it a license token or something like that.

  • William (unregistered) in reply to Demarcus Cherish?
    Anonymous:
    Anonymous:
    As retarted as this request is, the ones I see make this seem reasonable!


    Sad when you can't spell retarded. :)


    No, you're misunderstanding. A tart is a kind of cake. He's saying that not only did the original request take the cake (which would be "tarted") but took it twice over. Thus, "retarted".
  • Bill G. (unregistered) in reply to William

    My daughter just showed me this site and I am AMAZED at the number of serious responses to the brain f**t expressed in the original series of e-mails.

    For those of you who expressed an instant desire to change jobs, let me relay a true story...

    An industrial equipment salesman was becoming ever increasingly frustrated by his boss.  He began to truly hate him.  Finally, although otherwise quite happy with all the other aspects of his employment, he sought and found a new job at a competing firm.

    He was now happy in his new work.  The Monday of the second week at his new desk, his new boss comes into his cubical with another person in tow -- his old boss -- and introduces the old boss as his new supervisor!

    There is another, much longer story about a little bird not wanting to fly south for the winter.... and how he learns to keep his mouth shut, but let's save that for another day.

    Have fun at what your doing...

    An old geezer.

  • (cs) in reply to Bill G.

    agreed, old geezer.  i'm old enough to appreciate a good laugh and not go off half cocked at being told to do something stoopid.  let's face it, if everyone could appreciate what we do (as developers) then we'd lose a lot of our mystique, and then where would we be?  without a wtf, i'd imagine, and what kind of life would that be?... :-)

  • Anonymous (unregistered) in reply to William

    Taking a serious look at this, version numbers do have a psychological effect, as has been pointed out.  Also, different parts of the organization have different needs.  The solution I designed for our company is to provide different version components for different parts of the organization.  The point is, you want Marketing/Sales to keep their fingers out of Development, and you want the Build Team to be able work without interference from Development.  So, we have a ProductCodeName, ProductVersion, ProductBuildVersion, and ProductPatchVersion.  Development gets the ProductCodeName, Marketing/Sales gets the ProductVersion, and the Build Team gets the ProductBuildVersion and ProductPatchVersion.

    The full product version is machine-generated using the following simple rules:

    1. If the ProductCodeName is set and it is the same as the ProductVersion, or the ProductVersion is not set, then the version is Code Name X [Patch Y] Build Z, where the patch is only displayed if set.  This defines internal builds before release.  Otherwise,
    2. If the code name is explicitly being requested then the version is Product Version W (Code Name X) [Patch Y] Build Z.  This is for detailed "About" information, not normally displayed.  Otherewise,
    3. The version is Product Version W [Patch Y] Build Z.  This is the typical version displayed for a released product.

    The ProductBuildVersion is ALWAYS incremented, whether the product has been released or not (that is, whether the product is going by its code name or by the marketing release version).

    Now, here's the point behind all this.  Development is just trying to get their work done.  They don't care about version numbers.  So, they use code names so that they aren't stuck trying to figure out what "numbering scheme" to use.  Marketing can call the version whatever they want when they finally figure out what they want to call the product.  The product version can even be a string for all anyone cares.  The build team needs to uniquely track all deliverables, so the BuildVersion is the most important thing to them.  The PatchVersion is used to effectively "group" a set of builds, for compatibility checks for example.

    The About Box displays the version as (1) above before release, and as (3) after release.  The "About Box" also has an "extended" display (not normally seen) that displays a pile of detailed information, and displays the version as (2) above.

    To satisfy the "paranoid" marketing types, (3) could be reduced to just Product Version W, if desired.  (Again, the extended information is normally hidden.)  Since the ProductVersion is determined by Marketing, they could call it whatever they think fits the psychology of the customers.  And since the other information is retained (albeit normally hidden), engineering and the build team can always identify exactly what the customer has.

    As a final comment, remember that the build version may show up in documentation, and that is another reason to separate what engineering and marketing call the product.

    To conclude, different parts of the organization really do have different concerns, and nowhere else is this more apparent (and frustrating) than in the supposedly simple concept of product version numbers.  The solution is to listen to the needs of these different areas and design a scheme that provides a solution to meet these needs.  The scheme we are using so far has worked pretty well in this regard.

  • Anon (unregistered) in reply to Knobcheese

    Anonymous:
    I'm fairly sure I work for these people.

    That's exactly the sort of request I'm seeing on a day-to-day basis.

    It's hard to stay sane.

    Simon

    We probably work in the same building. To fix a bug, I have to ask the date/timestamp of the affected dlls, reverse engineer the release number, and fix it accordingly.

    And the new fix that goes out, it has no version numbers too.

    Someone shoot me now. Please.

    Anon

     

     

     

     

  • Anon Coward (unregistered) in reply to Unklegwar

    The reasoning *I* heard, when they went to "95" was that "it's too difficult for users to figure out the latest version".

    How hard is it to compare 4.0 and 4.1 and figure out the new one?

    The entire WORLD of computer users is a WTF.

    Yeah, but is version 4.11 later than version 4.2?

  • JoeJoe (unregistered) in reply to snoofle
    snoofle:
    Bus Raker:

    Anonymous:
    NT, as we all know, stands for No Troubles. So putting that in there would have been redundant.

    I heard that Windows NT stood for 'Nice Try'

    Really? I heard it was for "Not Today"



    I always heard that Windows NT was supposed to be one step better then VMS.  VMS was a big time competitor at one point. 

    WNT
    VMS
  • Neil T. (unregistered)

    I almost cried I laughed so hard when I read this...fucking marketing people.

    I hate to say that and come accross as a prick with a superiority complex, but the reality is the intelligence level (or lack thereof) of the average marketing person makes it's hard not to come accross that way.

  • Snort (unregistered) in reply to OOB

    "So the version of the app i work on is 8.95 so under this rule it took us 895 releases to get it right... dang the build number isnt shown."

    Don't worry, the next release will be version 9, causing a time travel paradox that results in making 887 releases magically disappear from history.


  • Snort (unregistered) in reply to Jim Howard

    "Our marketing person made us take our names out of the about box, but taking out the version numbers is a gigantic WTF.  The googles, they do nothing!"

    Which is bad enough, if you compare it with the movie industry, where at the end of the movie the names are listed for everybody, including those who's brother once yielded to a makeup artists' newspaper delivery guy.

    Maybe standard practice for software should be to show the names of everybody involved everytime you close the application, end your cell phone conversation, finish brewing the pot of coffee, or change the channel on the TV.

    And when he delivers the newspaper at 3.am, the newspaper delivery guy himself should shout out 'this newspaper was created by', followed by a long list of names.


  • ziz (unregistered) in reply to R.Flowers

    On installing an Invoicing system for a company we always used to start with a 6 figure number arbitrarily chosen to give the impresion that this company ha dpreviously issued 2231,654 Sales Invoices before today.

    However IT screwed up screwing the Marketing guy. The correct response is

    Gee thanks for your help. I have taken note and we will implement your ideas with the next software revision.

    The block all future e-mails from him (it can't possibly be a her).

  • Kay Pentecost (unregistered)

    Simple!

    Put the build number in in white text on a white background. 

    Then copy all the emails for support to the guys who asked for that.

    Kay

  • (cs)

    How come all of a sudden I want to jump off of a mountain?

  • Duffy W. (unregistered) in reply to RatDancr

    Yes, but now FoxPro 9.0 is freaking awesome (ESPECIALLY paired with Crystal Reports and SQL), and Clipper go bye-bye.

    (I liked Clipper, too. Preferred FoxPro. Always.)

  • PtPazuzu (unregistered) in reply to Mulder
    Anonymous:
    Anonymous:
    Actually it's 84 (LXXXIV) years till we get a C in there again, hell it's 34 (XXXIV) years till we get an L.


    However "XL" would be a nicely marketable version number, of course having to be followed by XXL, XXXL and "SuperSize" versions.

    wouldn't there just be a request for a one-size-fits-all version ? ;)
  • JCarter (unregistered) in reply to Chris

    Nope. Not V1.0.0

    Our company has Major, minor patch and build numbers.

    They all start counting from 1 since customers don't trust anything 0.

    The build number is hidden from the customer.

    Oh yes, and the Dilbert Zone has  theme music.

    You know, like the Great White Shark in jaws has that dum-dum-dum-dum- music whenever he is near?

    Well the theme music for the Dilbert Zone is the original Hamster Dance.

    Do-de-do-do-do-de-do-do. Do-de-dododo....

    I hear it in my head all the time....

  • (cs)


    The reason is simple: when they see  "Version 2.8 (build 448)," they
    will think that it took us 28 releases and over *four hundred* builds
    to get right.

    Wow. Good one.

    Well, somebody somewhere once said "turn your weakness into your strength"

    That said.....

    Mint Strength: 2.8
    Feature Strength: 448
    Total Strength: 1254.4% ( a meaningless, yet impressive yield )

    Semi-marketable, semi-obscure, still usable during support calls.

    A side note: Marketing has clearly lost focus when they begin to pander to the smallest market segment, in this case - the few users who would acctually take issue with this information.

    If the Marketing Manager really has "valid" issues with the product, it's time for one of those *Come-To-Jesus* company meetings. However, this really smells like a single field-sales "observation" that got WTF'd up the wrong flag pole.

  • (cs)

    This reminds me of the time when I was told by my managers to inflate the version number of the software to make it look more mature and stable, and I had to add junk files to the installation so that it required more discs "so that the customer felt like they were getting their money's worth." (paraphrased quote)

  • (cs) in reply to ABB

    ABB:
    Well, you can version it as 2006.06.17.23 than, every one will be happy.

    So it took you 2,006,061,723 builds to get it right.  Impressive.

  • Geroni (unregistered) in reply to Dragan

    Anonymous:
    With this logic we would have WD-1 (or just WD) product today, instead of WD-40 :-)))

    Hell, I wonder what was the problem with the first 46 versions of the AK-47?

  • (cs) in reply to Geroni
    Anonymous:

    Anonymous:
    With this logic we would have WD-1 (or just WD) product today, instead of WD-40 :-)))

    Hell, I wonder what was the problem with the first 46 versions of the AK-47?


    I think you hit on the right approach for explaining out ISO9000 and Windows 2000...
  • Jenda (unregistered) in reply to Stephen

    Well ... I kinda have the reverse problem. From time to time (like once every two years) I get a question from the product manager "and what's the version number of the system" ... well .. how do i know? Each of the pages has a version (from Perforce), each of the DLLs and background apps have a version ... but he whole app? With a release cycle that's anywhere between two days for a simple change ni one page to three months for big changes? With parts that havn't changed for years and others that are updated like every  two months?

    So we just make something up to look good in marketing materials ... what the heck was the last made up number? 4.7??? ;-)

  • Jenda (unregistered) in reply to Jean Where Chain Co.
    Anonymous:

    Current Version = Paula

    Next Version = FileNotFound

     

    Remonids me of something that happened to a friend back at the Univ. He was doing something in Turbo Pascal and Turbo Vision and somehow something was not freed in the correct order and even though everything worked fine whenever the program exited, the last thing it printed was "Null pointer assignment". No matter what he tried, this was what was left after the program at the DOS prompt. So he solved it by printing "Made by: " just before that ;-)))

  • Dynoroddy (unregistered) in reply to Pete

    I prefer it when management & marketing expire

  • pietro (unregistered) in reply to Ged
    Anonymous:
    Anonymous:
    Suddently, the whole progression of Windows release naming schemes makes sense:

    Windows 1.0, 2.0, 3.0, 3.1, 3.11, 95, 95a, 95b, 98, 98SE, ME, 2000, XP, 2003, Vista(Longhorn)

    And oddly enough, the CAPTCHA is "quality"


    Who, wait! What happend to NT 4.0, NT 5.0 ???


    Not to mention, Win2000 came out BEFORE WinME, so the order is wrong there, as well.
  • Jim (unregistered) in reply to DarthTim

    Hehe, you misspelled retarded!

  • gggg (unregistered) in reply to TechNoFear

    Yeah, and DOS 3.30, 3.31, 5.5...

  • PauAmma (unregistered) in reply to Code Slave

    IIRC, it's 1.0, 286, 2.0, 386, 3.0, and the rest as listed.

  • Me (unregistered) in reply to Ged

    I think the history went more like

        1.0
         |           (OS/2)
        2.0          /
         |          /
        3.x_       /
         |   -NT3.0
         95     |
         |      |
         98   NT4.0
         |      |
         ME   NT5.0 (2K)
              NT5.1 (XP)
              NT5.2 (XP64, XP Home server, 2K3)
                |
              NT6.0 (Vista)
              NT6.1 (Server 2008)
                |
              NT7.0 (Vienna/Blackthorn)
    
  • (cs) in reply to Bus Raker

    Actually, at my most recent job (worked there for just over a year) we averaged one build a day (once, 3 builds in a day). Specifically, >400 builds in 13 months. This is definitely not a good thing (and definitely indicative of bad coding/QA practices), but it happens at some organizations.

    But the point is that most of these builds weren't released. Build 448 doesn't mean 448 releases, or even 448 patches.

  • (cs) in reply to Shizzle

    Glad to know almost everyone commented here thought this is comical. Its been almost 3 years since I left that place and I am sure nothing changed. If you thought this was funny, I have more at http://selvans.net/gems

    Enjoy!.

  • someone (unregistered)

    They could add an listener to the info dialog which listens to a certain key-combi and then outputs an encrypted (hint: RSA) string which contains the version/built/etc number and can be decrypted by an utility on the helpdesk pc's.

    In that case if an user finds the keycombo, they get some meaningless string, reading it char by char to the helpdesk and feeding it in the util will reveal the info! eg, they create an dialog like this:

    +-----------------------+
    |INFO: HELPDESK DATA [X]|
    +-----------------------+
    | 1: 113                |
    | 2: 252                |
    | 3: 356                |
    |         [ OK ]        |
    +-----------------------+
    

    The numbers being RSA encrypted id's which match an db entry containing the needed info. e.g they decrypt to something like: 28 440 431 Those keys then match an db entry for: Version 2.8 build 440 SP3

    And there you go! The users don't see the info, nor can they relate it to version/built/etc info without the private key which is only known to the devs/it/util.

Leave a comment on “One Version to Rule Them All”

Log In or post as a guest

Replying to comment #:

« Return to Article