Ask HN: creating design as a developer?
I have contracted designers in the past, but the result has been mediocre, and sometimes simply worse than what I had from the beginning.
I have contracted designers in the past, but the result has been mediocre, and sometimes simply worse than what I had from the beginning.
Edit: This sounds like common sense now that I read it over again. Sorry if it's not helpful.
Here's the most helpful tip you'll ever receive: find something beautiful and copy it exactly, pixel for pixel. You can start as small as you feel comfortable - a button, an icon, even a nice shadow. From there, work your way up. At this point, don't worry about being original. Duplicating existing design will help you in so many ways. You'll become acquainted with the design software of choice. You'll learn about tools and menus that you never new existed. You'll discover neat techniques, and you'll notice details that you overlooked before. As you work, you'll start to understand why things fit together the way they do. You'll see that some elements work together and some don't. Pick out pieces from different designs and mash them together.
And here's a secret: nobody gets a design right on the first try. Experiment, experiment, experiment! If something looks a bit off, adjust it. You probably won't know exactly how to adjust it, so tweak the element in every way you can think of. Resize, change the color, adjust the stroke or gradient. Eventually it will look right.
[1] http://letspocket.com, http://madebyloren.com, http://snowday2011.com, http://boxify.me are a few of the designs I've worked on recently
A common problem developers can fall into is failing to allocate enough time for design. You describe it as "the last bit", when in terms of effort required it may reasonably be every bit as large a task as any other component of your project, and in terms of user impact it may be the largest part of your project.
A (not so relevant) example about understanding the cost of design work: a lot of people claim that they can't draw, but they may be saying "my first sketch looked awful, therefore I can't draw", I started programming with 10 PRINT "HI!" 20 GOTO 10 but didn't tell myself "I can't write a defender clone, therefore I'll never be a programmer", skills are developed through use and practice.
From a developer perspective ask yourself what role design plays in the architecture of your project, are you structuring things so that the design can be rev'd independently of the software - I often bounce between working on design side and programming side tasks while working (ADD at work), but that is only really practical if they are (de)coupled in a way that allows parallel development.
Here's the link if anyone is interested. http://www.realmacsoftware.com/littlesnapper/
I'd suggest forgetting the "oh pretty!" aspect of design, and just focus on simplicity, both on aesthetics (What's simpler than a line to separate? White space!) and usability (Simpler than two clicks: one click). The basic principles of fonts, spacing, and color theory always apply, so start with getting comfortable with these techniques. The gradients, subtle shading, and translucency effects can come later and build on top of the basics anyway.
1. Don't worry about design and think about every project you do as a prototype. If you get it off the ground are think your project has potential then bring in some design talent and do the project for real.
2. Before you roll up your sleeves and start to write code try to first spec the project with the help of a designer who understands usability. Even if these are sketches on a napkin you'll do better work.
Also there is a difference between art direction and usability -- if you just want to improve the look and feel you can bring in a designer after you're done.
Would you be interested in something like that? How would you like it to be presented?
Series on doing visual design for developers.
1. keep it simple - no design is better than bad design, some design basics
2. fonts
3. Heavyness of text
4. Picking a color scheme
5. Buttons
6. Doing a simple but clean logo
7. Icons and small visual elements
each step really practical with lots of examples etc.
Pretty much like - teach you to catch a fish or catch one for you.
I know you want to write about theory, everyone does, but leave that for the end and keep it light.