Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My team relies a lot on colour within our code to outline features that need to be worked on (we colour lines of code that need attention). We have a close friend who is colourblind and wants to join our team. What can we do to highlight what needs work without using colour? We have about 25 people on the team that are all accustomed to the line colouring system and we have found it to be most efficient.

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

11  
What type of colorblindness does he have? –  Thomas Owens Jun 24 '11 at 20:39
33  
You write code in a word processor?.. o_O –  vines Jun 24 '11 at 20:39
40  
Use this as a lesson: never rely on color alone. I wrote my first (and last) program that depended on color while I was in college. While I was presenting it in front of the class, someone raised their hand and said that they had a colorblind friend who likely wouldn't be able to use it. Its something you have to be aware of in this industry. –  Stargazer712 Jun 24 '11 at 22:24
19  
I would assume that refusing to hire your friend because of colorblindness would violate some sort of federal or state statute. –  crasic Jun 25 '11 at 0:35
10  
Your system won't scale well(I'm surprised you got to 25 people before encountering this problem). Color blindness isn't an extremely rare condition. About 1 in 12 men have it. As others have noted, even the appearance of bias can get you in legal trouble. –  juan2raid Aug 9 '11 at 23:52
show 9 more comments

13 Answers 13

up vote 44 down vote accepted

Show him the colors you use to highlight code, and have him tell you which ones he can't tell apart.

Then change those colors to ones he can work with.

share|improve this answer
9  
It would also work if the in-house tool that does coloring could be modified to have user defined color schemes. –  crasic Jun 25 '11 at 0:30
6  
While this might seem like a good solution, relying too heavily on colors, even those that are recongnizable to him, can be a problem. Colorblind people often never learn to clearly mentally differentiate things on color, so even colors they can easily tell apart won't be enough to easily internalize the significance of like we full-color-vision people do. –  Greg Jackson Jun 25 '11 at 6:53
7  
choosing new colours just defers the problem. ideally you'd use symbols or font weight or something else in addition to the colour. one way of doing this is to design in balck and white then add colour later –  jk. Jun 25 '11 at 9:50
8  
Despite this being chosen as the best answer, it honestly doesn't take into account what it really means to be colorblind. It's the naive solution to a complex problem. –  Greg Jackson Jun 26 '11 at 6:41
6  
This does not solve the problem: what happens when another colorblind wants to join later? –  Lohoris Jan 28 '12 at 10:09
show 4 more comments

One of the developers I regularly collaborate with is colorblind. The issue isn't just that he can't tell colors apart, but also that he doesn't tend to think much about color. He, and other colorblind people, learn to make it a nonissue to the point where color, even that they can tell apart, becomes a bad tool for distinguishing things. We were talking a little bit ago about Xbox games -- some badly written games distinguish what buttons to press by color alone. Even if they choose colors he can tell apart, his brain isn't set up to pay attention to color and differentiate on it.

Your current system is broken. There's no two ways about that. If his colorblindness even raises a question about him working with you, there's something terribly wrong. Maybe there's some learning to work with him (my friend will have to verify colors with us if he does visual design work, for example), but it shouldn't come up at all in the decision making. He can also be an incredibly valuable resource in developing accessible applications by helping you verify them very easily.

