• (nodebb)

    I think the web development manager at my current job follows this. They design the UI first based on how they think the data should work and then shoehorn the actual data in to fit their concept rather than the other way around. It works about as WTF-y as you'd expect.

  • Sole Purpose Of Visit (unregistered)

    This is horribly persuasive. Please don't show it to any of my company's clients.

    I like the way it's framed by scientific metaphors ("fadstronaut," "neo" -- well, more sci-fi really, but still), rather than that fish nonsense used in Agile.

    Now, if you'll excuse me, I have to take my daily blue pill ...

  • Victor (unregistered)

    Today I learned I've been doing FAD my whole life in personal pet projects.

    Can I get an honor membership? I'd really love a certificate I can print, put on CV and display on my office. Heck (sorry for my french), I might even get a raise with providing proof of using a such advanced framework and methodology

  • Prime Mover (unregistered)

    I'm trying to find that internet meme consisting of Fry from Futurama looking out through half-closed suspicious eyes.

    Incidentally, has anyone else noticed how if you dyed Ziva David's hair purple and did something about her superfluity of eyes, she'd be the spitting image of Lila?

  • (nodebb)

    I'm a UX dev who's been dabbling a little in middleware lately. FAD speaks to my soul. Why bother with middleware and DBs, when I can just make a key-value store and call it a day?

  • Vault_Dweller (unregistered)

    Ironically, FAD aged very well. The original article was written 13 years ago, but the problems it tries to solve are still relevant today.

  • Sole Purpose Of Visit (unregistered) in reply to Vault_Dweller

    Since the problems can be amalgamated into a single central issue -- "management" -- that's hardly surprising.

  • Ann on a Mouse (unregistered)

    I dunno, as long as it’s subject to a “that’s literally impossible” veto, the first point is actually a pretty good one. I spent way too long in my younger days working with programs written by people who very clearly never actually USED them.

    My favorite was the specialized text editor — I forget which purpose it was for, but something publication-y — which was the first GUI they had written for their older system. They used markdown for styles, of which they supported the basic 4 combinations (regular, italic, bold, and bold italic), and also used markdowns for layout changes (narrow margins, bullet paragraph, etc.). It was literally impossible for the workflow to ever push text BACK to the program from later on in the workflow — text moved exclusively FROM the program TO the later stages. Did the geniuses who wrote the program do the sane thing (store the styled text as OS-native styled text and then export markdown based on that when you were finished)? Of course not! You edited plain text, with markdown in it, using buttons to generate markdown codes (which were treated as single characters in the text edit field), and if you wanted to see what it looked like, you had to press another button to see an uneditable preview. (Also: the buttons had keyboard shortcuts, but they were not the standard ones you would see in normal text editing, they were weird “bold is Shift-Control-7” combinations.) This was marketed as being WYSIWYG. It would never have failed the laugh test if they had asked a single end-user before designing it, but from the standpoint of the programmers who had designed the earlier system, it made perfect sense!

  • Andrew (unregistered)

    Is this a joke?

    VII. Be Environmentally Conservative In the real world, there’s only one environment: it’s called The Real World. So why do some methodologies invent these counter-intuitive, bizarro environments called “QA” and “UAT”? Do architecture firms construct an entire house before building an addition on yours, just so they can “test” their building skills? Of course not, and neither should software developers. In FAD, there’s only one software environment: Production. Anything else is pollution.

  • xtal256 (unregistered)

    I assume this is a joke, but the sad thing is that it actually describes quite accurately the mindset of most of the developers I've worked with. And they seem to think it's a good thing!

  • (nodebb) in reply to Ann on a Mouse

    Reminds me of LaTeX and Markdown editors, or the dominant compile-run cycle in programming:

    I spent way too long in my younger days working with programs written by people who very clearly never actually USED them. My favorite was the specialized code editor. It was literally impossible for the workflow to ever push UI elements BACK to the editor from later on in the workflow — logic moved exclusively FROM the program TO the later stages. Did the geniuses who wrote the program do the sane thing (store the UI as OS-native widgets and then export code based on that when you were finished)? Of course not! You edited plain text, with syntax in it, and if you wanted to see what it looked like, you had to press another button to see an uneditable compilation.

    There are some people who prefer interactive programming which you can use, work with, and edit live. Some people use REPL-based programming or notebooks, some people use low-code or spreadsheets, some people still believe that Smalltalk or Lisp are the superior environment, and there's environments like Pharo still built around code images that you can both interact with, evaluate expressions in, and edit the code yourself.

    Personally the closest thing I do is injecting CSS and JS into websites or web apps, or using Inspect Element to poke around and edit pages. Sadly, for desktop apps, GTK Inspector is a lot more limited, and Qt's GammaRay is prone to crashing the app (attaching always crashes, but spawning an app in GammaRay is stable-ish.)

    I don't know if graphical GUI designers are more common nowadays, in the web/React or QML worlds, than they were in the Visual Basic and Qt Widgets drag-and-drop days. I heard React popularized the code tree as the source of truth, and QML has both text editors and graphical designers.

  • (nodebb)

    We design the backend first, than we are told, that the GUI team is to overloaded to add the necessary dialogue for defining a list of numbers in time for the Demo - while we scramble to swap out the whole design based on changed requirements for the list of values.

  • Sameer (unregistered)
    Comment held for moderation.
  • Ann on a Mouse (unregistered) in reply to nyanpasu64

    Uh, why did you change “text editor” to “code editor”? I was talking about a program which was written to edit specifically styled text for publication, not something to edit code.

  • INVESTGENIX USA (unregistered)
    Comment held for moderation.
  • Neveranulll (unregistered)

    “ No matter how “properly” the system is designed from the start, within the first year of its life, maintenance programmers unfamiliar with the complex architecture (and having no help from out-of-date documentation) will turn the system into a complete mess with bug fixes and change requests.”

    There is nothing more frustrating than seeing your carefully and brilliantly designed code completely destroyed by someone else, who added a minor feature or “fixed” something he thought was wrong because he had no clue what you were doing, and he somehow managed to get it into the production code base while you were off working on another assignment, or on vacation.

  • educational consultancy (unregistered)
    Comment held for moderation.
  • Sheena Pescasio (unregistered)
    Comment held for moderation.

Leave a comment on “Classic WTF: Front-Ahead Design”

Log In or post as a guest

Replying to comment #:

« Return to Article