Short answer: Yes.
Recently, I had the displeasure of having to design wireframes for my application. Now, it was a very hard lesson for me to learn several years ago that I just wasn’t a designer, and the notion of even trying to dive into photoshop again made me somewhat sick to my stomach. So rather than getting into layers and gradients, I instead busted out my trusty code editor and mocked up the wireframes as how I envisioned the application being used, to the point where they were no longer wireframes at all, but a mashup of logic, aesthetics and mockups.
I kicked, screamed, dragged my feet, but eventually I did finished them. Dashboard, login, views, listings, I did it all. Actually, it was a much better exercise than I anticipated and something I’ll have to encourage other developers to do.
It’s a good exercise because it helped me think out some features I wanted to do. All of a sudden I’m staring at a blank page going “Well, that won’t work” and it’s incredibly important that I make it do so. If I hadn’t made a mockup, I would not have addressed that fact till I actually started development, or worse - built an architecture around a theory.
Some of these challenges with logic and engineering can easily be thought out. Others will creep up on you. So what if you’re not a designer. Don’t focus on the actual interface itself, focus on the presentation of the data. All the data flow diagrams and specification documents aren’t going to help if you can’t figure out how to present two objects with different metadata in the same table - which was, incidentally, my problem.
After you’ve designed a wireframe or - if you’re a little more bold - a mockup, hand it off to a designer; have them take it to the next level, get all mad scientist on it and give it some better colors than #FF0000 and #EEE. Now they have an even better idea of what kind of interface your user will need.
So in closing, don’t treat spec docs, data flow diagrams or mockups as the be all end all to your application. All of these should be used, complimenting one another; it’ll save you considerable headache in some scenarios where you scratch your head and go:
Uh, I didn’t think of that.
Inspired by: How do I write my UI specs?