F(i|un)ctional Specs



  • I'm by no means a veteran programmer, but I've got a fair amount of experience and seen (and unfortunately in my early days, produced) a fair amount of WTFs. Most alarmingly, the biggest WTFs come before developers even get a look in. "Functional" specifications are always a hoot. I thought I'd share some of the best I've seen.

    The first batch come from work orders directly from the company's CEO. He was frequently out of the country, and would send these through to us at around 3am his time. And if you questioned them, he'd threaten to outsource development.

    • The page with Sell for Good needs secure payment logo's visa cards etc on it to make it more comfortable for this user. Please can you suggest where and what does there ?

    The request needs to be written in readable english to make it more comfortable for this developer. I can suggest where and what does there, if I knew what you meant.

    • Page reference : BUY PAGE. Not always redirects so suggest change text to PROCEED TO CHECKOUT. Or you decide.

    WTF? I almost changed all the text on the BUY PAGE to "PROCEED TO CHECKOUT", put the change live, and then tell him that it was what he requested when he complained. But I was having outsourcing threatened as it was...

    • Does anyone know why this message is being presented to users see attached. Please an order and this is what I got ? Can you crack on with this when slot?

    Yes, when slot. I'll do it when slot. When slot when slot when slot. As for pleasing an order, I complimented the order's haircut and bought it flowers, but failed to please it.

    • Characters.. ‘any’

    Unfortunately, I'm not making this up. I wish I was. That was the entire request.

    Then there are the specs of this sort. The type that, in a spec about "capturing user data", include lines like :

    • First name (e.g. Mark)

    Thank you, I was wondering what a "first name" was.

    • Date of birth (e.g. 03/04/81)

    Hmmm.. 3rd of April or 4th of March? Should we really be using two digit years? Ok, whatever you say...

    • The timetable operates on a 26 hour day.

    ... and no expanation of how on earth this should actually work. Great, explain to us what a "first name" is, but gloss over the specialized 26 hour day timetable. When this was questioned, the response was, "Oh yes, sorry, that's a typo. It should read '36 hour day'."

    • Group bookings are discounted. For 2 adults and 3 children, the price would be the normal ticket price for one adult (43.50) plus the normal ticket price for two children (23.50 * 2)

    Right. So, for 3 adults and 2 children... it would be... um... Care to elaborate? Or is there not enough space left in the document after you've told us in great detail what a surname is? No, I can't work it out from the information given.

    • New items will have a star next to them.

    Ok, no problem. How are you defining "new"? Unread? Received today? Unread AND received today? Are you sure you don't just want unread items displayed differently?

    • You can tell if items are new by the star.

    Yes, I get that. But how does the SYSTEM know to flag them with a star?

    • Because they're new! Just like on yahoo!

    i could go on... and on... and on... but I have some specs to read and implement as soon as I get a when slot.



  • Case in point for my frequent reference to the company board room as The Short Bus.



  • We really need to figure out what it is about written communication that makes people forget to make sure that what they're saying makes sense. I get such nonsense requests all the time from users and BAs, too. I wouldn't be surprised if this was the case with everyone else here. For some reason otherwise clear-spoken people just don't make any sense when reporting bugs in e-mails or other types of communication.



  • Our COO has an even poorer grasp of the written English language than this. I've often wondered what bizarre counter-karmic force propels imbeciles with a second-grade reading level and slug-like intelligence into the positions of the most responsibility and the highest salary in our society.



  • @Nether said:

    Our COO has an even poorer grasp of the written English language than this. I've often wondered what bizarre counter-karmic force propels imbeciles with a second-grade reading level and slug-like intelligence into the positions of the most responsibility and the highest salary in our society.

     

     

    <TunnelRat> Were they Indian or Pakistani, by any chance?</TunnelRat> 

     Seriously, this always bugs me.  How people this stupid can be executive management and live luxuriously, while hard working people slave away, really boggles the mind.  Just like how, in every company I've been at, the owner/CEO always expected to have full Administrator, unrestricted access to anything and everything, just because he/she/it was "the boss".  People don't think, and expect fear or servitude to be the only explanation they need to use for anything - case in point, threatening outsourcing if idiotic demands aren't met.



  • As definitive proof, have any of you read anything that has been quoted from our fearless president, as often noted by Gary Trudeau in Doonesbury?



  • And this, my friends, is why we need BAs.  It all makes sense now. 



  • @belgariontheking said:

    And this, my friends, is why we need BAs.  It all makes sense now. 

     

     

    Ummm yeah. Cuz a programmer deciphering bad grammar and a BA deciphering bad grammar makes a WORLD of difference. 



  • @Nether said:

    I've often wondered what bizarre counter-karmic force propels imbeciles with a second-grade reading level and slug-like intelligence into the positions of the most responsibility and the highest salary in our society.
    It's the Peter Principle or the Dilbert Principle.



  • @Lysis said:

     

    Ummm yeah. Cuz a programmer deciphering bad grammar and a BA deciphering bad grammar makes a WORLD of difference. 

    It's requirements gathering.  That's what BAs do.  They know how to talk to users.  

    All EpilepticFridgeBoy cared about was the implementation, and got frustrated when the user couldn't explain that to him.  A BA would know how to talk to a user to get that requirement with less frustration, or maybe transfer the frustration to the user.  I think the user deserves to be frustrated in this case, not EpilepticFridgeBoy.



  • @ObiWayneKenobi said:

    <TunnelRat> Were they Indian or Pakistani, by any chance?</TunnelRat>

     

    Just in case you didn't know, tunnelrat appears to have hacked the matrix and inserted a comment in your post.

     

    Oh and Helpdesk Girl forever, she even has a tattoo. 



  • After taking a quick shuffle through our bug tracking system, I've found a few of my favorite commands from my boss. Keep in mind, these are the FULL specs entered for bug fixes and requests:

     "Add a permission that is check for to delete a complaint." (I know he has to type fast when he's demonstrating the system, but how in the nine hells do you mess up your grammar that bad?)

    "On the prodcution report, add a field for the QA parts that may or may not affect yield for operators..." (Okay, I'll also add a button that may or may not drop the friggin' database when you may or may not click it.)

    "Add maintenance request tab to the screen that shows the whole existing program." (A favorite of mine...the "whole existing program" is actually just another MDI form, and WinForms projects don't support nested MDI forms)

    <insert any report request here> (I hate reporting as it is. The generic, uninformative request doesn't help matters at all.)



  • @LieutenantFrost said:

    Filed under: ME TALKUM GOOD ENGLALISH

    That made me LOL.



  • Wait, nobody has brought up [url=http://chroniclesofgeorge.nanc.com/]The Chronicles Of George[/url] yet?



  • @snoofle said:

    As definitive proof, have any of you read anything that has been quoted from our fearless president, as often noted by Gary Trudeau in Doonesbury?
     

    "Doonesbury" is a fairness-doctrine, liberal-media, Nixon-era relic that needs to be put down.  In other words, no. 



  • @LieutenantFrost said:

    After taking a quick shuffle through our bug tracking system, I've found a few of my favorite commands from my boss. Keep in mind, these are the FULL specs entered for bug fixes and requests:

     "Add a permission that is check for to delete a complaint." (I know he has to type fast when he's demonstrating the system, but how in the nine hells do you mess up your grammar that bad?)

     

    Badly.

     ;-)



  • @EpilepticFridgeBoy said:

    The first batch come from work orders directly from the company's CEO. He was frequently out of the country, and would send these through to us at around 3am his time. And if you questioned them, he'd threaten to outsource development.

    What an asshole! Talk about creating a hostile work environment.  I certainly wouldn't put up with my job being threatened like that all the time. 

     



  • @belgariontheking said:

    All EpilepticFridgeBoy cared about was the implementation, and got frustrated when the user couldn't explain that to him.

    In all cases, I was more than happy to sit with the user / functional team / BA involved and work out what it was they wanted, and I guess TRWTF is the backlash developers get from trying to do that. I had everything from being labelled "awkward" and "only works on the parts of the spec he wants to", to being threatened with redundancy.

    The best method I've heard of to get the people writing the specs to understand what you need (and I may have heard it from these very boards), is to place a shoe on the table and get them to talk you through tying the laces.

    "Ok, so take hold of the laces."

    ( I grab both laces in one hand )

    "No, one in each hand."

    ( I hold one lace in each fist, with the fist as close to the shoe as possible )

    "No, no no, between your thumb and index finger at the end of the lace."

    ... and so the exercise continues until they realise that they have to be specific with their specifications.



  • @operagost said:

    @LieutenantFrost said:

     "Add a permission that is check for to delete a complaint." (I know he has to type fast when he's demonstrating the system, but how in the nine hells do you mess up your grammar that bad?)

     

    Badly.

     ;-)


      Me.Life.Fail()

     :)



  • AT LEAST YOU HAVE A SPEC.  I have a bunch of poorly written, undocumented C code and a mandate to "port it to Java, but also don't do the stuff that's not needed anymore, and add new stuff that is".



  • @EpilepticFridgeBoy said:

    @belgariontheking said:

    All EpilepticFridgeBoy cared about was the implementation, and got frustrated when the user couldn't explain that to him.

    In all cases, I was more than happy to sit with the user / functional team / BA involved and work out what it was they wanted, and I guess TRWTF is the backlash developers get from trying to do that. I had everything from being labelled "awkward" and "only works on the parts of the spec he wants to", to being threatened with redundancy.

    The best method I've heard of to get the people writing the specs to understand what you need (and I may have heard it from these very boards), is to place a shoe on the table and get them to talk you through tying the laces.

    "Ok, so take hold of the laces."

    ( I grab both laces in one hand )

    "No, one in each hand."

    ( I hold one lace in each fist, with the fist as close to the shoe as possible )

    "No, no no, between your thumb and index finger at the end of the lace."

    ... and so the exercise continues until they realise that they have to be specific with their specifications.

    plz send me teh codez I need to weer shoes TODAY itz too cold for sandals.  



  • @belgariontheking said:

    @Lysis said:

     

    Ummm yeah. Cuz a programmer deciphering bad grammar and a BA deciphering bad grammar makes a WORLD of difference. 

    It's requirements gathering.  That's what BAs do.  They know how to talk to users.  

    All EpilepticFridgeBoy cared about was the implementation, and got frustrated when the user couldn't explain that to him.  A BA would know how to talk to a user to get that requirement with less frustration, or maybe transfer the frustration to the user.  I think the user deserves to be frustrated in this case, not EpilepticFridgeBoy.

     

     

    Are you so devoid of communication skills that when a user sits you down to discuss their business dilemma that you don't know what they are saying?  I really don't see the issue of needing a BA.  Perhaps a PM is useful in that he organizes and communicates with all parties involved for a certain software/IT project, but it's not saying much of hte programmer if they have been around the business for a reasonable amount of time and doesn't understand what needs to be done.  I can see it being difficult if you're new and/or don't understand the business, or possibly being new to the application and not understanding what function the user is talking about.  But these are things that even a BA has to learn and will never understand as well as the person programming it. 



  • @Lysis said:

    Are you so devoid of communication skills that when a user sits you down to discuss their business dilemma that you don't know what they are saying?  I really don't see the issue of needing a BA.  Perhaps a PM is useful in that he organizes and communicates with all parties involved for a certain software/IT project, but it's not saying much of hte programmer if they have been around the business for a reasonable amount of time and don't understand what needs to be done.  I can see it being difficult if you're new and/or don't understand the business, or possibly being new to the application and not understanding what function the user is talking about.  But these are things that even a BA has to learn and will never understand as well as the person programming it. 

    Sometimes, the developers are not expected to be the BA, Project Manager and Developer all in one. Often, new business is pitched for and specced up while the programmers are busy with other projects. Of course, this varies from company to company. BAs are specialised in being able to write these specs and ask the insightful questions that reveal what the problem is the client needs to solve. Sometimes, a company will write software for a wide range of clients, all with different business needs. It's quite a strain on the developer to expect them to keep up with all of that too. YMMV.



  • @EpilepticFridgeBoy said:

    Sometimes, the developers are not expected to be the BA, Project Manager and Developer all in one. Often, new business is pitched for and specced up while the programmers are busy with other projects. Of course, this varies from company to company. BAs are specialised in being able to write these specs and ask the insightful questions that reveal what the problem is the client needs to solve. Sometimes, a company will write software for a wide range of clients, all with different business needs. It's quite a strain on the developer to expect them to keep up with all of that too. YMMV.
     

    Don't mind Lysis, he is just a useless troll. You won't win the argument, because he isn't going to even try to make an intelligent argument. Just leave it alone.

    He is just trying to get you to argue. Don't feed the troll.



  • @vt_mruhlin said:

    AT LEAST YOU HAVE A SPEC.  I have a bunch of poorly written, undocumented C code and a mandate to "port it to Java, but also don't do the stuff that's not needed anymore, and add new stuff that is".

     

    Uh, Oh -- been there, done that. I feel with you!

    This situation usually leads to me trying to implement the best I can according to how I understand the situation/needs/user/users. AND me defending vigorously what I've done. I rarely have a problem justifying having built what I did, after explaining what my understanding was in sight of the communication that was fed to me.

    (I also understand that the above sentences may not be perfect english. But please forgive me for my mother tongue not being english). 



  • @EpilepticFridgeBoy said:

    • The timetable operates on a 26 hour day.

    ... and no expanation of how on earth this should actually work. Great, explain to us what a "first name" is, but gloss over the specialized 26 hour day timetable. When this was questioned, the response was, "Oh yes, sorry, that's a typo. It should read '36 hour day'."

     

     

    Beautiful. Simply beautiful.

     



  • I'm trying to popularize the "when slot" phrase in our office, to mean "free time", e.g. "I'll get on to that as soon as I get a when slot."



  •  @EpilepticFridgeBoy said:

    I'm trying to popularize the "when slot" phrase in our office, to mean "free time", e.g. "I'll get on to that as soon as I get a when slot."

    But if you get too much when slot, won't you get outsourced? After all, there's only 36 hours in a day, and so much to do...you'd better get back to making sure you get the first name of your customers.



  • @MasterPlanSoftware said:

    @EpilepticFridgeBoy said:

    Sometimes, the developers are not expected to be the BA, Project Manager and Developer all in one. Often, new business is pitched for and specced up while the programmers are busy with other projects. Of course, this varies from company to company. BAs are specialised in being able to write these specs and ask the insightful questions that reveal what the problem is the client needs to solve. Sometimes, a company will write software for a wide range of clients, all with different business needs. It's quite a strain on the developer to expect them to keep up with all of that too. YMMV.
     

    Don't mind Lysis, he is just a useless troll. You won't win the argument, because he isn't going to even try to make an intelligent argument. Just leave it alone.

    He is just trying to get you to argue. Don't feed the troll.

     

     

    The board hall monitor has spoken....



  • @LieutenantFrost said:

    After all, there's only 36 hours in a day, and so much to do...

     

    We have this saying here: If the 24 hours of the day don't suffice to get the work done, then just work through the night as well...



  • @TheRider said:

    @LieutenantFrost said:

    After all, there's only 36 hours in a day, and so much to do...

     

    We have this saying here: If the 24 hours of the day don't suffice to get the work done, then just work through the night as well...

     

     

    I have a saying too.  "Clock on the wall says that's all!"  It'll be there tomorrow, so why stress?  I think a lot of times people stress themselves out for no reason.  The only time I see a reason to work long hours is if there is a major production issue that is causing a loss in revenue, otherwise, new additions can wait another day.



  • @EpilepticFridgeBoy said:

    as soon as I get a when slot

    I'm pretty sure that would get you fired at most companies in the States...  ;)



  • @Spectre said:

    Wait, nobody has brought up The Chronicles Of George yet?

    That hurt.


Log in to reply