[Dimitris Platis] works in an environment with a peer review process for accepting code changes. Code reviews generally are a good thing. One downside though, is that a lack of responsiveness from other developers can result in a big hit to team’s development speed. It isn’t that other developers are unwilling to do the reviews, it’s more that individuals are often absorbed in their own work and notification emails are easily missed. There is also a bit of a “tragedy of the commons” vibe to the situation, where it’s easy to feel that someone else will surely attend to the situation, but often no one does. To combat this, [Dimitris] built this Code Review Lamp, a subtle notification that aims to prod reviewers into action.
The lamp is based on a ring of RGB LEDs and a Wemos D1 Mini board. The Wemos utilizes the popular ESP8266, so it’s easy to develop for. The LED ring and Wemos are tied together with a slick custom PCB. Mounting the LED ring on the top of the PCB and the Wemos on the bottom allows for easy powering via a USB cable while directing light upward. The assembly is placed in a translucent 3D printed enclosure creating a pleasant diffuse light source.
Every developer gets a Code Review Lamp. The lamps automatically log in to the change management system to check whether anything is awaiting review. If a review is ready, the Lamp glows in a color specific to the individual developer. All this serves as a gentle but persistent reminder that someone’s work is being held up until a review is completed.
We love the way that the device has a clear purpose: it does its job without any unnecessary features or parts. It’s similar to this ESP8266 IoT Motion Sensor in that it has a single job to do, and focuses on it well.
You know where you can shove that lamp? The same place I shoved my phone – in the far corner under a stack of boxes so there are no annoying lights or noises to interrupt my work flow.
Now now. I totally understand where you’re coming from, but the reality of collaborative development requires at least some interpersonal interaction. Just as long as it’s not constant meetings which drag on with questions about why there’s so much work left to do so close to the deadline. MAYBE IT’S THE MEETINGS EH?
Now we just need a lamp to remind that certain dev to commit their damn code because other people have to add their work to the project too at some point and dangit–that file has had uncommitted changes pending this entire week, don’t make me come over there!
+1000000, along with this ‘clean code has only 5 or less lines per method, and no comments B.S.
So it’s basically passive aggression and public shaming through a robotic system so you don’t have to care about you colleague’s current situation/decisions or even talk to them. Sounds right in an Agile world in which every developer is a faceless, easily replaced entity to begin with.
You’re correct, that is what this system is. The team using it has clearly identified that code review response time is important. If the pending review is not enough of a priority just acknowledge the request and say when you can get to it, or maybe delegate it. If you just leave it there no one knows anything and nothing gets done.
is “Low Oil Light” also passive aggressive and publicly shaming?
Not at all. It’s about ditching “interrupt-style” notifications (emails and popup notifications of same) since they found it was not a good way to guide the code review. So this project moves the whole process off of and away from the computer that people do their work on and makes it a subtle part of the background instead. People DO want to be notified of needed code reviews, they just don’t want to be interrupted in the middle of their other work, or defer only to forget about it later.
Don’t know where the shaming idea comes from.
I like this a lot, I would add some more notification conditions:
– you broke the build
– there is a bug from a paying customer in your queue
– your automated test run is finished and there are new failures
– you have a meeting soon
– your boss is taking the day off today
I did two similar ones for my work. Over complicated it with webhooks in VSTS/Azure Devops and Azure IOT on a Hazzah Feather ESP8266, but it works. Like theirs flashes more as more pull requests queue up, though I didn’t think of different colors for different people.
https://photos.app.goo.gl/FqRNJQC5aFJ73MCT9
really interested in this “overcomplicated” thing :) have you shared this somewhere?