The Flowchart
Over the past few months, I have been interviewing people in hopes to fill in openings on my team. It’s quite challenging, especially since the positions that I’m trying to fill are very diverse, ranging from architect, development team manager, developer, to release engineer. The most frustrating thing after an hour long interview, is when you do not grasp a firm understanding of one’s qualifications. In other words, I am unable to be certain about the qualities (whether it be good or bad) that I see during the interview. I think the reason for this, is that I do not have a simple and consistent guideline to follow. Without one, I’m shooting in dark. To help myself out, I’m drawn to a flowchart (shown above) that I have been using for the evaluation of the current teams to guide my interviews.
Software development is an engineering process. It mandates visionary architecture, innovative design, skillful implementation and unbreakable reliability. As any other engineering discipline, professionalism, engineering, and creativity are the three pillars of software development.
The first level checks are “attitude” checks. If someone is passionate about something, s/he will have a pretty high chance to do well. In reality, we cannot expect everyone be passionate about everything they encounter. In those situations, it’s the dedication that will get you though. We are professionals, after-all.
The second level checks are “knowledge” checks. It is no doubt that software development requires skill. Today, software development is an end-to-end process, from identifying real world problems, all way to delivering software solution. The process does not end there; it is a continuous process. New issues emerge and solutions are continuously being refined. It is a full cycle which evolves along the advancement of computer and information technologies. Learning is an essential tool in this process. Are you able to learn? Are you willing to learn?
The third level checks are “creativity” checks. Software design always boils down to creative expression. You may have all the “skills” required for software development, but without creativity, you are simply a skilled worker, not an author. Solutions demand authors. As the sole creator of a software solution, software professionals must take full ownership of the solution. Software professionals are not factory workers who take orders on what to build and how to build it. Instead, they are the ones who decide what to build and how to build. Such autonomy imposes greater responsibility, obligation and effort. Do what needs to be done.
Nowadays, software development is far beyond the simplistic ideology of solving problems with the aid of computer. Not to say that we should not be solving problems that arise, but more so that we should be looking to innovate. All in all, I am looking for software professionals with new ideas, the ones that follow through with their craftsmanship, and the ones that lead to greater innovations.