Aside from my colorblind friend, one of the big design projects I had in college was a very heavily visual application for a colorblind client. We didn't see it as a limitation, but rather an opportunity to learn. We found an awesome tool called Vischeck that simulated what colorblind people see (all different kinds). It's a good thing to learn these techniques now with your friend who will likely just roll with it while you get on board. If you wait until you have a candidate that you can't hire simply because he can't see the same colors as you do (doesn't that strike you as absurdly silly?), you're going to get yourself into all kinds of trouble.

Now, this isn't to say that you have to do away with the colors. If they work for you, great. Just don't make them the primary method of spreading information across the team, make them an extra additional help. Think of syntax highlighting in a code editor. The code is perfectly readable without it. Even someone who pays no regard at all to color can use the editor with absolutely no issues. The colors are there for the convenience of the people who will use them, nothing more.

share|improve this answer
3  
Good answer. On your point about not thinking about colours: I'm colour blind, and a few years ago appaerently our TV was broken and kept switching to sort of 'sepia tones' instead of full colour. My wife was utterly bemused that I didn't seem to notice :) Somehow I still seemed to see the grass as 'green', the sky as 'blue' etc. Something else that people find weird is that sometimes I don't know what a colour is - that is, you might point to a green colour, and I might think it's either one of green, yellow, brown or pink - but be unsure which –  Cocowalla Aug 10 '11 at 10:57
2  
I'm red/green colorblind and we had a TV like that for years, I never realized it was broken. In Syracuse, near where I live, there's an historically Irish section of town where the traffic lights are inverted (green is on top), I have to be extremely careful driving there lest I run a red light. Flashing amber (whatever color THAT is) are also a problem, unless I have someone in the car with me, I tend to always stop for them (or at least slow way down) as I can't tell them from a flashing red. –  Jim Nutt May 6 '13 at 22:13
add comment

I am not a lawyer or HR professional but this quote: "with a team of about 25 people it's impractical to implement a completely different system" raises red flags with ADA rules.

Unless full color sight is a specific requirement of the job you cannot discriminate against the disability of color blindness and must make reasonable accommodations to allow him to work. Impracticality is not a defense in a discrimination lawsuit, though I'll repeat again that I'm not a lawyer.

Something simple like making the colors configurable would suffice, configurable display options is just common sense.

share|improve this answer
1  
How is impracticality not a defense? Should someone in a wheel chair be accepted at a job involving heavy lifting? –  Rob Aug 10 '11 at 4:41
11  
Rob: I believe that's addressed in the first sentence of the second paragraph. "Unless .... is a specific requirement of the job you cannot discriminate against the disability". Heavy lifting is a requirement in your example. The colour coding in the OP is not - we have colour blind and even blind people working as programmers here. –  MetalMikester Aug 10 '11 at 11:11
add comment

Sound. Shape. Font. Style. Size. Text Comments.

You can't think of these on your own? If you can't come up with alternatives, why does anyone want to work with you?

(Yes. Sound. There are numerous screen readers and adaptive devices for the blind. Numerous. You couldn't find a single one? Really?)

share|improve this answer
1  
Well, obviously, working with a team of about 25 people it's impractical to implement a completely different system of symbolisation. The shape one sounds interesting, explain? –  dbramhall Jun 24 '11 at 20:47
3  
Shape would probably involve techniques such as highlighting the lines with different border styles (double-line, dotted line, etc...) or maybe icons. –  FrustratedWithFormsDesigner Jun 24 '11 at 20:55
7  
+1: it's the basics of any visual design. You can't rely just on color. Rely on color and something else. Anything, from icons to text symbols to style. –  MainMa Jun 25 '11 at 0:25
8  
@dbramhall: "it's impractical to implement a completely different system of symbolisation." False. First, the normally sighted people really can learn something new. It's easy. They're not born stupid. Second, this is called "workplace accommodation" and is often legally mandated. If you don't care enough to accommodate to a new worker and you don't care enough to retrain your sighted colleagues, then simply state that as a hiring practice. You won't accommodate because you refuse to make any changes. I find your comment remarkable for it's hurtful disregard for everyone involved. –  S.Lott Jun 27 '11 at 10:12
add comment

Whatever happened to leaving helpful comments? Really, I would think that just leaving comments like "this needs some work", "this should be refactored", "to be implemented", or "completely broken here, fix immediately" would be a lot more effective than some crazy color scheme. Written comments can be immediately comprehended by anyone (even a blind person, if he/she has a screen reader). Also, you can do it in a regular text editor and not some in-house tool that the new guy would have to learn how to use.

share|improve this answer
add comment

Is this person completely color blind? This is very uncommon; most cases of color blindness are rather specific, i.e. red and green look the same, but all other colors just work. You could select a set of colors that is unambiguous even for specific kinds of color blindness (possibly even several types).

Alternatively, the colors could be complemented with simple symbols (how do you add color to text files anyway?)

share|improve this answer
    
I think he's got Tritanopia (don't quote me) and we're using a in-house developed tool. –  dbramhall Jun 24 '11 at 20:46
4  
Not you could select a set of colors, but he could. Over-color-sensible people normally can't imagine how it looks like, for a colorblind. Here are some sample pictures –  user unknown Jun 25 '11 at 0:42
add comment

