I read this article the other day and it struck me how often this happens. As a developer I sometimes find it hard to create even a decent looking GUI. Most of the time when developers through together a GUI it has 60 million check boxes on it and it does not look visually pleasing.
Color theory may sound like a subject for the Art Department, not for developers. But we’ve all had the experience of choosing a color scheme using the property grid to select named colors and ending up with a really garish color scheme. In an ideal world it might be the case that only our software’s functionality really mattered but, in the world that we actually live in, users are likely to prefer software with a sophisticated color scheme over software with an ugly color scheme.
Many small companies don’t have an Art Department, while in medium sized companies, the Art Department is often a single person who simply doesn’t have the time to help you choose colors. So often the developer is stuck choosing colors.
Now, choosing colors that go well together is a matter of taste, and while taste can be acquired and improved, it’s not something that the average developer has ever spent much time on. Fortunately, color theory provides a developer-friendly way around the issue: a few simple principles govern not only how colors interact, but also what makes a color a good foreground color or a good background color. (Color Theory for Developers - DevSource)