Hiring

Hiring Great Agile Teams (Part 2)

In my last post I tried to set the stage surrounding some of the differences that Agile teams have when compared to traditional teams. It was important to establish a bit of a baseline, because the differences truly matter.

The differences don’t only translate into technical skill differences, but they also fall into the area of “soft skills” and collaborative behaviors. We’ll examine each in turn.

So, how does Agile change your Technical Interviewing? You still need to technically evaluate each candidate. In this case, if you have an already formed team, then the team would be mostly responsible for interviewing their potential teammates. If you are forming a new team, you’ll need to devise a way for quality technical skill interviews to occur.  

Hard Technical – Developer Skills

There are a few key skill differences to look for. First, you want to ensure that your candidates are comfortable developing code that is well designed and easily maintained. This follows the Agile principles of Incremental & Simple Design. Quite a few software architects and developers say they can build incrementally, but it’s truly hard to do it and demonstrate working code at the end of, let’s say, a 2-week iteration.

Also critical are the Agile practices of Refactoring and Reduction of Technical Debt. You’ll want to explore design patterns with candidates and explore how well they understand incremental design. Explore their courage when it comes to dealing with “business pressure” on schedule vs. proper design. How effectively do they negotiate that pressure and still maintain design integrity OR reserve time for later refactoring of trade-offs?

Finally, Agile developers need to “get” testing in their very core—you’ll hear the term “Test Infected” used to represent this Quality First Mentality. Ask them how, where, and how many unit tests they usually write. Ask if they understand the principle of Test-Driven-Development where unit tests are used as a design aid and as a testing artifact. Finally, ensure that they keep their tests, all of their tests, continuously working as they develop more code.  

Hard Technical – Business Analyst Skills

One of the key stretch points for traditional Business Analysts, when they move towards Agile methods, is the fact that requirements are no longer solely completed in the beginning of the project. Nor are they intended to be complete.

Now if you happen to have a BA background you’re head just exploded. What do you mean intentionally incomplete requirements!?!

Agile BA’s need to understand the incremental nature of Agile requirements. Also, how systems are built and clarified by examining running and working software along the path as requirements get continuously refined. They also need to have familiarity with Product Backlog management techniques (from Scrum) and understand User Stories (from XP) as the primary mechanisms for creating Agile artifacts.

One Prime Directive that the BA needs to understand is that writing about requirements is not the goal. Communicating and collaborating around requirements IS the goal. Check this point thoroughly in your interview…or at least whether the candidate has the capacity to change focus!

Another key difference in Agile requirements is determining business value and bundling Customer Acceptance Tests in the requirements. These two key aspects, more than anything else, try to connect the customer to each of the requirements so that the team can better understand the impact and importance of what they’re implementing. Candidates should be able to articulate this clearly.  

Hard Technical – Tester Skills

Testers are challenged greatly in the shift towards Agile methods. Instead of being a “late in the pipeline” verification step, their responsibilities shift towards customer engagement, becoming a Voice of the Customer, and also a Quality Champion within their Agile teams.

Initially, they work with the customer to define and refine requirements early in the process (each iteration). Part of this is simply writing the requirements—so there is overlap in this responsibility with the BA. At the end of each iteration, they execute the User Story & Acceptance Tests to verify each met customer needs. It’s these early definition and late verification steps, on an iteration by iteration basis, that assures the team is delivering quantified value.

You’ll notice that I didn’t say testers—test continuously in the methods. This sort of test it in approach, while necessary to a degree, doesn’t achieve the overall project quality results we desire. The good news is that testers have understood this for years, but have been suppressed in focusing on up-front quality. So, they should be energized by this difference!

Testing in Agility also crosses the boundaries of manual vs. exploratory vs. automated testing. In fact, Agile testers are true generalists when it comes to their efforts. One minute they might be sitting with a developer writing some automated unit tests. Then next, writing automated smoke tests, and then running a few manual tests to gain early feedback. This flexibility and breadth of skill is crucial for their success.

In my next post I’ll focus on the soft skill areas that need attention as you begin to make changes in your recruiting screening and interview processes.

References:

There are two great books I recommend to help improve your interviewing skills & techniques as your reframe towards Agility…

One is Johanna Rothman’s wonderful book – Hiring the Best Knowledge Workers, Techies & Nerds.

