Open Office Plans – Excerpt from Peopleware

From PeopleWare: Productive Projects and Teams, Third Edition, by Tom DeMarco & Timothy Lister, © 2013 Addison-Wesley.

The bald fact is that many companies provide developers with a workplace that is so crowded, noisy, and interruptive as to fill their days with frustration. That alone could explain reduced efficiency as well as a tendency for good people to migrate elsewhere.

The hypothesis that qualities of the workplace may have a strong correlation to developer effectiveness is an easy one to test. All you have to do is devise a set of fixed benchmark tasks, similar to those that developers do in their normal work, and observe how well they perform each of these tasks in different environments. The Coding War Games were designed with exactly that purpose in mind.

In order to gather some data on the workplace, we had each war game participant (prior to the exercise) fill out a questionnaire about the physical quarters in which the work was to be performed. We asked for some objective data measurements of the dedicated space provided and the height of partitions, (for example) and for answers to some subjective questions like “Does your workplace make you feel appreciated?” and “Is your workplace acceptably quiet?” Then we correlated their answers to their performance in the exercise.

An easy way to spot the trend is to look at the workplace characteristics of people who did well in the exercise (based on a composite performance parameter) against those of participants who didn’t do so well. We chose to compare the top quarter of finishers with the bottom quarter. Average performance of those in the top quarter was 2.6 times better than that of those in the bottom quarter. The environmental correlations are summarized in Table 8-1.

The top quartile, those who did the exercise most rapidly and effectively, work in space that is substantially different from that of the bottom quartile. The top performers’ space is quieter, more private, better protected from interruption, and there is more of it.

Table 8-1. Environments of the Best and Worst Performers in the Coding War Games
Environmental Factor Those Who Performed in 1st Quartile Those Who Performed in 4th Quartile
1. How much dedicated work space do you have? 78 sq. ft. 46 sq. ft.
2. Is it acceptably quiet? 57% yes 29% yes
3. Is it acceptably private? 62% yes 19% yes
4. Can you silence your phone? 52% yes 10% yes
5. Can you divert your calls? 76% yes 19% yes
6. Do people often interrupt you needlessly? 38% yes 76% yes

Innovation – Excerpt from Peopleware

Excerpt from Peopleware: Productive Projects and Teams:

Innovation is a subject whose talk:do ratio is even more out of whack than that of leadership. Upper management in most companies talks a good game on innovation. The party line goes something like this: “We need innovation to survive. It is so important. Its importance simply cannot be overstated. No sir. Innovation is reeealy, reealy important. And innovation is everybody’s job. In fact, it is probably the most important part of everybody’s job. Listen up, everybody: Get out there and innovate.” Oh, and by the way,

  • Nobody is given any time to innovate, since everyone is 100-percent busy.
  • Most innovation that happens anyway is distinctly unwelcome because it requires accommodating change.
  • Real innovation is likely to spread beyond the realm of the innovator, and so he or she may be suspected of managing the organization from below, a tendency that upper management tends to view with great suspicion.

The net here is that it takes a bit of a rebel to help even the best innovation achieve its promise: rebel leadership. The innovator himself doesn’t have to be a great leader, but someone has to be. What rebel leadership supplies to this process is the time to innovate–you take a key person away from doing billable work (This may constitute constructive disobedience on your part) in order to pursue a nascent vision–and the hard push for whatever reshaping the organization has to submit to in order to take advantage of the innovation.

Since nobody ever knows how the next innovation may alter the organization, nobody knows enough to give permission to the key instigators to do what needs to be done. That’s why leadership as a service almost always operates without official permission.


Coding Problem: Find out if a subarray exists that sums to a given value

Two years ago, I started this blog with (mostly) a series of posts on the small coding problems that came across my path at the time. Most of these were told to me by my brother-in-law who had been interviewing for his first software engineering position. He had been given dozens of problems such as, “Given a bishop in a given position on a chess board, and a target position, determine the number of moves the bishop would take to arrive at the destination,” or, “Find all pairs of numbers in an array that sum to a given number.”

Recently another one of these crossed my path, and I thought it was a great problem.

Given an array of integers, and a target sum, find out if there is a subarray that sums up to that value.

What I like about this problem is that it is similar to some well-known algorithm problems but tweaked just enough that it is unique. Also, it can be solved in a variety of ways, some more efficient than others. If you enjoy puzzling through coding problems, please try to solve this and see if you can do it in O(n) time. Then, when you are ready, visit the gist of my solution (done in Java since more people know it) and let’s compare notes!

Play Framework Full Stack Development Video Tutorial

I’ve created a set of three videos covering a simplified introduction to Play Framework.

In the first video, we download and setup the Play Framework and build a web service.

In the second video, we add a database and connect our web service to the database so that data can be retrieved.

In the third video, we create a small UI with HTML, CSS, JQuery, and MustacheJS that allows users to look up data and renders a nice result.