Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is really wrong, and the arrogant tone doesn't help a bit.

The truth is that a designer who spends 100% of his time doing design will definitely be better at design than a designer who spends 50% time designing and 50% time developing. These are two very different skill sets (even though their fundamentals may be closer).

Anyway, a good designer's decision to move something 3px to the left should be respected (because he knows better - he's a good designer). And moving a button 3px to the left shouldn't be a problem for any self-respecting developer.



> moving a button 3px to the left shouldn't be a problem for any self-respecting developer

That's exactly the kind of thinking that developers abhore. Imagine that the whole interface is built on top of a planned framework that follows strict rules and conventions. This button is following the exact spacing and dimensions implemented in the framework, nevertheless the designer's static mockup is different for some reason (i.e. designed in photoshop).

Now, moving this specific button 3px to the left could be as easy as a `margin-left: -3px` or some other simple line of code, but that is a hack/code smell that will be met with contempt from everyone who looks at it in the future, a maintenance burden, and is deviating from the established standards created in collaboration with the designers themselves...

Other possible scenarios are interpolation mismatches, rendering differences between browsers, padding/borders unaccounted for in the original design, dynamic content that by chance nearly aligns to other element, etc etc. Very rarely is the case that the developer simply wrote 6px instead of 3px by mistake.

This happens way, way too often, and the resistance offered by developers is completely understandable.


> Now, moving this specific button 3px to the left could be as easy as a `margin-left: -3px` or some other simple line of code, but that is a hack/code smell that will be met with contempt from everyone who looks at it in the future

Yep, that's a compromise. But if it makes the product better overall, it must be done. If the designer says so, I believe them -- and if I say that a designer's request would lead to a significant setback for our production schedule, they believe me. It's not the matter of designer/developer interaction, it's the matter of product value.

I too abhor such things, but when a designer asks for it, I do "position: relative; left: 3px;". This is exactly what relative positioning was made for, and it makes the developer's intent obvious.


There's no point in arguing about this without context, since it's really all about the context. That is to say - depending on the framework/code base/whatever you're working in, just "do[ing] position: relative; left: 3px;" for a specific page element could actually be quite a chore. Not just now, but for the next guy as well.


position:relative creates a new stacking context that could interfere with other styles.

Anyway, one-off hacks like that every full moon are not an issue to most developers, but you'll usually see they come in a constant trickle; after experiencing that for a couple years a strong emotional response naturally develops :)


Furthermore, moving the button 3 px to the left might take a ridiculous number of man hours, and it's demoralizing work. Most coders are making smart trade offs and balancing a number of things to maximize productivity. How much is that 3 pixels really worth? Why don't you try again, and think of a way to design the interface that doesn't require that 3px move?


> How much is that 3 pixels really worth?

It's the developer's responisbility to estimate how much work a particular task requires. If it's too much work for too little benefit, no sane manager/designer would insist on that 3px move.


I'm uncomfortable with the sheer number of insane managers within our industry.


Having just been asked to move something by 1 em, I agree.


Heh. Eyeballed it, didn't they? "What's that look like, about 1 em?"

:o


I can't speak to the parent's tone, but having worked with excellent designers who can and cannot code, I have often found that those who have made the choice to learn to code, even just a little, produce a better outcome.

You see the same thing on the flip side of the coin with frontend engineers who make the effort to learn about typography, color, emotion, etc. Broader skillsets produce better software.

Related - moving a button 3px to the left shouldn't be a problem for any self-respecting designer, either.


I think you need to define 'design'.

If you mean beautiful mockups than will win a contract with a client and that's all, perhaps your 100% photoshop person will be the best suited.

If you mean building an interface acknowledging harmony of the UX, the user and clients needs, the medium, the strengths and weaknesses of the platform it will be built onto, the project budget and the maintenance afterwards, a 50% person will be thousand times more valuable.

> moving a button 3px to the left

I think it's a stereotype of the request the lay man doesn't get but can cause a project to lose hours or days of dev if the request just goes through. If 3px from where your button is is another component, just imagine that component also being bind to specific size and placement rules (or like, it's actually not your component but some other library's one), and moving that button 3px might mean rebuilding the whole screen.


If it's such a big deal, just say no. I think the article would, too, argue "why you shouldn't move that button 3px to the left if it makes you rebuild the whole screen".


Totally agree. And I think the person saying no also has to explain the scope of the change. If it's actually waranted to rebuilt the whole screen for 3px at least everyone will understand the pros and cons and respect the amount of work that will be done.