And the other is Joel Spolsky’s – Guerrilla Guide to Interviewing.

About the Author: 

Bob Galen is the Director, Agile Practices at iContact and founder of RGCG, LLC a technical consulting company focused towards increasing agility and pragmatism within software projects and teams. He has over 25 years of experience as a software developer, tester, project manager and leader. Bob regularly consults, writes and is a popular speaker on a wide variety of software topics. He is also the author of the book Scrum Product Ownership – Balancing Value from the Inside Out. He can be reached at bob@rgalen.com

Posted in: 
PM-Agile
Bookmark and Share

Preparing for an interview is kind of like getting ready for a date.

Has it been a while since you’ve interviewed? Not much time to prepare? Don’t panic. The rules of dating can also be applied to interviewing. 

Asher Date Kept on TalkingDo not arrive too early.

Human resources professionals and hiring managers have busy schedules and work by appointment. By arriving more than ten minutes before the meeting is scheduled you show disrespect for their time. If you must, wait in the lobby or your car before going to the interview location.

Do not show your desperation!

Telling the interviewer that you haven’t had an interview in months, you don’t have health insurance, or that you really need this job, is not going to improve your chances. Quite the contrary! If you told someone on a first date that you’re broke, about to lose your house - and car, and you really need to marry them, what do you think are the chances that you’d see that person again?

A proper thank you is always appreciated.

Send a note and thank the interviewer for their time. Have the envelope addressed and stamped before you even leave for the interview, and the moment you get home, write the note. (At the very least, send an email!) This is important because the discussion will be fresh in your mind, and you should reference one or two key points from your conversation. Use this opportunity to reinforce why you are a good fit for the position and how you can benefit the company.

Whatever you do for God’s sake do not stalk the interviewer.

This includes calling and hanging up. Yes, they have Caller ID, and they know it’s you! Nobody likes to be stalked or harassed. When they have news about next steps they’ll reach out to you. If they don’t, you may need to prepare for the fact that they just might not be that in to you. Ask at the end of your interview when and how you should follow up, and do it. If at that time they don’t have any news for you, ask when and how you should follow up next.

About the Author: 

Stephanie A. Lloyd is Strategist-in-Chief, Calibre Search Group, located in Atlanta, Georgia at the intersection of Talent Strategies + Social Media. With more than 15 years of experience in corporate recruiting and executive search, Stephanie works with hiring managers, HR executives, business owners, and recruiting firms on recruitment and retention strategy including how to better utilize social media for talent acquisition and employee communication. Stephanie is a regular contributor to Talent Net Live and The Matrix Wall, and she partners with Todd Schnick to produce the video blogging series He Said, She Said.

Posted in: 
Job Seeker
Bookmark and Share

Hiring the Right Person – Assessing their Soft Skills

We all make bad hires.  I had been recruiting for 5 years when I hired my first full-time babysitter and she ended up failing the background check.  To me, she seemed to have all the right experience and answered all my questions really well. But after all that, it turned out we didn’t share the same value system.  I should have asked more about “her,” than her experience.

So, how can you do this in an interview?  It’s tough…but here are a few tips that might help assess whether you’re making the right hire for your open position.

When looking at a candidate’s communication skills, ask interview questions that have open-ended answers and in a format that requires they explain the situation, what they did, and the outcome.  A key thing to look for is whether they can describe it in a way that you can understand, and whether they are constantly using jargon that your business folks won’t understand.

In assessing problem solving skills, ask them to tell you about a problem and step through how they handled it.  Again, look at how they walk through the problem, describe the solution, and assess the results. 

To see if they are a team player, ask them to describe a really difficult person they worked with and how they handled the situation.  Have them tell you about their current team dynamics and how they could work better (positive/negative? take responsibility for own attitude/actions?). 

You will see a lot of their interpersonal skills throughout the interview, but ask them to tell you about a time when they used humor to diffuse a situation (especially if your team jokes around a lot).

To see if they will give good customer service, ask them to describe a time when a situation did not go as planned and how they communicated the negative news to the client. 

To determine if they have good leadership skills, ask about how they handled a time when they asked a team member to complete a task a certain way and they did it well, but not according to instructions. 

