Featured Post

Game Analytics - Big Data And Business Intelligence(BI)

Games generate more data then an average application because of the game state machine . Terabytes  of data can be accumulated in a short pe...

Tuesday, September 16, 2008

Motivating Software Engineers

Motivating engineers is a touchy feely subject that engineers usually do not engage in. It is very important from an organizational perspective but by the very nature of the engineering discipline it is not a topic that gets the attention it deserves. This is a very important subject because most companies base their projections and business model on the underlying technology that supports the business. When engineers are motivated productivity increases, problems are solved more efficiently, turnover over is reduced, staffing becomes easier and ideas are generated that have a positive impact on the products a company produces. Motivating engineers is not the exclusive domain of the engineering manager. It is the responsibility of executives, managers, other departments and individuals within the organization to take into consideration the engineering perspective when establishing corporate culture, company events and business goals.


Clarity Of Purpose: Engineers like clarify and specifics when it comes to task assignments. The very nature of software engineering requires everything to be boiled down to a 0 and 1. This creates a culture of specificity that translates upward into goal setting. This clarity is not limited to product specifications. The engineers will want to know why they are engaging in a project, what is the end game and what is the organization trying to achieve from a business perspective. This will translate to buy-in and communication within the group and assure that the engineers understand the overriding goals of the project.


Focus: Software engineering is a tedious occupation that requires constant attention to detail rarely found in other occupations. It requires intense concentration during a development cycle to get a product developed properly. If the focus of the project is shifting, the goals keep changing or the definition of the project is in a constant state of flux then engineers will become frustrated. Commit to a project, stay the course, release the project and measure its results. Certainly change is a reality for all organization. However, if an organization is constantly changing product focus eventually this will lead to doubt about the decision making capabilities of the management team. Changing a products focus in mid-stream is especially demoralizing to an engineering team. Planning, design and coding will be wasted. No one wants to see an effort wasted on a consistent basis.


Early Stage Input To Process: Frequently engineers are brought in late to the development process. Goals are already set, business objectives are stated, some product requirements are established and assumptions are made about the time it will take to deliver a product. The engineers are then expected to react to these details and assumptions and provide technical details on how and when they are going to deliver. Engineers will see this as a disregard for their input. This lack of involvement results in a “why are we doing this” or “they really do not know what they are doing” attitude. Bring the team into the process early to understand goals, objectives, provide input and to get collective buy-in to the product.


Feedback: Both positive and negative feedback is welcome in a development group. Of course, you always have to be careful with negative feedback. When negative feedback is given it should be delivered in such a way that identifies an area that the engineer has control over and could have done a better job. Positive feedback should be given on a regular basis to make sure people understand what they are doing well and to reinforce the proper behavior.


Transparency: Keep the engineering team abreast of business activity, issues the company is facing, new strategic direction and activity in other departments. Engineers are bright people and naturally analytical. In the absence of information they will analyze and make assumptions. With only limited information they may make the wrong assumptions and translated them to the rest of the engineering organization. The engineers want to feel that they are a vital part of the company. If the management team is making decisions that impact the engineering organization they should make the engineers aware of these decision.


Game Play and Geek Culture: The use of the word geek is not meant to be derogatory. Engineers have their own way of communicating and having fun. In one of my assignments the engineering team had regular times during the week where we would play online multiplayer games such as World of Warcraft. The CEO would also participate in game play. This was a great way to bring the team together and to blow off steam. It was one of the better events that we had in the group. Warcraft was a game that developers could relate too. It was special to them and helped bind the group in conversation and healthy competition. In a more recent assignment we played online poker. Poker is not a developers game per say but it is a multiplayer game and does have the benefit of engaging other departments in a group effort.


The Power of Food – This may sound strange but the power of food and communal feasts is a way to keep engineers engaged and happy. Engineers spend hours and hours sitting in front of a computer monitor. Sometimes it helps to get them up and engaged with a larger community in a non confrontational way. A weekly or monthly food feast with various departments is a great way to facilitate communication and to collaborate in a casual setting. In addition, just having a regular snack and food stash is a great way to allow engineers to have a way of getting nourishment during the day. Engineers are often sequestered for hours and in some cases days working on a project. Not having to worry about how they are going to sustain themselves is a nice to have. It also demonstrates that the organization understands their situation and is supportive.


Engineers Love Challenges: Engineers are very competitive. This may seem strange because most of them may not engage in regular competitive sporting events. However, this does not mean that they are not competitive. They are intellectually competitive and want to be challenged in that way. They like to participate in team competitions. The concept of scrums or collaborative development is a manifestation of a team competition where a group works together to achieve goals. Engineers also like to solve complex problems and be recognized for these achievements. Managers at all levels of the organization should appreciate when a business problem requires a significant degree of intellectual horsepower to solve. This effort should be acknowledged.


In conclusion, motivating engineers is important for the health and welfare of organizations dependent on a technology platform and or product for the success of the organizations. Engineers are different culturally and intellectually. They require special attention to maintain their enthusiasm and commitment to an organization. Engineers are competitive and can also be social in their own way. The challenge for any organization is torealize these attributes and to explicitly address them to assure the success of an organization.

No comments: