Sunday, April 23, 2017

How Agile is creating a new Horizon for HR

A collaboration by Amy Jackson and Mario Moreira
Gone are the days of certainty.  In order to stay competitive companies must constantly innovate, adapt to changing market conditions, and deliver value to their customers faster than ever before.  As a result, many organizations are embracing Agile principles and practices, which are highly collaborative, iterative and focused on delivering maximum value to customers. 
As Agile adapts organizations, so must Human Resources (HR) adapt.  HR is poised to become leaders in the Agile transformation.  From an organizational change perspective, HR can facilitate and improve organizational agility by crafting programs that improve collaboration, ownership, adaptability, speed, and customer focus.  This can include:
  • Continuous Learning determine the appropriate Agile learning path for your teams.  For those just starting out, introduce the Agile Values and Principles and make parallels to the culture and behaviors your organization values. 
  • Adapting Leadership - rethink the role of the manager.  Consider moving from a command and control approach to servant leader/ coach.  Leaders should focus on coaching and removing impediments.
  • Empowering Teams – teams that are given clear direction and outcomes should be empowered to determine how they will work to achieve their outcome.  This autonomy will drive higher levels of creativity and engagement, and if done right, deliver maximum value to customers.
  • Adapting Performance Feedback – consider moving away from “traditional” annual reviews to more frequent feedback and faster feedback loops.  Individuals and teams can adapt more quickly and apply learnings to improve work.  Provide tools and techniques that empower employees to take ownership of their development.
  • Rewarding Agile Behaviorsevaluate programs to ensure they reward the behaviors and mindset you value.  In an agile environment, teams work collaboratively, consider rewards that promote teamwork and collaboration, or recognition for continuous learning, and rewards for delivering value to customers.  A one size fits all approach may not be appropriate.
  • Reshaping Talent Acquisition – hire for culture fit and mindset and make this a priority.   Working in an agile environment is not for everyone. 
In addition to focusing on programs that drive agility, HR as an organization should embrace new ways of working that reinforce the Agile Values and Principles.  First, educate yourself and don’t be afraid to experiment and try new ways of working within your HR team.  For example, if you’re considering the idea of Self-Organizing teams, consider experimenting within your team.  You will become more knowledgeable and better equipped with first-hand experience to help guide, coach and facilitate the organization in their journey to become agile. 
As you think about adapting your programs, consider using Open Space Technology.  Open Space is a great way to gather feedback, ideas and insights from your employees that can inform how you design programs for your teams.  This approach promotes collaboration.
If you plan to change or modify one of your existing programs, consider breaking this work into small increments to avoid delivering a “big bang” fully baked program which may not meet the needs of your customer.  If you plan to move away from “traditional” performance management in favor of real-time continuous feedback consider starting with one team, educate them on the value of real-time feedback and then train them on how to give and receive feedback.  Gather their feedback and iterate as needed and then begin to scale the program.
In addition, start connecting to customer value.  Consider creating a compelling purpose that is focused on customer value.  Strive to keep the (external) customer front and center by linking your programs to the value they will bring to the customer. Empower your employees to make decisions that are customer centric – this shift may mean that you change how you compensate or incentivize your employees by moving away from performance metrics that are internally focused in favor of rewarding behavior and actions that delight the customer. 
Strategic HR organizations have expertise in helping companies achieve objectives through focus on organizational culture and high-performing teams.  Given this capability there is a natural role for HR to play in an Agile culture.  HR has an opportunity to become Agile coaches and change agents.  Embrace and ready yourself for change. This may be the new horizon for HR.
-----------------
Learn more about Amy Jackson at: https://www.linkedin.com/in/amjackson/
Mario Moreira writes more about Agile and HR in his book "The Agile Enterprise" in Chapter 21 "Reinventing HR for Agile"

Sunday, April 16, 2017

Exploring Five Pair Programming Techniques

A collaboration by Antonio González Sanchis and Mario Moreira

Extreme Programming (XP) introduced a programming technique that’s been famous since its early days: pair programming. It sounds simple, two people working together with the same computer. However, what people don’t know is that there are many ways in which you can approach this technique. Let’s explore a few:

Driver-navigator: This is the best known style of pairing. It consists of one person ‘driving’, taking the keyboard and coding or doing the work, while the other one is ‘navigating’. The Navigator’s job is to pay attention to the work being done by the driver while keeping the big picture in mind.  They should guide the driver in the right direction. It is very important that driver explains every decision they make, otherwise the navigator might lose interest and may stop paying attention. It’s healthy to switch roles every now and then.

Ping-pong: For this approach you might need two keyboards connected to the same computer. In contrast to the driver-navigator mode, in ping-pong both people can be driving at any point in time. A good strategy for this approach is to have one person writing the tests while the other one tries to pass them. As in the previous approach, you should be switching roles often.

Backseat navigator: A typical approach when there’s a new team member in the group or a junior colleague. The navigator (usually the more senior team member) tells the driver, who has the keyboard, what to do to solve a problem with every little detail. The navigator should provide insights on how to solve the problem but also on why that’s the best solution in mind. It’s a good way to ramp up new members in your team as they build relationships with other people in the team while learning about the working style.

Tour: If there is an even number of team members or someone who you used to pair with went on holidays, you are not going to stop working. However, when those people return or you start pairing with someone, you don’t want them to start right away. Therefore, a good way to start would be to do a ‘tour’ through the code or work you did in their absence. The person who doesn’t know the most about the work takes the keyboard and the mouse and starts driving through the code while the ‘expert’ acts as a navigator and explains every detail.

Distributed pairing: Often people tend to think pairing is for collocated teams but that’s not entirely true. While pairing face-to-face is definitely much more effective than remotely, there are many tools and ways colleagues can pair. A good suggestion would be to use a videoconference messaging tool with a screen sharing app that allows the navigator to see in real time what the driver is doing.
These are not the only pairing styles that you might encounter but they are the best known.  They are also the easier techniques to try when you want to start pair programming. Also, examples seem to focus on software development but pairing is applicable to almost every field.  For example if you are in marketing and are launching an email campaign, you can pair with someone to navigate through the email while you write it, etc.

There might be anti-patterns when pairing. For example, you might find cases when the navigator is ‘sleeping’. This means the navigator can be checking emails, texting or even coding in parallel without paying much attention to the driver. Try to identify the root causes of this behaviour before you jump in into action. Usually it might be because the driver is not explaining properly the reasons why he is doing a specific task in a particular way.

Lastly, keep in mind that while pair programming may work in every role or department, it might not be suitable for every work. There will be times when you just want to discuss the approach with the team and go do it by yourself. That’s also a way of getting feedback, which in the end is the main purpose of pair programming: getting feedback early.  

If you are interested in trying pair programming, the first thing to do is review the list of possible techniques (above) and select one that you will experiment with.  Then identify your pair.  Brainstorm on how you might approach pair programming, specify how long you will try your experiment, and begin.  

------------
Learn more about Antonio González Sanchis at https://www.linkedin.com/in/antoniogonzalezsanchis/

Read more of Mario's article at: http://cmforagile.blogspot.com