100% designers only happen at the very bottom or with design teams. A hands-on design dev knows what's simple vs complicated and can design for it. They will easily outmatch a single designer.


You don't think the engineers platform specific knowledge will have any impact what so ever? And where do you draw the line between engineering and designing?

An engineer can design their design as they go along and iterate on it.

Recently I've been doing my iOS design through SCSS and it helps having sizes, gradients and colors as variables, fonts as mixins and the ability to change them at runtime. Does that count as designing or engineering?

Your truth is not the truth, it's more like bullshit. I don't specifically know what the truth is - but I do know that I'd pick an engineer that can design over a designer 10/10 times. Regardless of your 'truth'.


The problem of engineers designing UIs is the topic of one of my favorite books: http://www.amazon.com/The-Inmates-Are-Running-Asylum/dp/0672...

The problem is that engineers are not very good at UI design. Both from UX and aesthetic standpoints designers are capable of making a better product. A good designer will give a consistently better result than a good engineer in terms of usability, UX, aesthetics and modularity.


Cats aren't very good at catching sticks an dogs aren't very good at catching mice. Therefore you can't have the dogs trying to do what a cat can do....

Except design is different. As a developer, once you have worked with some PSD efforts a few times and then worked with real dynamic content then worked with a real client to get the thing to actually convert sales, then worked with the client stats you have got a good grasp of when something is right on the design front. Plus you can open the css and do something about it. Or you can open up some stuff on the server side or put in some hack with javascript to get the usability to what it should be.

Designers are completely out of the loop after go live, they have done their 'lorem ipsum' stuff. Proficiency at UX comes from delivering the deliverables, testing, testing and testing. Listening to the client and the customers. It does not come from a few static designs.

I have never heard of a designer wanting access to the css to make that 3px change. They are welcome to it. They would make my day if they wanted to do that stuff. They do design for the web and the css is really over to them if they want to do it. The problem is that they would have to learn what a border is, what a margin is and what padding is. It is not difficult stuff.

The whole point of CSS is that the presentation is a separate thing to the content. Any developer would be happy to churn out the content blocks and sensible markup and hand it over to one of these PSD experts for them to get exactly to their 3px requirements. But in the real world it does not happen. Developers can dive in and fix something at silly o clock on a Sunday, but would anyone ever call a designer at such times even if it was a UX issue that was the problem?

Obviously there are some fantastic designers out there - allegedly - but, in general, designers don't do the hard stuff or even bother to work with live content. Far too many of them produce static nonsense in PSD format - a trade that should have been pronounced dead the nanosecond the iphone came out. They also perpetuate this myth that all developers are totally retarded when it comes to anything to do with aesthetics. Yet it is the developers that implement design, learning along the way. Rarely if ever is it the other way around, and, should a designer dare to do that they will get clumped in as a 'front end developer' and have some retarded PSDs foisted on them by some manager that thinks only designers can have any input whatsoever regarding UX/UI design.

How often do you think a developer tests something? A given page can be tested 100's of times. Along the way 'this checkbox might not be needed' or 'this dialogue box makes no sense' or 'this process is tedious' gets discovered. The guys with their PSDs just do not have that insight.


> As a developer, once you have worked with some PSD efforts a few times and then worked with real dynamic content then worked with a real client to get the thing to actually convert sales, then worked with the client stats you have got a good grasp of when something is right on the design front.

Most designers do not use photoshop these days; its all Illustrator vector format for anything but touch up. There are still some pixel junkies left, but these are mostly programmers pretending to be poor designers.

> Designers are completely out of the loop after go live, they have done their 'lorem ipsum' stuff.

Only in a failing company that doesn't have real designers or doesn't know how to manage designers.

> Proficiency at UX comes from delivering the deliverables, testing, testing and testing. Listening to the client and the customers. It does not come from a few static designs.

So you are saying designers are bad at UX because they don't conform to your narrow minded idea of what designers are?


From my point of view, you haven't worked with good designers at all. All the good designers I know work hard on their research (both theoretical and concrete, regarding their current projects) and user testing afterwards. In many companies designers are required to work with analysts to improve ROI of their products.

Although I completely agree that PSD is a terrible format for web design. I myself have been using Indesign and try to insist on designers using it when I develop.


'Anyway, a good designer's decision to move something 3px to the left should be respected (because he knows better - he's a good designer). And moving a button 3px to the left shouldn't be a problem for any self-respecting developer.'

Not arrogant at all. Jeez.


Sorry about that. Your post got me all worked up!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: