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.
-
11What type of colorblindness does he have?– Thomas Owens ♦Jun 24, 2011 at 20:39
-
33You write code in a word processor?.. o_O– vinesJun 24, 2011 at 20:39
-
40Use 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.– riwalkJun 24, 2011 at 22:24
-
19I would assume that refusing to hire your friend because of colorblindness would violate some sort of federal or state statute.– crasicJun 25, 2011 at 0:35
-
10Your 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.– juan2raidAug 9, 2011 at 23:52
13 Answers
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.
-
9It would also work if the in-house tool that does coloring could be modified to have user defined color schemes.– crasicJun 25, 2011 at 0:30
-
6While 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. Jun 25, 2011 at 6:53
-
7choosing 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, 2011 at 9:50
-
8Despite 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. Jun 26, 2011 at 6:41
-
6This does not solve the problem: what happens when another colorblind wants to join later?– o0'.Jan 28, 2012 at 10:09
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.
-
3Good 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 Aug 10, 2011 at 10:57
-
2I'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 NuttMay 6, 2013 at 22:13
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.
-
1How is impracticality not a defense? Should someone in a wheel chair be accepted at a job involving heavy lifting?– RobAug 10, 2011 at 4:41
-
11Rob: 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. Aug 10, 2011 at 11:11
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?)
-
1Well, 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? Jun 24, 2011 at 20:47
-
3Shape would probably involve techniques such as highlighting the lines with different border styles (double-line, dotted line, etc...) or maybe icons. Jun 24, 2011 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. Jun 25, 2011 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.LottJun 27, 2011 at 10:12
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.
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?)
-
I think he's got Tritanopia (don't quote me) and we're using a in-house developed tool. Jun 24, 2011 at 20:46
-
4Not
you
could select a set of colors, buthe
could. Over-color-sensible people normally can't imagine how it looks like, for a colorblind. Here are some sample pictures Jun 25, 2011 at 0:42
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.
Add an additional system that conveys the same information that your use of colour provides.
This could be:
- Symbols.
- Size
- 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.
-
1Also, as a deaf developer, I'm shocked at the apparent inability to change or add the smallest detail. Aug 9, 2011 at 23:00
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
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.
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).
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.
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.