I had the unique opportunity last night to attend a local community meetup where local businesses were brainstorming on how they can attract, and keep, technology professionals to the area. Years ago Florida made a solid investment in technology when they brought a direct pipe to the Internet through the state. However, most technology professionals still tend to leave Florida rather than stay. I live in Boca Raton, Florida and the meeting was held close by, so I decided to attend and see what it was all about.
As most know, I am the organizer of the South Florida PHP Users Group and I am passionate about helping the PHP community grow in south Florida. Over my years as a developer I have noticed the decline of technology in this market, and specifically the PHP community. It was this that led me to organize a group dedicated to turning this trend around, and and grow the PHP community rather than continue to watch it decline.
The Meeting
 The meeting started with networking where everyone exchanged business cards and talked, then gathered around a HUGE conference table where the meeting began. I quietly listened as a new co-working facility was announced, and as the idea of a “computer lab” was brought up as a way to help teach new college students learn things they were not getting in their classes. Then the conversations gravitated to how local universities were not teaching students everything they needed to know. The topic of how local businesses should use internships to also teach students “on the job”, then retain them as employees later. One business owner quickly spoke up and said they did not have the time or money to take on such an endeavor. (Hinting at the true problem in the area, but quickly skipped over.)
The conversations highlighting each persons view of the same topics continued, and anything of real substance was not truly mentioned. I turned to a fellow developer and said, “They really don’t get it, do they?” His reply was, “Then tell them.”
After listening to this misdirection for almost an hour I could not take any more, and finally broke my silence. In my opinion, these are the things that companies can do to attract, and keep, technology professionals. Below is what I covered:
Disclaimer
First, let me state that I realize all companies are not bad. There are many good companies out there who do treat their developers very well. I also realize there are companies who pay their developers well, and provide an awesome working environment. And finally, I realize there are companies who treat their developers as professionals and trust their input rather than using them as a commodity. I also want to go on the record as saying that south Florida is not unique in how the tech community is mistreated, sadly there are many others.
Also, I realize all people have differences. Therefore some of my recommendations below might not apply to all. However, I would assert that my recommendations fit the largest percentage and have been shown to work well with multiple teams I have built and managed.
Working Conditions
Technology professionals need a space with little distractions. It has been shown that distractions severely hinder professionals because it takes a HUGE amount of time for us to get back into the groove. (some estimates put this number at 20 minutes to get back to where we left off) So why do companies think it is cool to stuff a bunch of developers into a room sitting around a huge table, or multiple tables, where every movement in the room pulls their eyes away from the screen in distraction? (So, every time someone moves it causes everyone to loses 20 minutes of productivity. So how flexible are deadlines? And how many developers can the company afford?)
Do not mix developers with the general population! The other staff in the office has no reason to bother developers while they are working. By not providing a “developer area” it literally cuts productivity in half, or less.
It has also been shown that office workers need their “personal space”. Not only does this make employees comfortable, but it also allows the employee to “mark” their territory and make it their “home”. Doing this has been shown to create longevity in employment. If someone feels at home they are less likely to leave. Allowing someone to create their space gives a perception of “ownership”, and humans do not leave things they own.
On the other hand developers do like to be able to communicate freely, and having them close together makes sense. However, I have found that providing a personal space with low (waist high) dividers is wonderful. It gives developers the personal space they need, and also allows for collaboration when needed/wanted.
Remote or Telecommute Workers
Please do not be alarmed, I am not going to say that all developers should work remote. However, I think that many are capable of doing it and being more productive as a result. Many smart companies do tend to stick their developer in a side room somewhere and instruct nobody to talk to them. (See the Working Conditions section above for tips on how to do this well.) So, does it really matter if this room is on-location?
Also, if a group of developers desks are put in a room, we notice that very little talking actually happens in the room? Yet developers seem to “know” what each other is thinking? This is not voodoo magic. The developers are regularly communicating through IRC chat or instant messages so they do not disturb each other. (See the Working Conditions section above for why distractions are bad.) So, if they are communicating without talking or even looking at each other, why do they need to all be in the same place to begin with?
Companies that allow remote working are still able to manage pretty well by having regular meetings, where everyone is required to attend. This is often used when planning a new project or to relay very important events. The rest of the time they do not really need developers to be “on location”. (Imagine the money saved for office space!)
Sweat Shop
Most developers actually work around 6 hours per day. Please do not confuse this to be “Most developers do technology things 6 hours per day”. That would be a lie. Developers actually put many more hours into technology each day, but only around 6 of it is actually “work”. No, just because developers are in front of the computer until 8:00pm does not mean they are getting THAT much work done. The project will not magically get done faster by keeping developers around longer each day.
Also, please do not fall into the old habits of over-working employees to cut cost. Forcing a group of 4 developers to regularly work an extra hour or two each day, or God forbid weekends, means another developer hire is needed. Do not over-work developers. Adding hours to their schedule does not really get more done, and it will ensure developers leave to work elsewhere.
If you are asking, “What are developers doing after this 6 hours of work each day?” The answer is probably not as bad as we may think, unless they are not treated well. Usually they are learning new technologies, or reading blogs and communicating with other developers to keep current, and unfortunately looking for new jobs if they are over-worked regularly.
Future Community Hurt By Moving Too Fast
Many graduates and entry level technology people in south Florida have a very tough time finding a job. Companies in south Florida, and perhaps everywhere, are moving so fast and have very little money to help grow these entry level folks into a contributing member of the tech community. To companies who already have a few developers, please augment the team by hiring one entry level person. Trust me when I say the entry level developer will quickly learn and will be contributing very soon, and may even be the best developer later because they will learn things the “right way”. Companies will get much more than their money’s worth.
Training (I did not mention this, but should have)
Technology never stands still and is constantly on the march. New things come out every day, and technology professionals work very hard to keep up with all of this information. Yet companies do not seem to realize how helping technology professionals learn will inevitably help them. Companies that help developers learn will benefit. I am amazed at how many companies will not send their people to developer conferences, or other training events happening. Not only do these conferences teach new things, but it also allows developers to network and build friendships to help them with problems later. Then these same companies expect their people to somehow “know” these new things.
On the other hand, if there is a “sales” conference going on, many companies jump at the chance to send as many people as they can. Then the salespeople re-learn the same techniques and practices that have been taught for decades. Sales technology has essentially not changed for a very long time. Seems a little backward, yes?
Respected as professionals
Companies are not professional developers, and many of them have no idea of how to develop. That is OK, because it is not their expertise, so they hire developers to fill that need. However, it seems that very few companies actually allow developers to provide their professional advice. Instead of listening to developers for time estimates, functionality tips, testing requirements, and hardware needs, these things are all ignored to meet some fictional perception the company has for building the application. Of course the result is typically failure of the application, and ultimately failure of the company or startup as well.
That is kind of like seeing a doctor because we’re sick, or a carpenter to build a house, then telling them how to do their job.
Companies, please respect developers professional advice. Don’t force them to write bad code to meet unrealistically short time requirements, lack of testing, and poor hardware. If you hired a professional, let them be one. Insist they be one.
Salary
I saved this for last because while salary is a concern, it is usually not the largest concern for developers. If a developer is treated professionally, encouraged/supported to attend training and conferences, not over-worked, and given a nice working environment, they generally are more forgiving of a lower than average salary. (within reason)
Speaking on behalf of developers in south Florida, salary is an issue. Not only do most companies not follow my recommendations above, but they are also the lowest paying companies in the country for technology related jobs. (By around 10%.) Meanwhile the cost of living in Florida is among the highest. This has led many technology students graduating from south Florida universities to leave Florida and go to other areas where salaries are higher.
Now I’m not saying companies in south Florida should immediately start paying 10% more to their developers. It takes time to make that move. But perhaps companies should pay less attention to salary when hiring, and focus more on job requirements. They may find their projects get done faster, better, and more professional because of hiring more qualified developers versus cheaper developers.
Closing
As I found in the meeting I attended, companies do not seem to know how to truly attract technology professionals to the area. So I decided to help them by writing this post. Of course there are other things that also help attract technology professional, but if the items I mention in this post are not present then they will not stick around. We can have the best hackathons, the most awesome coworking spaces, computer labs, and the most funded community events. But if the developers are not happy at work, they will slowly migrate to areas that offer happy work places.