You should use semantic markup rather than coloring lines.
Easiest way would be to use HTML:

doFoo();
<span class="refactor">doUgglyThing();</span>
doBar();
doBaz();
<span class="debug">makeBug();</span>

And then you let him adapt the stylesheet to suit his needs. Also this is purely textual, so it's suitable for version control.
If you're willing to invest a little time, you can simply throw together a small lightweight HTML editor in JavaScript to do this for you.
Or use comments to highlight different sections and then write a small display tool which lets you customize formats. This is probably the best option, because it means all this information is directly in your code base and all can be maintained in one place. Something like:

doFoo();
doUgglyThing();//REFACTOR
doBar();
doBaz();
makeBug();//DEBUG

Lastly, a ready to use option would be to use a semantic text editor such as Ulysses. You can tag and mark different types of sections and assign formats to section types. You can also comment different sections and so on. Also it has a HTML exporter (among others), so it's actually quite suitable for writing documentation.

share|improve this answer
add comment

Add an additional system that conveys the same information that your use of colour provides.

This could be:

  1. Symbols.
  2. Size
  3. Location.

Or anything else, really. However, the disturbing issue here is that you seem to think that these constitute a "completely different system" - that's not the case - your existing users can choose to ignore them entirely and rely on colours, if they so choose.

share|improve this answer
1  
Also, as a deaf developer, I'm shocked at the apparent inability to change or add the smallest detail. –  Arafangion Aug 9 '11 at 23:00
add comment

Assign each task a numeric rank and keep the list sorted.

Rank  Description
--------------------------------------------------------------------------
1     Find a way to make our task list readable by the new guy
3     Gain some rep by asking a question on Programmers
9     Convince the manager that 25-people team might need an issue tracker
share|improve this answer
    
+1 for issue tracker! –  Gary Willoughby Nov 4 '11 at 19:34
add comment

Late to the party, but: Color Oracle is a program that runs on your computer and makes your desktop look like it would to a person with any of the different types of colorblindness. Run it with your IDE open, and tweak the colors you use for various things. Very few people are totally colorblind, in the sense that they can't perceive any color differences at all; you might be able to choose a set of colors that works for this person and for your team.

share|improve this answer
add comment

The very simplest thing would probably be to take a few hours and add a new symbol to go with each color (lik3 # with red; @@ for blue, etc) and put it in a comment line near the colored text. This way the color-blind person can just search for all # and find all red lines. He can't scan a page and have color jump out at him, but there's little textual information than could do that for him anyway (color really is a powerful sensory experience for humans).

But I agree that you should probably just begin the transition to an issue tracker; this sounds like you have cobbled together something potentially inefficient (although of course I haven't seen what you have).

share|improve this answer
add comment

It's a no brainer, but really, do not rely a lot on color, on your code.

And in general, do not rely in a mandatory editing system.
(an IDE may be tolerable, but only given enough tradeoffs in term of productivity)

Establishing a proper indenting convention is already quite hard, time consuming, a matter of feuds, and a source of discontent. Mandating color would make most people I know mount the barricades.

share|improve this answer
add comment

From comments I see that you're using a tool that you've developed in house. Given that, the solution is simple. Go through the code line by line and mark every line that impacts the way code is displayed as needing significant improvement. Then, fix your code. The value that your tool provides isn't in the particular color scheme you've chosen or even that the whole team currently uses one scheme. The value is that you can mark up code in a meaningful way. How that meaning is represented should be completely configurable. Think of the job as a welcome opportunity to improve your product.

share|improve this answer
add comment

protected by maple_shaft May 7 '13 at 9:46

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.