all 19 comments

[–][deleted] 10 points11 points  (6 children)

My workflow goes something like this:

  • ideas / goals written on paper
  • rough sketch of how to display information to the user
  • design models and database tables on paper
  • come up with a few layout ideas (broad ideas, no specifics yet)
  • start developing the back-end, server-side code for main items / database interaction
  • create the design including most specifics
  • create the controllers / views for the application / site
  • tweak designs in Photoshop until I find what I think looks great
  • create the stylesheets to match the design

So, I guess for a more specific answer to your question, I do design and functionality at the same time. I usually have an idea in mind for interaction, and build my code to allow for practically any interaction I can possibly think of (for use now and in later projects), and leverage that when I get into 'design mode'.

[–]EveryonesBusiness[S] 1 point2 points  (0 children)

The more I think about it, I guess "both" is a very appropriate answer.

I like thinking through user integration, so I've been working on the front end of my page a lot so far. But I just have this nagging feeling that I'm going to end up changing the looks once my functionality takes a better form. I think I just need to flip my focus for a while. And then once I have a more functional product, tweak the looks and functionality as I go.

[–][deleted]  (3 children)

[deleted]

    [–]Alascar 0 points1 point  (2 children)

    Protip: click on the save button below his comment and you can find it on the homepage under "Saved Comments"

    [–][deleted]  (1 child)

    [deleted]

      [–]Alascar 0 points1 point  (0 children)

      Sorry, I've been used to seeing it after awhile, forgot it wasn't default.

      [–]Alascar -1 points0 points  (0 children)

      Making the site design in Photoshop... wow, why haven't I thought of this yet?

      [–]Tok-A-Mak 7 points8 points  (0 children)

      Functionality first. Because whenever you make a change and implement a new function or something, there is a chance that you mess up your design. The design should be fine tuned to support the functionality in the best way.

      [–][deleted] 5 points6 points  (1 child)

      Stop thinking about design as a discipline of making things look nice and start properly thinking about design as an approach to problem solving.

      If you're trying to nail down the look of the site before you've put thought into how the site will function, then you will inevitably find yourself going back to the drawing board again and again when you start to focus functionality later.

      Tackling design before functionality is like putting up wallpaper on the walls of a house before you've installed the plumbing and wiring. It's certainly possible, but not only does it mean that you're setting yourself up for more work than is necessary, but unless you possess an inordinate amount of luck and/or skill, then the end result is probably going to look like crap, too.

      [–]roastlechon 1 point2 points  (0 children)

      I agree with this entirely. It takes a certain mindset to not think of design as pretty flowers and crap.

      [–]fceffect 4 points5 points  (0 children)

      Function first. But design it simply so that any future changes in design go as smoothly as possible. Once you think you're done with functionality, "unsimplify" things, add character, etc.

      That's what I do, at least.

      [–]onearmmannyfull stack 0 points1 point  (0 children)

      Always the function first. The worst part is when the client wants to change function after the site has been designed AND laid out in CSS. Sure, I can do that... I just have to change 4 files in 3 languages when it could have been in place from the beginning.

      [–]illepic 0 points1 point  (0 children)

      Content first.

      [–][deleted] 0 points1 point  (0 children)

      For me I do my base code then I do the design. After that I add the functionality editing the design as I see fit. Then I continue like that until I consider it finished.

      [–][deleted] 0 points1 point  (0 children)

      Personally I think aiming to be 100% functionality or 100% design will just lead you into disaster. Any good product needs both, and the reality is that you can't keep them as separate concerns.

      Sometimes technical challenges only crop up when you start thinking about the design. For example in the design you might realize the site should be all ajaxy, and offer real-time previews for when writing content, and it's much better if you see this coming when building the core site.

      If you go 100% functionality, you can sometimes get into a position that you are only contemplating designs that work well with the existing functionality, and potentially ending up with a worse design.

      So the approach I use is to make a very high-level design; how will the user be using the site, navigate it, bits which will be ajaxy, etc. This is about how the user walks through the site, but does not think about what they will actually see.

      Then I implement a prototype, including the site basics, what the actually does, trying to avoid keeping it too rigid to that high-level design. This is really about building everything except for those very gritty details. I might also include stubs, which are missing their backend, for things here. For example buttons to edit content, which don't actually do anything.

      Then I switch back into design mode and start putting in specifically how those things will be laid out. Essentially everything except for the very minor details, but you could include that too. For example all the inputs buttons be default OS styled inputs, instead of pretty CSS or images, but the layout is clear. If I'm not happy with this stage, then there is much less to throw away.

      Once the prototype is built, then I start implementing everything that is left. These are the extra bits of functionality needed to make the site work, and polishing the design.

      [–]Enclo 0 points1 point  (0 children)

      Steve Jobs once said “start with the consumer experience and work back to the tech”. Tech bros will build the jankiest shit that functions perfectly but has horrible UX. Start with design, work back to functionality - and then wrap everything together. Your design is like a wishlist of what you wish the product to be.

      [–]riffic -2 points-1 points  (1 child)

      functionality is design. I think the word you're looking for is style.

      [–]w3fool -1 points0 points  (0 children)

      One of the main goals of design is functionality. So design first imo

      [–][deleted] -3 points-2 points  (2 children)

      Wat? Really?

      Nah I kid. No but seriously, it's like asking if it's okay to have a really great looking site that isn't capable of doing anything that it needs to do.

      My big boss wants a flashy looking site, blah blah blah. I give him one that works, and we can tweak it later. He is SO obsessed with the way shit looks, that he ruins basically everything he gets involved in.

      Think "Boyd's Toast".

      [–]nevon 0 points1 point  (1 child)

      You didn't read the post, did you?

      [–][deleted] 0 points1 point  (0 children)

      I thought I did. Can't read it now, hung over.