I'm a Developer of web apps working at a startup, and I'm passionate about UI design. I regularly get praised for apps I make because of the extra touches and good design, but primarily I'm developing some sophisticated apps with 90% of the time spent on the backend code. At this point most of the apps are R&D prototypes. It kind of makes me feel bad as other developers who are way smarter than me don't get any praise for just delivering the functionality which was asked for in the spec; either they don't have the UI skills to show off, they don't think a good UI is important, or they are more experienced and less rebelious!<p>If I'm creating an app which may take 10 hours, I'll make sure I spend a good hour or two on top of that making it look great and usable! These two things are never asked for, quite the opposite in fact. Sometimes I do this bit in my own time.<p>The problem is, on every project now I'm getting told by my peers "don't spend any extra time on this", "nothing fancy", "knock this up as quick as possible, we'll do design if the client likes it". I often ignore this advice, as sometimes these apps are demos sales guys are showing off to prospective clients, if I didn't provide a good design then I wouldn't be motivated to do my job, I just don't agree with the decision. To back this up even more, when I disobey this advice I don't get told off, often the feedback is very positive simply because of the 'extra time' I've put in! If the sales team come back with good feedback, it cancels out the imminent telling off I was about to get from my technical manager. It seems no matter how important I prove the UI design is, I'm getting increasingly pressured to forget it, and if it were upto my peers every app I produce would have no stylesheet, Times new Roman fonts on a white background with raw HTML tables!<p>This is starting to affect my motivation and I'm constantly hiding photoshop and anything with color on it if someone important is looking! I need a job where spending a little time to make things usable and attractive is ok. Am I being too rebelious here? Should I raise this formally with my manager?<p>Thanks in advance for the help guys.
You need to talk to your manager and bring up your concerns, there's no reason to continue being "on separate pages", you need to both get on the same page. If they are telling you to do one thing, you do another, and then get praised for it, and this is happening consistently you need to bring it up to understand exactly whats going on, either they really don't care that much and are leaving it to your discretion or there could be friction developing behind the scenes. At my current job we have weekly one on one meetings with the manager to bring any issues up and something like this would be a good topic for a one on one discussion. You don't want to get in the habit of doing more work than is needed, also, if you want to pursue UI development then consider finding a job that wants and appreciates that. The more complex the server-side coding becomes the less room there is for a "jack of all trades" so it really just depends on where you want your focus to go in your career. That said, a UI guy who has programming experience and understanding of server-side development, in my opinion, is always going to have a leg up on someone who doesn't
It's odd how we all agree that Apple's relentless focus on quality - from the very first day when Woz spent all those hours creating beautiful internal hardware that no one every saw to today's Apple that frets about creating hi-fi prototypes with actual data and not lorem ipsum - is key to their success and yet we seldom invest resources in achieving that level of quality.<p>On the other hand, things work different in startup land. You need to make sure that they work you put in has actual value and doesn't steal time from other, high priority work. This sometimes means creating stuff that might not reflect our level of expertise or be align with our ideals.<p>Ultimately, you need to find a balance between these two extremes. A balance that <i>you personally</i> can live with because each end of the spectrum is equally valid. If you find that your core beliefs clash with the rest of your startup, maybe you should start looking for a startup that prioritizes design and user experience much more.
In today's world, deadlines are everything. And it has been my experience that deadlines are getting tighter and tighter. So I understand where your manager comes from, he just want you to finish the project in the shortest amount of time.<p>However, having a sense of design and wanting to make eveything you do a cut above the rest are admireable qualities in my point of view. I'm sure there are loads of companies who will actually appreciate this. If you're having fun at your job, discuss it with your manager. If he just wants a code monkey, tell him there are loads of them, and that this position at this job are not for you.
A programmer with design skills? You're a rare species. I'm sure a lot of startups would hire you in a heartbeat. So, maybe you should look for a job where your skills and work ethics will be more appreciated and properly paid for.
One thing that might be useful is can you make things look polished (relatively) in less time by using something like Twitter BootStrap, etc.<p>Are you adjusting the last margin to make things pixel perfect and are you fretting over two different fonts that to my mother look about the same? Then they are probably right.<p>However, are you focusing on 50,000 foot page layout issues that the client is going to see. Then you're probably doing them a service.
The key to being a good employee is showing that you can do what you are asked to do. If the company needs quick and dirty mock ups, do that. You can always show them what polished mock ups, too. If they don't value the polished versions, you can learn to take pride in your ability to do quick and dirty, because that too is a skill.<p>Learn to focus on what business problem your job solves.
One thing you might also consider, and please don't take this personally, cause I might be way off -- It could be that you're slow, or perhaps, that the 'extra effort' you're putting in to things means that they're missing deadlines or are unable to start the next thing.<p>The key comment though is amorphid's, I think, that you're being paid to do what you're told. If that makes you unhappy, then as mentioned, there are probably a ton of places that would be happy to have you.<p>Before that happens, I would have a conversation with your boss and see why they keep asking for the rush treatment. If it's a deficiency with you, that's something you can work on and improve. If it's because they don't understand the value of a good design, that's something you can work with them on and hopefully improve their understanding. It might be that there's a bigger mission that your boss knows that you don't? It could also be that they're idiots and you're not.<p>Either way, I would put as much care into the working relationship as you already do the work itself.