Category Archives: Talent

CTO Rules for software product development teams

Software product teams that work well can be amazingly productive. The following rules have helped me grow high performance teams – most of the time they are all appropriate.

1 – Building the right thing is more important than building things well – but building things well is also important.

2 – Customers almost always ask for incremental improvements to what already exists. Your job is to figure out what will wow them – what they didn’t even know they wanted.

3 – Every team member should be able to do a reasonable demo of their product. This tends to get engineers more involved in design from the end users/business perspective.

4 – Product release cycle time <= 90 days. Faster is generally better. Software product development is an attempt to predict the future. The quicker to market, the shorter timeframe you have to predict.

4a – Products/projects going more than 1 year without a release have a dramatically higher probability of cancelation – total waste. Release often so you can learn/re-vector faster.

5 – Talent, not resources. Resources are things like servers, software, networks and money. People are different – they can figure out how to solve problems and do things better. That is talent at work. Instead of a project resource plan, build a talent plan.

6 – Every team member is treated with respect. We tend to attract folks to product development that are, shall we say, socially challenged. However, these socially challenged engineers tend to be really good at things that are difficult to get done. Keep them focused, and make them feel like valuable team members.

7 – Engineers get the best gear. Things like laptops/tablets/software/phones have become status symbols in many organizations – executives get the best gear. If you want better team productivity, then engineers get the best gear.

8 – Most decisions should be made by teams – not dictated by the CTO, except for the rare occasions when it really matters that the CTO should override the team. There are usually a number a ways to get something done. Let the teams be creative where your standards allow.

9 – Team roles are defined out of necessity, but every team member is responsible for their total product – its never not my job.

10 – Automation often improves team throughput more than adding team members. Make sure you spend enough time and money on speeding up the team.



Hiring Great Talent – Passion for Technology

Many organizations look more for specific skills rather than broad experience and ability to rapidly learn new technologies when evaluating technology job candidates.  The assumption is that the ramp time will be short because the candidate already has the needed skills.   In many cases this can be very short sighted.  When things change you may have the wrong technologist.  Plus it often takes more time to learn your specific systems than a particular technology.  I look for candidates that invest heavily in personal research and development – pick up new technologies on their own because they have a passion for technology.  They constantly learn new technologies on their own time.  Maybe even use vacation time to go to a technology conference.  To them it’s more than a job, it’s what they do.  Look to see how many different technologies with which a candidate can have an intelligent conversation about.  And which technologies cause a candidate to really perk up.

A job candidate also needs to have a passion for the use of technology in product and business areas, particularly if they would be working closely with those teams.  Can the candidate carry on an intelligent conversation with product and business folks?  Are they inquisitive or passive in these areas?  A candidate that is just interested in technology can become a real issue if product and business folks are looking for a technology partner.

Resume scanners can be effective at identifying potential skill sets.  But you are going to have to dig much deeper to determine the breadth of a candidate’s experience, or how rapidly they learn new technologies.  Team based interviewing (including product and business partners) can be a very effective technique to determine depth of experience and passion for technology.  In team interviews, everyone gets to hear the candidate’s responses at the same time, rather than giving a candidate an opportunity to change their responses to fit the specific interviewer.

Using a consultant can be effective for a specific project (with very specific skills).   The candidate review process can be shorter, and there are no expectations of a continued assignment after the project.  Plus if the consultant turns out to be a super star, you can hire them later.

Looking for a broad set of technology skills (and passion for technology) is critical if you are going to build teams that can adapt to changing direction.  Otherwise you may spin your wheels getting new talent up to speed.

Talent! Not Resources.

I am amazed that most organizations use the term resources to describe their technology staff.  Their staff may even use resources to refer to themselves.  If your organization is suffering from low energy level this may be part of the problem.

Resources…  hmm…  Stuff that I can buy or rent to get things done.  Resources do specific things.  Resources don’t need benefits.  Resources don’t have a life outside of work.  Resources don’t need pep talks when things aren’t going well.  And you don’t feel awful when you have to let the resources go.

But resources are not very adaptable.  Resources aren’t creative.  Resources don’t get behind a vision of the future.  Resources don’t put in super human effort when things are not going well.  Resources can’t continuously improve your business through innovation.  And resources can’t grow into leadership positions.

How would you do things differently if you managed talent instead of resources?  Start by calling them talent.  Then treat them like they are really part of your team – trusted colleagues.   Provide information on how things are really going, what’s coming up.  Don’t keep them in the dark.  Even if things are not going well.  Let them know what is important to you and to your organization.

Get to know team members.  Their hopes and dreams.  Personal challenges they face.  What they really get excited about.

Give them room to figure things out for themselves.  Even though you know how to do every job in your organization, give them some room to be creative.  They will undoubtedly surprise you at some point.  Focus on objectives, not the details.  Talent will learn faster by figuring it out rather than following orders.  And then they will be more valuable to the organization.  But don’t let them fail big.  If you have been there before, don’t confront them head on.  Guide them to a reasonable path.  Small failures will help their learning.  But big failures can be devastating.

Help them grow personally.  Each team member will have different ambitions.   Their ambition may be to grow along a technical path.  Or perhaps into management.  Or even a pivot into a totally different role.  Sometimes this may also mean they will need to leave the organization to follow their dreams.  Make a deal with them – you will help them get there if they find and train their replacement.

Give them a variety of experiences – technologies, projects, processes, and team interactions.  Having 10 years of the same 1 year of experience is not very valuable to an organization.

Keep teams together so they can develop personal relationships.  Let teams hire their new team members.  They will be able to figure out who can help get a difficult release out the door, who will watch their back in a crisis.

Recognize teams and team members when they go above and beyond.  Or when they build something incredibly cool and useful.   Salary compensation is just a maintenance factor for many IT professionals.

Start calling them talent.  Give them objectives and guidelines.  What things they can change, and what things need to be leveraged.  Paint a vision of the future that they can get behind.   Check in with them regularly.  Course correct when you need to.  But let them run with it.

You are leading talent, not resources.  Emotions matter.  Motivation matters.  It’s up to you to lead your teams to win.