10
Thu, Oct
2 New Articles

10 Questions You Should Ask When Being Interviewed

General
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times
So there you are, sitting in the small conference room after having been grilled on your life story for the second or third time in as many hours. Your interviewer has just concluded her battery of questions. She closes her notebook and asks the obligatory, "So, do you have any questions for us?" Your mind races through a series of possible tactics. Conventional wisdom at this point dictates that you ask questions about topics like benefits or corporate culture--or even the scope of work in a way that reflects back to some significant item on your resume that you thought might have been missed. Although asking questions along these lines is both informative and expected, there is another series of questions that you may want to delve into.

About five years ago a colleague of mine, Eric Grab, and I were both contemplating career moves. We discussed at length the key elements at places that we had worked that had made working there either enjoyable or miserable. We came up with the traditional list of criteria such as work environment, supervisors, creature comforts, salary, and fringe benefits. All were good criteria, but they also applied to just about any career at just about any place of employment. So what we set out to do was to come up with a list of questions unique to the IT industry. We wanted to compile a list of questions that would help evaluate a position at an entirely new level. Over the years, we have both asked questions along these lines many times over and honed our list to ten questions. What follows is not only that list of questions, but also our thoughts on what different answers mean to us. You, of course, will want to couch the questions in your own style, and your analysis of answers may vary significantly from ours, but use these questions as a foundation and ask lots of follow-up questions if you don't get enough information. I find this is often necessary because the interviewers are seldom prepared for this type of questioning.

I divided the list of questions into topics with one initial question on each topic and some suggestions for follow-up questions.

Development Tools

What development tools do you use?
This is a fairly straightforward question and a good one to lead with because it will get your interviewer warmed up for your other questions. If development tools have already come up before this point in the interview, you can ask, "What other development tools do you use?" The best way to get a sense of what you will really be doing once you get the job is to know all the tools that will be at your disposal. The first answer that you get may be something along the lines of "We use product X as our Integrated Development Environment," and most interviewees are satisfied with an answer like that. Follow up with questions about what they use for version control, debugging and profiling, query building, automated testing, and documentation. These are all important tasks that can be tedious without the proper tools. For me, one of these questions is a showstopper. If you are going to be on a project of any significant size and they don't have good version control software, it is only a matter of time before they have a disaster and guess who is going to be working nights and weekends to clean it up.

Object-Oriented Programming

Do you use object-oriented programming methodologies?
If the position you are applying for is as a Java programmer, the answer will be "yes," but again you need to dig deeper. Ask follow-up questions on topics like design patterns and refactoring. If they are using a relational database in their system, ask how they do their object-relational mapping. The goal here is for you to determine if they are actually doing object-oriented programming or if they are just using object-oriented languages. This might not matter that much to everybody, but nothing is quite as painful as having to work on procedural code that has been written in an object-oriented language.

Development Methodologies

What development methodology do you use?
For me, acceptable answers to this question vary greatly by the position I'm applying for. If it is a small company or a small team with in a large company, then the more informal methodologies are acceptable, whereas if it is a larger company or large team, more formal methodologies are preferable. Most methodologies fall into either the classical waterfall model or an iterative model. I prefer the latter, but if they are using a methodology that you are not acquainted with, be sure they walk you through it and that you are comfortable with it. A good follow-up question is to ask how closely they adhere to the methodology.

Requirements

How do you gather requirements?
Although this may or may not tie into what development methodology is being used, it is a good question to ask. You can even follow up by asking for an example of how a requirement flows through their process from inception to delivery. It's amazing that, although this is the core of what most organizations do, they sometimes don't have a well-defined or repeatable process.

Design

How does your company communicate design?
I have found that, since you can't actually ask, "Does your company do design?" this question is a good substitute. From the answer, you will be able to discern two things. First, you'll be able to determine whether they really do design work, because if they don't, there is nothing to communicate. Second, you will get a sense for how they do design. Is there a systems architect that does all the initial design work, or does the whole team work on it together?

Collaboration and Tracking