In listening to the responses of candidates above, you will see certain traits come out:    

  • Attitude –Are they upbeat and did they have generally positive responses and feelings about different situations? 
  • Accountability/Ownership - Do they take responsibility for their tasks, attitude, actions, and results?
  • Sense of urgency - Did they arrive on time, ask about next steps, and show interest in moving forward?
  • Attention to detail – Are their answers descriptive and thorough without being too much?
  • OrganizedDo they follow a logical process when describing problems solved?
  • Ability to handle criticism – If the situation was negative, did they adapt and learn?
  • Flexibility – Were they able to take on new tasks, change direction, and adapt to another’s needs? 
  • Honesty/Integrity – Did they resolve their problems with integrity and communicate honestly with others?
  • Listening – Did they ask follow-up questions about the job/company etc. that shows they were listening?
  • Follow-through – Did they send a thank you note or complete something that you asked for?
  • Preparedness – Did they research the company/job/you before the interview and ask relevant questions?

Finally, it is good to understand their personal interests and motivations.  My favorite question of all time – and one that I find hard to answer myself – “If money was no object, what would you do?” 

We have a saying in our business that “there is a seat for every person” (we use a different term, but person suffices).  You could interview all day long, ask all the right questions, and still get a bad hire.  Hopefully, though, when you drill down on their technical/functional skills and you learn what makes them tick, you should be able to avoid the dreaded “90-day action plan” to remove your bad hire and repair your damaged team.   

Good luck!

About the Author: 

Chrissy Petri is an Account Manager for MATRIX Resources with 15+ years in the IT recruiting industry in Atlanta. She works with small, medium, and large companies to find IT talent from Help Desk to Programmers to Project Managers and Directors.

Posted in: 
Hiring Manager
Bookmark and Share

Hiring Great Agile Teams (Part 1)

When I started thinking about the title for this blog post series, I struggled with the “hiring who” clause. Is it hiring engineers? Or folks? Or developers? Or agilists? Or testers? You get the gist. And then it dawned on me that none of those was right. While yes, you hire individual contributors for agile teams, you’re really in the team building business when you’re operating within the Agile Methods. So there’s the challenge—how do we hire great members for agile teams?

Well, I’m going to share some advice on this topic over the next few posts. But first, perhaps an introduction is in order.

My name is Bob Galen. I’ve been teaching MATRIX seminars for a number of years. Early on, my focus was on management techniques—technical leadership, team building & hiring, and generic soft skills.

Later, I began to share on the Agile Methodologies. It was a natural progression for me because I’ve been using them since 2000 and I’m a recognized SME and enthusiast in the space. To be honest, I have trouble containing my passion at times so I need an outlet.

And so, away we go…

What’s different about agile teams?

It turns out the answer is subtle. From some perspectives, nothing is different. And then from others, everything changes. The best way I can explain it is to contrast agility against our traditional methods.

In traditional methods, you try to capture the essence of the work in your artifacts. That is, all intellectual property is in the requirements, plans, architectural models and designs—essentially all of the pre-work for a given project. So success is really driven by the quality of the artifacts and the up-front planning. Once you get everything defined, it’s simply a matter of execution. Heck, almost anyone could do that part…

Agile takes an entirely different approach. Yes, plans and artifacts are important elements of success. However, the ultimate element of success is the good people you’ve hired—in other words, Your Team! So what are some of the key characteristics of the team?

Notion of Self-Direction

Well, first of all they’re self-directed. Managers don’t micro-manage. Instead, they supply goals and objectives. That implies that team members have the confidence and skills to work together towards meeting those business goals.  They like working and collaborating in groups. They’re comfortable taking constructive feedback and giving it. Quite often, they work in an open office environment—so there’s a level of comfort working “in open space” that’s required.

I guess gone are the days when developers worked in closed offices and you slipped pizza and coffee under the door periodically to ensure they were working.  And in return, code was slipped out.

It really is a transformation from individual achievement and productivity towards how a team gathers around a business problem. The team then figures out the best solution and how they all play a part in achieving it.

Notion of a Business Partner 

One of the key points in agile teams is partnering with the “business” to ensure that they deliver exactly what the customer needs—no more and no less. The customer is a full-time and welcome member of the team. This implies that we deliver products in small chunks and ask (listen for) feedback from our stakeholders and customers. Then we make immediate adjustments.

It also means that we expose work progress transparently to the customer—in good times and bad. Why? To allow for early adjustments to scope commitments. In the case where we over-estimated the work, and can do more than we originally thought,  we need to advise the customer as early as possible so they can think about the next highest priority.

In the case where we’ve underestimated the effort (imagine that!), we work with the customer to jettison low priority scope in lieu of delivering the most valuable bits. These are not a one-time event, but should occur daily—continuously.

Notion of Quality First

Solid agile team members have come to realize that you don’t test or check quality into a project, application, or program. You build it in. Upfront, and with fairly rigorous collaboration and discussion surrounding trade-offs.

You’ll hear the terms refactoring and technical debt from agile corners. Both revolve around the tendency we have of doing shoddy work in our initial implementations, often driven by time constraints, and then never going back to clean up after ourselves. The drive is always more features and we don’t have time nor the funding for any clean-up.

Well in our community and thinking, we should always have the time to do solid work that is maintainable and maintained!  So agile team members take their professional responsibilities seriously and look to do work that they (and you) can be proud of. 

About the Author: 

Bob Galen is the Director, Agile Practices at iContact and founder of RGCG, LLC a technical consulting company focused towards increasing agility and pragmatism within software projects and teams. He has over 25 years of experience as a software developer, tester, project manager and leader. Bob regularly consults, writes and is a popular speaker on a wide variety of software topics. He is also the author of the book Scrum Product Ownership – Balancing Value from the Inside Out. He can be reached at bob@rgalen.com

Posted in: 
PM-Agile
Bookmark and Share

Finding the Right Person for Your Open Position

It seems like it should be so easy. Maybe you want to find someone just like the one leaving. Maybe you’re thinking thank goodness that person left and are looking for just the opposite. Or maybe you just created the position.

I love my clients that call and say "I need a guy." My response, "Okay, I know this guy…he’s good....." And, maybe he is, but is he good at what you want? So, I need a little more than that to find your guy – or gal as it may be.

The easiest thing to do is to create a list and use it to evaluate candidates by adding a second column to note whether they miss, meet or exceed your requirements. It will make everything so much easier and it will keep your interviews consistent and somewhat objective. Also, write down what the person will be doing – projects that are available now and in the future and the core responsibilities. This helps keep your message consistent.

Okay – so the easiest part is the list of hard skills required/expected. Here are some ideas.

Skills required – required, preferred and alternate skills. Please do not list everything your team uses as a requirement. There is nothing crazier than reviewing a position that has a list of 20 skills. I mean, really? Did the other successful folks on your team walk in with all those skills? For most positions, just concentrate on the key languages and concepts. If they are good in those, then they can learn the rest.

Degree required – Is it necessary and why? I have a lot of managers who feel that the experience of college makes them a little different, or maybe the concepts/theories that you don’t learn on-the-job make them better. If you require it, just understand why in case you come across that great candidate that doesn’t have it. I see too many companies that close the door on a great candidate that didn’t get the opportunity to complete a degree or didn’t have the resources to go to a top school. It may be that your experience has taught you one way or the other, but try not to make too many assumptions about the person based on the degree.

Prior experience – what will this person have done in their past that will make them good for you? Do they need certain industry, application or company experience? Maybe they came from a small, medium or large company? Maybe they worked for a competitor? Maybe they have worked in a lot of different places and might be able to bring some new ideas to your team? I would look at the successful people on your team and try to see if and what prior experience made them better than the rest.

Travel – how much will be required? Southeast? National? International?

Hours – Telecommuting options – this is an area where you need to be clear and consistent. Candidates may have limitations or your company may have certain requirements. You may have flexibility but don’t promise too much to lure in a candidate. If your team consistently works 60 hours a week, you need to share that. If you don’t, you’ll invest time and money in a new hire who will later quit and it will cost you more time and more money.

Compensation - know the details such as salary, bonus and benefits. Also – are there things that candidates can trade? I have negotiated offers with a lower salary but more vacation or a telecommuting option. It is good to know what flexibility you may have for a great person.

Next time I'll talk about the tougher skills, the subjective stuff, the soft skills.

About the Author: 

Chrissy Petri is an Account Manager for MATRIX Resources with 15+ years in the IT recruiting industry in Atlanta. She works with small, medium, and large companies to find IT talent from Help Desk to Programmers to Project Managers and Directors.

Posted in: 
Hiring Manager
Bookmark and Share