Archive

Posts Tagged ‘Project Success’

How to Motivate Your Developers

June 26th, 2013 No comments

When developers are not motivated, progress is slow and quality is low. This ultimately affects company revenues and can lead to reduced opportunities for all employees. Motivation leads in the opposite direction: wealth and happiness. The first thing to understand about motivation is that it’s internal. We can’t force someone to become motivated, but we can still have a strong influence. Here are my top three picks to increase motivation from my presentation at IPC 2013 in Berlin.

Goals

Motivation is our reason to act towards a goal. There are two common ways to express that reason. We can say that we will go to work because it’s 8am or in order to finish building a game that improves the logic of pre-school kids. The first one is reactive. Someone or something else is in control of our life, and it’s unpleasant. The second justification has purpose. When we identify ourselves with that purpose, you can feel pride and pleasure from your work. Great quality and productivity naturally ensue.

Small wins

A goal may seem far away and if we can’t achieve it quickly, we lose interest. The idea is to cut our work into smaller pieces. To become a Karate grandmaster takes much time, but getting a new belt shows progress and gives a sense of achievement. Software is similar. We can stabilize our code for demos more often. It’s not as fast as a straight path, but remember that we’ll stay in the game longer if we can see tangible progress rather than abstract percentages.

Use of talent

No developer enjoys doing repetitive tasks and staying in one place. Developers want to use their full range of talents as much as possible and gain new talents. Don’t give tasks too difficult for one’s skills, but just difficult enough to provide a challenge. Another way that we can help them improve is by sending them to conferences and workshops. Not only will the come back more motivated, but will also have increased productivity from all the new techniques that they learned!

Hiring the Right Skills

June 19th, 2013 3 comments

There is no such thing as a perfect employee match in programming. If you write a list of technologies in the job description and expect to find a candidate with the all right experiences, you will be strongly disappointed. You could spend months or years searching, while overlooking very good candidates just because they lack one or two skills.

New technologies are coming out each hour and it’s impossible to keep up with absolutely everything. Developers make choices based on what they think will become a trend in the near future or based on what seems most useful. They are also exposed to some technologies regardless of whether it’s a good or a bad choice, because they are often not the ones making these decisions in a project. Since each person’s journey is different, the permutations of skills are incalculable.

IT projects require a multitude of technologies. A project can require experience in a specific framework, ORM, CMS, caching tool, automated testing tool, database, continuous integration, deployment, messaging protocol, etc. Also, multiple programming languages are sometimes required. Now multiply languages by the number of language-specific tools. A developer is often expected to have over 20 skills. The possibility of a perfect match is virtually inexistant.

I’ll give you some examples from my own journey. I was once hired to work with the Flex framework. I worked with ActionScript once, language on which the framework was built. I had no direct experience with Flex, the main skill required. I was hired regardless, because there were simply no developers experienced with Flex in the entire province at the time. I read the documentation in two days, I built the software and my employer was happy with his investment.

A scenario like this happened to me over and over again. I did not need direct experience with any technology, because all programming languages are pretty much the same except for syntax and minor philosophical differences. All frameworks and tools follow pretty much the same principles. At the end of the day, you just need logic and willingness to work with new tools.

So what is the solution? Don’t try to hire developers based on a keyword match. That’s just silly. Humans are much more flexible and adaptable than this. Hire them based on their logic, which you can evaluate by discussing anything technical or even non-technical. Hire them based on feedback from past clients or employers. Hire them based on enthusiasm and attitude in general. Hire them because they can think.