How do you track progress? Is it by individual tasks or by overall projects? Is it by the individual or by the team?
Phrase this as you see best, but I look for two things here. First, what metrics they use for measuring work and, second, whether this method encourages collaboration. I have found that the actual metric used to track a project has a profound effect on the project itself. While a good metric should not change the outcome of a project, here are some metrics that I have seen applied to projects and how they affected the project. At the first company that I worked for right out of school, they tracked productivity by the number of lines of code written per individual. So, of course, they got lots and lots of lines of code, and programmers were actually penalized for writing reusable code or reusing someone else's code, although people did do a lot of cutting and pasting. Later, they changed this metric to be the ratio of bugs found in the code to the number of lines of code. So it turned into the most overly tested, verbose software I've ever seen. Don't get me wrong; testing is good, but programmers were penalized even if errors were caught in the quality assurance (QA) cycle. In another company I worked at, the metric was just number of hours worked--or, as they called it, "effort." Everybody worked lots and lots of overtime. The result was an entire team of burned out programmers who didn't work efficiently. In general, people will always gravitate toward doing whatever is being tracked, so make sure whatever it is that they track is something that you like doing. The second thing I look for in what they track is whether the metric supports collaboration. I have found that the best projects for both team productivity and my own personal growth were those in which collaboration was either encouraged or required.

Scope and Deadlines

How do you scope projects and set deadlines?
What I'm looking for here is whether you get a say in your own destiny. If project management--or even worse, marketing--is setting the requirements, scope, and deadlines, and there isn't a feedback loop for estimates from the developers on how long they think it is going to take, then you may be in for a death march. A great follow-up to this is to find out when and where they make course corrections. Do they check status every day, week, or month? How do they adjust the schedule? Do they cut scope, push off the deadline, or just assume that everybody will start working harder and faster near the end of the project?

Meetings

What are the regularly scheduled meetings?
What I look for here is a balance between no regular meetings and so many that you can't get much else done. I like to add up all the time spent in meetings and figure out what percentage of my overall time will be dedicated to meetings.

Testing

How do you test?
I subscribe to the theory that testing is how you determine when you are finished with a particular coding task. In other words, once all the tests pass, you are done and ready to move on to the next task. Also, a good QA process keeps everybody happy. Let's face it; there are going to be bugs and you want a safety net in place to catch you. I also like to ask about how automated their testing is. As a developer, I want the freedom to make changes without the worry of breaking something in an unrelated area. Only automated testing can give me the comfort level that I need.

Coding Standards

Do you have a coding standard or style guide?
I like to ask this question because I hate it when everybody on a project has their own style or naming conventions. It seems like I always wind up working on the code written by the guy who has never used a variable name longer than three letters and puts all his curly braces in the wrong places. I really like the idea that all code in a project should have the same look and feel regardless of who wrote it. In the long run, I think everybody working with it benefits by being able to spend more time on understanding meaning rather than syntax.

Ask Away!

Asking these questions has an interesting side effect. In most cases, although you are the one asking the questions, the interviewer's opinion of you is going to become more favorable because you obviously would ask these questions only if you have had a great deal of hands-on experience.

This list of questions should give you some additional criteria by which to measure any programming position that you may be applying for. We have developed this list over a number of years based on our own personal experiences. It is even helpful to imagine how you would answer these questions as they pertain to your current or previous positions. The questions cover all phases of the software development lifecycle including requirements gathering, design, development and testing. In addition the questions cover all of the ongoing activities such as meetings, deadlines and task tracking that any position may require. Knowing which development tools will be at your disposal will give you a better feel for what the position will entail. Determining what development methodology the company uses, how they determine system requirements and whether they really utilize the benefits of object-oriented languages will give you a feel for the environment of the company. Inquiring about design, coding standards and meeting and feedback loops in determining scope and deadlines will give you a better feel for how successful communication is in the company. Knowing how the company tracks projects and therefore what they emphasize will help you evaluate if it is something you would enjoy doing for the foreseeable future. Also a beneficial side effect of asking these questions (besides learning the answers) is that you demonstrate a great deal of knowledge to your interviewer just by asking the right questions. I trust you will find this list as helpful as I have.

Acknowledgement: My thanks to Eric Grab for his contributions to this article topic.

Michael J. Floyd is an Extreme Programmer and the Software Engineering Technical Lead for DivXNetworks. He is also a consultant for San Diego State University and can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it..

Michael Floyd

Michael J. Floyd is the Vice President of Engineering for DivX, Inc.

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: