What’s needed to run an engineering department?

The past few years have been a huge learning opportunity for me. I’ve had the pleasure working with a great team and the flexibility to design an engineering department from the ground up. With that in mind, here are some of the key lessons learned during that time.

People

People are the main ingredient in an engineering organization. When interviewing candidates, I look for three qualities: professionalism, interest, and interpersonal skills.

Professionalism is an aggregation of three attributes. First, self-control and a system of ethics. Second, competency and expertise in a technical area and an awareness of how that technical area links to the larger picture. Third, selflessness (or doing what’s best for the organization before any personal gain.)

Interest is sharing values between the candidate and organization. This includes a personalized understanding of the organization’s mission, vision, and core values.

Interpersonal skills are the final component to the recipe. How does the candidate work in a team environment? What is his/her behavior during a conflict? During stressful times? Does the candidate look for realistic, productive solutions?

Software

The cornerstone of any successful team is communication. To aid with that, we selected two packages: OpenFire and DokuWiki. OpenFire is a Jabber-based instant messaging server that is compatible with any Jabber/XMPP client such as Adium, Pidgin, Spark, etc. DokuWiki is an extremely powerful wiki that can be used as a scratch board, requirements/specifications repository, etc.

Next in the process is coding. Our repository of choice is Subversion, with each project split into the standard trunk/branches/tags hierarchy. (We did evaluate git, but decided Subversion worked better for our needs. Either would probably have worked well.)

The build system is a close third, and OpenEmbedded is a winner here. For embedded systems development, it greatly simplifies the entire build process. In previous postings, I’ve discussed OE in great detail.

Of course, coding is nothing without quality. Tracking issues (and features and roadmaps) is the responsibility of Mantis. TestRail, the only package with licensing, linked in with Mantis and provided our QA team the ability to create test suites and test cases, assign test runs to specific people, and track progress towards release.

Planning

“In preparing for battle I have always found that plans are useless, but planning is indispensable” (Dwight D. Eisenhower). Know your mission, know what success means in a measurable way, and communicate that information to everyone.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.