Headphones and the Open Plan office

October 23rd, 2009

Ever since I first started work as a developer in the early 90’s I’ve listened music when working. Over the years I’ve noticed that in most offices I’ve been in, the majority of developers have headphones on. Today, even in our “Agile” team, when people aren’t pairing they are sitting with headphone on and iPods plugged in.

TED Ideas worth spreadingI recently watched a TED talk by Julian Treasure on “The 4 ways sound affects us”. In it Julian mentions briefly how noisy open-plan offices significantly decrease your productivity (I won’t spoil just how much it’s decreased). He goes on to say that if you find yourself in one of these, put on some headphones.

So while open-plan offices can bring a sense of community to a team, wisely using walls to separate the “noisy” pairing teams from those who need to work alone may be required to keep productivity high. If that doesn’t work, encourage people to bring headphones and music.

Clean Code, the devil’s in the detail

October 22nd, 2009

One of the driving forces of “Clean Code” is that while it takes a certain amount of time to write code, that same code is read many times. Clean Code is aimed at reducing the reading and hence understanding time of the code.

We recently had a practical session, as part of our continuous learning practice, on TDD. After the first few tests, Doug got into some serious refactoring to make the code clean. As Doug progressed, I found myself becoming increasingly frustrated with the numerous methods, many of which had 1 or 2 lines of code, that he created.

I started trying to understand what Doug was trying to achieve and why I was finding it frustrating. As we discussed the aim of Clean Code and how Doug would “read” the code, it dawned on me that the difference was in detail. Doug would read the initial method, accept the definition inherit in the method names called, and drill down to those lower methods only when required. I on the other hand found I needed to drill down through the many layers of methods to better understand the initial method.

It was this difference to how we went about understanding a program that was making his extreme Clean Code approach work for Doug and not for me.

In previous lives both Doug and I have done a Myers-Briggs assessment and interestingly he is an N while I’m an S. In the Myers Briggs assessment, the Intuitive (N) preference person works from the “Big Picture” drilling down to detail when required, while the Sensing (S) personality is the opposite.

When I did my Myers-Briggs assessment we discussed the need, when presenting to a room of people, to take into account the various understanding approaches inherit in the S and N preferences. Similarly, when you are teaching, my wife informs me, you need to take into account the learning styles people have. For example Auditory versus Kinesthetic.

So, when you are “cleaning” code, take into consideration that the people reading it in the future, may not approach it the same way you do. You need to strike a balance between cleaning up the code into more manageable methods, but not to the point where you have many layers of increasingly smaller methods. Not everyone will save time reading this code, but rather it will take them significantly longer.

JRE Upgrade kills Accessibility Bridge

March 26th, 2009

We are currently doing an Accessibility audit of our Java Applet EditLive! prior to a new release. To do this, we are using

The test platform is Windows XP running JRE6u7 with Java Accessibility Bridge 2.0.1 and JAWS 10.0.1139 installed.

When JAWS was activated after installing the Bridge, the screen reader output the details as I navigated around the Java Applet. So it read the menu names, dialog fields, the keys entered while typing etc.

When I upgraded JRE to JREu11, not only did JAWS no longer read out the menu and field names but cursor movements no longer work at all. That is to say, you can no longer navigate through the entered content in the editor. It appeared as if the cursor events were not being passed to the Applet and JAWS was not being passed the accessibility details back.

I then upgraded to JREu14 beta to see if this resolved the issue. It didn’t.

It was recently suggested that the upgrade to the JRE may have blasted the accessibility.properties file so the Access Bridge no longer gets loaded. To test this theory I reinstalled the Java Accessibility Bridge and JAWS now responds appropriately.

So, if you have JAWS and a JRE pre-update 10, you might want to reinstall the Java Accessibility Bridge after you upgrade your JRE.

Coffee for Productivity

December 12th, 2008

Fabio the Coffee MachineAbout 3 years ago Ephox invested in a coffee machine to celebrate a successful deal that the engineering team had worked had to help close. Not just any coffee machine mind you, something that freshly grinds the beans, brews the coffee and allows you to froth the milk.

For various reasons, most of which have now been forgotten, the coffee machine ended up being named Fabio.

Recently we had some problems with Fabio and it went in for some repairs. When picked up today we found out that Fabio has made over 10,600 coffees.

So how has a coffee machine aided in productivity? With Fabio out of action this week, it was obvious how having to go out and get coffee changes the flow of work.

With a coffee machine in the office, individual members of team regularly go get coffee when they want it. With the need to go to a local coffee shop however, people tend to all go at the same time.

So next time anyone asks what can best aid the productivity of an engineering team consider a coffee machine in house.

Creative Outlet

October 23rd, 2008

When I started writing this blog, one of my aims was to provide an insight into what is involved in Engineering management to engineers considering or recently moved into management.

Dark Elf on Cold One ModelMost engineers I’ve worked with, I would consider “creative”. They are constantly finding and developing creative solutions to problems but just as importantly they enjoy creating things.

I’ve always enjoyed creating things so I gained a lot of satisfaction in my career from creating solutions in code. In the years before I moved to management, I was mostly involved in Web and GUI development. Both of these not only give you great feedback on your development but also provide a sense of creation.

About a year ago, I started playing GamesWorkshop’s Lord of the Rings. While I enjoy the game, I really got involved in the painting of the models.

I spend a reasonable amount of time making and painting models which culminated in me entering a painting competition (the model was from WarHammer not Lord of the Rings)

I recently came to the realisation that I had substituted the creative experience I had as a programmer with my modelling.

So, when you move from development to management, consider that you will no longer fulfill your creative requirements with your work and find a creative outlet.

The Interview Process

August 18th, 2008

Many people forget that the recruitment process is a two way street. While the employer is evaluating the candidate, the candidate is equally evaluating the company, position and management.

While the Weekend Australian article, “What Interviews foretell” by Karalyn Brown focussed primarily on the interview process from the candidate perspective, there were some good points for employers.

In my career I’ve been through quite a few interview processes, so it came as no surprise that Bob Olivier, director of Olivier recruitment

believes employers can easily overlook how a candidate matches the values and working style of an organisation – the “cultural fit”

One of the many attributes I’m looking for when we interview at Ephox is how the person will “fit” into our team. So while I’m ensuring the candidate gets a chance to evaluate our culture, we also ensure they will fit into the team through the code review and Coffee Interview.

Rightly so, Steve Begg, general manager of operations of executive recruiters Tanner Menzies and Olivier

believe that the recruitment process provides a glimpse into a company’s working culture. A formal series of interviews can indicate a more bureaucratic employer. A “meet the team” chat reflects a more open and casual working style. However, Begg stresses both method are valid recruitment tools

At Ephox we have what I believe is a good mix of formal and casual in our interview process. In addition, I’m are upfront at the beginning of the interview process with what the process is.

So what is our process? Well like many companies we start with a phone interview. As a significant amount of our communication is with overseas clients and our other offices, this also gives us a chance to evaluate how well a candidate can communicate on the phone.

We then move to a more formal, in office interview. We delve into the candidates abilities and also talk about us and the role, leaving nothing hidden. We want candidates to want to work with us so make sure they have the information to do so.

Successful candidates are then asked to do a coding exercise but unlike most “formal” ones, ours is a little more candidate friendly. We email the candidate a simple program requirements and ask them to submit the code, in their preferred language, when they have been able to complete it. After submission, we get the candidate back in to discuss the code and the solution approach with a couple of the senior engineers. This gives the candidate a chance to gauge what it is like to work within the team, and importantly for us, gives us a chance to evaluate how the candidate solves problems and discusses solutions.

Finally, if all goes well, we have the coffee interview to allow the entire team to participate in the process.

Why do we go to all this trouble to ensure both the candidate, the team and the company fit together? For one thing, we have very good retention and want to keep it that way.

In-office Massage

August 6th, 2008

In my post on retention the other day I mentioned we were planning to trial monthly neck and shoulder massages in the Brisbane office. Well today we had our first ones. 

The masseur arrived with their own special chair and relaxing music and setup in our boardroom. We each had a 15min massage and the general consensus was a big thumbs up. So we shall continue these as part of our overall health & well-being initiative.

Retention, it’s more than money

July 29th, 2008

The IT sector is heating back up again, and as such, salaries (at least in Australia) are increasing. With this increase however comes the challenge of retention of good staff. Most people see this as having to pay higher and higher salaries but I believe there are other options.

I was reading an article in a recent Campus Review entitled “Wellness & retention” which discussed some of these options.

Universities have traditionally not been the highest paid positions, so retention of good IT staff in this climate is becoming an increasing problem. The University of South Australia has tried a different approach to just competing on salaries. 

Over the past five years, its 100-strong IT team has been the focus of a wellness program aimed at encouraging employees and recruitment prospects to view the university as an employer of choice.

Some of the things that UniSA has undertaken are gym passes, weekly exercise programs, fresh fruit, fruit juices in summer, and soup in winter.

What they found was this focus on health of their staff resulted in a drop in attrition to 2%. It also had side benefits

The program costs about $15,000 a year but pays for itself with a reduction in sick days.

I believe there are a number of factors beyond just pure salary that influences a person’s decision to stay with a company. Things like culture, colleagues/team, stress, management and how much the company values them. 

At Ephox we’ve always had a great culture of fun. In addition, we have a great coffee machine, go to the pub on Friday’s for roast lunch and have beers at the end of the week.

Recently I asked the team what additional things we’d like to have in the office. I was looking for suggestions that meet one or more of the following criteria;

  • Team Building
  • Fun
  • Health & Well Being

I got some interesting responses including fresh fruit, monthly neck/shoulder massages and quarterly team events. So we’ve started getting in fresh fruit, are about to trial in office massage and have nominated one of the team to be the coordinator for a team event.

I’d be really interested in what other companies are doing to retain great staff other than paying higher salaries.

Low Cost Training

July 10th, 2008

So you’ve got talented people and as we all know, you need to invest in maintaining those skills. While there are a lot of ways you can do this, some of which are quite expensive, sometimes the little things have the biggest impact.

At Ephox we have a good collection of technical books and I’m always looking for new ones to add. It was suggested that we should get a copy of “Head First Design Patterns”. As the Head First series are designed to be written in, I purchased a copy for each member of the team. 

I was sure it was a good decision when the day after they arrived one of the team stopped me to tell me how good it was. This was quickly followed up by one of my senior engineers raving about how easy and compelling it was to read. Finally, one of the team rang me on the weekend prior to their week of leave to confirm they could write in the book, as they were really getting into it.

So, if you want a low cost form of training, don’t just buy books for your team library, but actually give them their own copies.

Old Skool UI Design

July 1st, 2008

Andy recently pointed me at an interesting article, “The Paper Version of the Web” that shows some great examples of UI designs sketched on paper. In the article Sean collects together some of the publicly available UI sketches for well known websites like Flickr and Twitter.

At Ephox, we have quite a lot of UI design required and as such we’ve tried a few different things from quick Java mock-ups to Photoshopped images. To me however the best solution is the paper sketch. Why, well other than it being pretty cheap to develop and modify, anyone can do it, including the “client”. Finally, there’s also no chance you will be tempted to use the “prototype/mockup” as the basis for the final version.