Be a Servant Leader

Managers: be a Servant Leader.   Why?   Because it works.

I’ve been practicing Agile in various forms since 2006, and along the way someone taught me about the concept of Servant Leadership.    As I learned more, I found that Servant Leadership fits my natural leadership style, so it is something I’ve embraced in my career, and it’s paid off well.

Over the years, I’ve seen many people who aspire to this style of leadership behave in what is essentially an anti-pattern.   This has been witnessed by me many times:

  • A team is in a room, or on a conference call, addressing something important.   This could be a red team addressing a problem, an application deployment that isn’t going well, a testing session, anything around which a company might assemble a team aimed at quick resolution.
  • The team is working productively, calmly, with a reasonable method of hypothesis development and testing, and all is going as well as possible.   Then, an executive or another manager joins in.
  • The manager may listen quietly for 10-15 seconds, or even a few minutes, and then, attempting to help, begins asking questions.
  • The team perceives the questions as direction, drops what it’s doing, loses its focus, and chaos ensues.    People are concerned with addressing the manager’s questions, testing the manager’s theories, basically abiding the manager’s desire take the lead in solving a problem that may or may not be well understood.

Here’s my suggestion, other managers: If you want to find out how that team is doing, it would be acceptable to call in, but only if you don’t speak (other than to offer kudos to the team for solving the problem, once it’s solved, or to announce that dinner is on its way).

Of course, if you’re pretty confident that the team is going off the rails due to fatigue or knowledge gaps that you can fill, then get in there and help.   But keep in mind that as soon as you speak, you will likely cause a change in their focus.  You may be directly, negatively impacting productivity, motivation, and leading to a longer Time To Resolution.

If you think it’s OK for you to jump in and start testing knowledge in the heat of the battle because nobody is intimidated by you, you’re probably wrong.

Be a Servant Leader.   Be there to help when the team needs you, and be out of the way when the team is doing well without you.

 

Raspberry Pi Jenkins Monitor

Behind my desk at work I have a display on which I keep an eye on one of our Jenkins environments.   I initially set this up using a spare Win 7 PC, running a hacked open source screen saver that would load a url into a .net web control.     That worked fine, but I wanted to get rid of the PC that gets no use other than displaying my web page, so I turned to my RPi.

In my research, I found there are several approaches for this.   But most of them boil down to either Midori or Chromium.    I took the Chromium route.

First, about the Jenkins page I use for this.   What I’m looking for is queue length, status of agents and executors, and status of recent builds.   With that goal, I’m not using one of the radiator plugins, I’m just loading build history on the All tab: http://<jenkins address:port>/view/All/builds?auto_refresh=true.

Note: The auto refresh parameter at the end enables Jenkins auto refresh so that you don’t have to plug in a mouse to click the Enable Auto Refresh link on the page.   Thanks to my brilliant team for deciphering that secret code.

Basic set up was easy:

  • Latest Raspian image (using Noobs)
  • Do the steps in lokir’s blog, using the appropriate URL (above)
  • Optional: add –enable-offline-auto-reload  to the chromium command to reload in the case the page goes down (not sure this does what we think it will do)
  • For power, I just plugged USB into the monitor’s USB port, so there is no separate power supply required for the RPi, which is nice

That got me going.    But the display behind my desk is in portrait mode, so that I can see most of the Jenkins agents to keep an eye on them.    So I needed to flip the display.

ZenTsang’s post here (scroll to the bottom) is the way I got this working in portrait mode.   No re-compiling, just give the GPU a little more RAM, and plug

display_rotate=3

into the config.txt file.

And viola, I have a RPi Jenkins display!

JenkinsRPi

The next challenge, for anything that doesn’t auto-refresh, would be to make the page reload occasionally or on a trigger, but Jenkins makes this easy with the Enable Auto Refresh link.

It’s a heavy page, but the RPi is keeping up.  It’s been running for 24 hours so far without issue, so I think we’re good to go.   If you want to do something similar, it’s not too tough, even for a Windows guy like me.