Can You Measure Software Developer Productivity?

Can You Measure Software Developer Productivity?

The cost of software development kills innovation by limiting resources available to solve problems

THE PRODUCTIVITY DILEMMA

Let’s face it – software development is expensive.  Really expensive.  It’s not hard to understand why – software development is a complicated and still-maturing industry, and as the sector grows, it actually gets more complicated, not less, because of the acceleration of changes in technologies, programming languages, and toolsets.

As a technology consultant, one who is paid to help build expensive, complex systems, I should be happier than a fanboy on a Fortnite bender about this trend, right?  Wrong – it frustrates me a great deal.  My job is to solve problems and build things that people need, and that gets harder when funding becomes a challenge for our clients.

So here’s the question I’ve been grappling with – how can we make software development more productive to reduce costs?

There are lots of things our industry has done over the preceding decades to tackle this problem:

  • Developed working methodologies to build repeatable practices – Waterfall, Unified Process, Agile, XP, etc.
  • Created design patterns to solve common problems – MVC, SOLID, GoF, and many others
  • Leveraged lower cost resources through offshoring

None of these have been a panacea.  Look at any enterprise and you’ll find competing for SDLC methodologies, loose adherence to design practices, and the common efficiency roadblocks due to offshoring.  While these efforts have been helpful in managing cost, it is very difficult to measure the effect they have really had.

MEASURING PRODUCTIVITY

What to do, then?  More than anything, the focus of productivity has to start with the most human element of all – the individual developer herself.  The focus has to be on how to increase the speed that a developer can turn a designed solution into working code with as few errors as possible.

Anyone who has been in the software industry knows there are broad ranges in developers’ productivity.   It depends on the individual’s ability to understand programming theory, their educational background, years of experience, a personal situation at the time, how much Fortnite they play, etc.

Why is this important?  Quite simply, time is money.  The longer it takes a developer to code a solution, the more it costs.  In today’s environment of nearly full employment, demand for software developers has never been higher, which brings a lot of varied talent into the picture to meet the demand.  Anyone who has hired a developer knows the productivity gap I’m talking about – hiring is an expensive proposition and no matter how much interviewing you do, and you’re never sure what sort of productivity you’ll get until that person gets to work.

Why is measuring productivity so hard?  Because a good measurement involves an apples-to-apples comparison between developers, yet they will almost never complete the same task to produce the same set of code.  Since every development task is different, we cannot establish a baseline for how long it SHOULD take to perform a task versus how long it WILL take a specific developer.  Throw in each person’s differing levels of experience, education, and general abilities with the discipline, and…you get the picture.

Does that mean we’re stuck with technical interviews, coding tests, and answered prayers to create a team of highly productive software engineers?  Not quite.  Agile practices give us an opportunity to solve the biggest challenge in measuring developer productivity – creating a baseline to measure the variance between the estimated and actual time to perform a coding task.

HOW IT WORKS

Every ALM tool – Jira, or otherwise – allows a Scrum team to create story sub-tasks during their planning sessions.  Usually, a developer assigned to a sub-task has an opportunity to estimate the time it should take to complete that task, measured in hours.  During the sprint, developers can then track the actual hours spent so the team can evaluate the variance between estimated and actual hours.

This variance isn’t particularly helpful as a productivity metric because the individual developer may be much faster or slower than the average, and their estimations likely reflect this bias.

The solution to this problem is to have all the developers on the Scrum team estimate each subtask duration, creating a proxy baseline and a more reasonable expectation of the task’s duration.  Then, once a task is assigned to the individual developer, the variance calculations can start to have some meaning.

What meaning are we to glean from this variance? When looking at large sets of variances (hundreds or thousands of tasks over multiple projects), we can observe patterns in individual developers’ productivity.  If they consistently take longer to complete a task than the established baseline, we can look more deeply at the data to find root causes and potential remediations.  Is there a skills mismatch, allocation mismatch, or something else?  Does the developer need more pair programming or training in specific areas?

If a developer consistently performs tasks in less time than the estimations, we have hard metrics to reward that individual and encourage continued productivity.  We can also look at the data to see how we might have other developers emulate good behaviors from these high performers.

IMPLICATIONS

I know I know – I can hear the complaints now.  A small group of 2-4 developers on a Scrum team estimating a task cannot be used as a valid baseline, you say.  It’s a fair point, but any leftover estimation bias from a small sample size of developers would be offset by the volume of variance data we would collect.  As a manager, I care more about the variance trends and less about the exactness of anyone variance calculation.

But wait, you say.  All of this supposes a developer will be truthful in reporting their actual duration on a task.  People lie to themselves and others all the time (just read “Everybody Lies” by Seth Stephens-Davidowitz) – if a developer knows they’ll be measured on variance, they’ll manipulate their actuals to improve their perceived productivity.

Again, fair point, but there is a self-policing solution to this problem.  An employee is generally expected to work 8 hours a day.  If a developer consistently under-reports their actual durations on a task, it would appear they were consistently working less than they should be.

Say a developer is assigned two 4-hour tasks, and he takes 1 day to complete both but only reports 2 hours of actual duration for each task.  We would see a report that shows him only working 4 hours that day.  With enough data points, we could easily spot a trend of under-reporting and take corrective action.

CONCLUSION

Why is all of this important?  As individuals, not just employees, we should all strive to improve ourselves every day.  That’s how society is supposed to work – we do things, we make mistakes, we learn from them and we grow in the process.  But we can’t improve what we can’t measure.  The method I describe is very easy to implement, as long as your team is following the Scrum ceremonies.  With simple metrics and trend analysis, maybe we can finally solve a difficult problem and leave ourselves more time to knock a few more things of that ever-growing to-do list.

Chad Hahn
Contributor
Optimity Advisors, Inc.
Chad Hahn is a partner overseeing the digital & technology practice at Optimity Advisors. He is an entrepreneur with 20 years of experience in strategy, business development, operations, and technology, and has started and sold two successful service businesses. He has a strong background in software engineering and enterprise architecture, with deep expertise in both traditional and emerging technologies.
×
Chad Hahn
Optimity Advisors, Inc.
Chad Hahn is a partner overseeing the digital & technology practice at Optimity Advisors. He is an entrepreneur with 20 years of experience in strategy, business development, operations, and technology, and has started and sold two successful service businesses. He has a strong background in software engineering and enterprise architecture, with deep expertise in both traditional and emerging technologies.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Startup Should Create a Culture of Collaboration, Not Silo

Startup Should Create a Culture of Collaboration, Not Silo

A company needs its employees to work together.  For the organization to function well, it must have multiple people with different expertise and skills working together towards a single goal. Basically, a company needs its people to collaborate.

But moving fast, innovating, and excelling all at the same time is a hard thing to do. It’s even harder if you put people with varying beliefs, personalities and abilities together.

So the big question is, “How do we create a culture based on collaboration?”

Know the “Why”

Before anyone can collaborate, they need to know why they should do it in the first place. Some professionals may refuse to work with other people because they believe that they don’t need the help of others.

To convince these kinds of people, you need to show them that the project cannot be done by a single professional. Tell them that it will be faster and efficient if a group of people with special skills work together. Plant the seeds of cooperation early and you’ll see fantastic results.

Have a meeting and invite everyone involved in the project. Explain to them clearly why you need their services and why you need to solve this problem. If people know the “why”, then all that’s left for them is to “do”.

Use the UX Mindset

The user experience mindset or UX mindset for short is a way of thinking that puts the customer first. It reframes how you think and it will give you a new work perspective. Integrating the UX mindset into the team will instill cooperation.

People unite under the UX mindset because they have a common goal. Instead of bickering with one another, people will set aside their differences to create an amazing user experience.

Teach people to respect roles

Respect or to be more accurate, the lack of respect is one of the biggest reasons why people refuse to cooperate. Lack of respect stems from a feeling of loss, elitism, miscommunications, misunderstandings, and ignorance.

It’s hard to teach people to respect someone that they’ve just met. However “hard” does not mean that it’s impossible.

To remove lack of respect from your team, you simply need to show them respect. Respect can be gained by clearing up misunderstandings, having a positive outlook, and understanding the bigger picture.

An ignorant employee might complain that a certain job or role is useless but once you show them why the bigger picture, they will understand their foolishness and begin to show a little bit of respect.

Teach your people to accept and embrace change

The only true constant in this world is changing.  Change is something that happens all of the time but for most people change can be a bad thing.  Your people might be comfortable with the status quo and the thought of change is a scary notion for them.

However, change is needed for progress.  You simply need to convince yourself and your people that change can be good. You simply need to look at it from a different perspective. Show them that they’ll be getting more than what they’ve bargained for. All they need to do is to simply learn and embrace change.

Sure, some changes can be rough. And change may lead to tough times, but you have to take risks to move forward.

If this isn’t enough to convince them, then you can use change as a way to stimulate people. Frame the change as something that creates adventure and excitement. Frame it in a way so that they will learn to love the unknown.

Improve communication between team members

People cannot collaborate if they can’t communicate with each other. And standard communication isn’t enough, they have to communicate perfectly with one another.

Perfect communication between team members is hard and it isn’t just about telling people what to do. No, perfect communication is a much trickier task. You must teach your people to use the right words at the right time.

Improper communication can lead to arguments. The use of incorrect words might offend people and impact them on a subconscious level. Learn ways to reframe your words, because a single word can alter your intended message.

Effects of a Culture based on Collaboration

A culture that promotes teamwork and collaboration is ideal. There are tons of benefits from having your people work well together. But some of the most notable and most important effects would be…

An increase in creativity and morale

This is probably one of the most obvious and most notable effects of a collaborative culture. Teams are more creative and more positive since they get along well with one another. People will also feel better if the workplace promotes teaming up and working with others.

More innovative members

A culture that promotes working together will also promote new ideas and new opportunities. Team members are more likely to participate in meetings since they feel comfortable talking and sharing their ideas.

Innovation stems from the will to change. And if people are open to change and new opportunities, then they are welcoming innovation with open arms.

Better ROI

Achieving a culture based on collaboration is hard. It might even be impossible for others, but once you reach it, it would be worth your while.

When a team is collaborative, they work faster and better with one another. People are more content with their work and they will do their best most of the time. People are also more creative, and innovation blooms freely in the work area.

In the long run, the team will be able to produce quality products and the company will make more money in the long run.

Conclusion

Mankind is capable of creating wonderful and amazing things. I mean we’ve created airplanes that can fly in the air, we’ve harnessed the power of lightning, and we’ve created cities that can accommodate millions of people.

This is all thanks to collaboration and teamwork. Creating a collaborative culture in your workplace is a big deal. Expect better products, better relationships, and overall a better team.

Creating an ideal setting where people promote the idea of teamwork and camaraderie is hard but it is well worth it. If you’re a manager and aren’t doing this to your team, then you’re missing out!

Here’s a great read – Top 4 Tips for Building a Real Networking Community

Founder, Editor-in-Chief
LAStartups.com, Schmoozd.com
A native Angeleno. John studied engineering at UCLA; founded Schmoozd, an offline social tech networking event in LA with 30,000 subs; ran a startup accelerator (StartEngine). Worked for several major brands like Toyota, DIRECTV, Hitachi, and Raytheon. A mentor at LMU Entrepreneur School. And advises a dozen local LA startups building amazing tech in various industries; also invested in some.
×
LAStartups.com, Schmoozd.com
A native Angeleno. John studied engineering at UCLA; founded Schmoozd, an offline social tech networking event in LA with 30,000 subs; ran a startup accelerator (StartEngine). Worked for several major brands like Toyota, DIRECTV, Hitachi, and Raytheon. A mentor at LMU Entrepreneur School. And advises a dozen local LA startups building amazing tech in various industries; also invested in some.

8 Ways Your Company Can Save Money By Hiring Remote Worker

8 Ways Your Company Can Save Money By Hiring Remote Worker

Whether you’re a veteran or simply a new business owner, one thing is certain – overhead costs are a big pain in the @&&. So it’s a good thing that modern technology has helped today’s businesses cut down on costs.

You save a lot of money by not paying for office space, construction costs, electricity bill, rental fee, food expenses, and other expenses. You can simply hire your employees and have them work at home. It’s also a big benefit to the employee since they don’t have to worry about gas expenses or commuting expenses. They also work in the comfort of their own homes and they can set their own schedules as well. It’s a win-win situation for both the employer and the employee.

But if you’re still not convinced then take a look at these reasons that explain why hiring remotely can save you a lot of money.

1 Lower Operating Costs for Your Business

You don’t have to worry about renting office space, paying electric bills, paying water bills,  buying office supplies, providing for snacks, office repairs, buying hardware, fixing to plumb, and all those other expenses since most (if not all) of your workers are now working at home.

Based on a poll from Global Workplace Analytics, it was discovered that businesses and companies who allow their employees to work at home have reduced expenses and reduced company overheads of approximately $11,000 annually.

2 Your Remote Workers are More Productive

Working at home has a lot of perks. The most obvious perk would be that of time and travel expenses. Home workers don’t need to travel to the office which saves them a lot of time, they also don’t have to experience the stress of being caught in a traffic jam during rush hour.

Asides from the traffic, home workers have fewer distractions and they can devote 100% of their time and energy on work. Home workers have flexible work schedules that they can even take care of their children, cook their own food, and watch television. This flexible work schedule makes them more productive and it helps them produce high-quality outputs.

According to Tiny Pulse, about 91% of home workers state that they get more work done when they are working remotely.

3 Employee Turnover Will Be Reduced

A lot of employees are being replaced yearly. It’s costly to train new employees and it takes a lot of time and investment to make them as effective as the old ones.  You can convince your current employees to stick around by making them work at home.

According to the Global Workplace Analytics, about two-thirds of employees would switch their current jobs if they could ease the burden of commuting and deal with traffic. By relieving your employees the burden of traffic, you are also ensuring that they would stick around and work for you.

4 You will have more productive and efficient meetings

Payroll has reported that over 40% of office professionals see impromptu meetings as a major distraction in the workplace.

You don’t have to worry about impromptu meetings that hinder you from doing your work. Most impromptu meetings have little value to add and they are often used to kill time in the workplace. It’s even more annoying when people chat and goof around while waiting for the other workers to come to the meeting. You lose at least an hour of your work time in these meetings, an hour that you could have spent working on that project.

You can have more efficient and productive meetings if you have a lot of remote workers. Why? Because meetings have to planned and scheduled in advance which gives you and your employees more time to prepare for the meeting. So no more on the spot brainstorming or fooling around, you can now have meetings that help and improve your employees work rather than hindering it.

5 Your Workers Can Work Even on Sick Days

People in the office often take the whole day off when they call in sick. This would set back your profits and you’ll be at a loss. Remote workers, on the other hand, don’t have this problem.

Your remote workers can work from bed (if possible) when they’re sick. If they can’t work when sick it’s still okay since they have flexible work schedules that make it easy for them to catch up with work.

6 It’s Faster and Easier to Hire Remote Workers

Office employees undergo a very long and tedious hiring process. They undergo interviews, handle paperwork, background checks, and they have to be sorted out by the HR department. It would take a few days at best to hire a new employee.

Hiring a remote worker, on the other hand, can simply be done within a 24 hour period. There’s no bureaucracy that will slow you down.  However this comes at the cost of security and quality, you have to do the background checks yourself and make sure that they are up to par with your company’s standards.

7 You Don’t Need to Rely on Local Talent, You Have the World to Choose From

If your company is located in a big and thriving city. It’s very likely that your employees are also living in the city as well. The cost of living is high and you have to pay them a much higher rate.

However, you can pay remote workers much less since you don’t have to adhere to industry standards. You can pay someone a lower rate but with equal talent, whose living in a rural area and they’d still be happy about it. You can even completely outsource the work and hire workers from across the world.

8 You Can Work Remotely as Well

What’s so great about having all your workers work remotely? Well, it means that you don’t have to go to the office anymore! You’re basically working remotely as well. That means that you don’t have to worry about commuting/ driving, rush hour, and other daily work expenses. You now have more time to spend with your family and you can probably work while traveling the world.

And, here are 3 ways to build trust in remote teams

Founder, Editor-in-Chief
LAStartups.com, Schmoozd.com
A native Angeleno. John studied engineering at UCLA; founded Schmoozd, an offline social tech networking event in LA with 30,000 subs; ran a startup accelerator (StartEngine). Worked for several major brands like Toyota, DIRECTV, Hitachi, and Raytheon. A mentor at LMU Entrepreneur School. And advises a dozen local LA startups building amazing tech in various industries; also invested in some.
×
LAStartups.com, Schmoozd.com
A native Angeleno. John studied engineering at UCLA; founded Schmoozd, an offline social tech networking event in LA with 30,000 subs; ran a startup accelerator (StartEngine). Worked for several major brands like Toyota, DIRECTV, Hitachi, and Raytheon. A mentor at LMU Entrepreneur School. And advises a dozen local LA startups building amazing tech in various industries; also invested in some.

6 Easy Steps to Optimizing Your Voice Search – And Why It’s Important

6 Easy Steps to Optimizing Your Voice Search - And Why It's Important

Interacting with artificial intelligence may still seem like an idea from science fiction, but several companies have turned that idea into reality sparking the need to know how to optimize for voice search.

Is voice search really that important?

Yes, because it’s revealed something about us … we really, really like it.

When people have questions, they turn to the web for answers. If you want to learn more about a restaurant, the weather, or the score from last night’s game, you’ll probably turn to the web for the answer in most cases. It’s fast, efficient, and you can access it with your phone.

With voice search, you don’t even need your phone.

So, what does this mean for business owners?

Similar to the way you performed search engine optimization to align your website with the keyword your target customers use, you now need to understand how to optimize for voice search. Today, we’re taking a closer look at this process as well as why it’s important.

How Popular Is Voice Search?

The statistics on voice search definitely shows that it has become a lot more popular, and it will become even more prevalent in the future.

  • Compared to 2008 voice search stats, search queries on Google voice search has increased 35 times by 2016.
  • 4 out of 10 adults now use voice search at least once a day.
  • About a quarter of young adults (ages 16 to 24) use voice search on their mobile devices.
  • By 2016, 20% of searches on an Android app in the US were by voice search.

More and more people are using it. It’s just a fact of life, and it’s a practice that’s bound to increase in the future. It’s been predicted that by 2020, fully half of all searches will be by voice. Desktop users are using voice search more, and home automation and Internet devices are increasingly voice activated.

Top Reasons Why More People are Using Voice Search

There are several good reasons why more people are using voice search instead of typing in keywords into a search bar. One survey discovered the top reasons for resorting to voice search over keyboard tapping:

  • Voice search is great when you’re eyes or hands are otherwise busy at something else. In many cases, this “something else” means driving. But it can apply to many other types of activities and situations. You can be doing chores at home, such as vacuuming or watching TV. You can be working out in the gym. So when your hands are busy, this means you can’t type in the words in the search bar. When you’re watching something else, you can’t see what you’re typing. In both cases, voice search makes more sense.
  • Others use voice search because they appreciate the faster results. Think about it: how much faster is it for people to talk, compared to typing in the keywords? People can type about 40 words a minute, but they can speak up to 150 words per minute. Google can start its search much earlier with voice search.
  • Some people use voice search because it’s easier. In many situations, it can be difficult to type in the words. This is certainly true when you’re on the go. Others aren’t yet well-versed in tapping the right letters on a smartphone screen.
  • For some, it’s about the cool and fun factor. Kids and teens just think it’s a cool way to use Google. But quite a few senior citizens are enthralled by the technology as well. It’s just so Star Trek.
  • Voice search is also a good way to avoid using confusing menus. This is especially true for apps that allow for voice search.

How to Optimize for Voice Search

So now that you know that people are using voice search more frequently, you have to adjust your website to accommodate this new trend. It took too long for some brands and websites to factor in the rising popularity of mobile search in the past, and they paid for it with reduced traffic. Now your website has to account for voice search if you want to take SEO seriously.

So what should you do? Here are some ways you can improve your website so that you can accommodate the needs of people who use voice search:

1 Update your local listings

In many cases, people use voice search to find info regarding brick and mortar establishments. So you need to make sure that your local listings are set up properly and they’re accurate. Put in your business information and pick your categories wisely. Your information should also be consistent with all the listings they appear in.

2 Use natural language keywords

The most common keywords used in voicemail will usually be in the form of long tail keywords and natural questions. You have to optimize your site for those kinds of questions.

3 Have a Q&A section

This is an effective way to have natural questions in your content. At the same time, you can provide the answers right away. It’s best if you don’t limit your Q&A to just your FAQ section. You may want to have your blog posts contain this kind of format. In fact, you can put them on your product pages as well. You have to build your content around questions that people might post on voice search.

4 Optimize for mobile

While it’s true that voice search is even becoming popular for desktop PC, the fact remains that voice search is more often done on smartphones. This means you need to make sure your website looks great on such a small screen. It should also feature navigation features that work best for smartphone touchscreens. Don’t put in links and buttons too close together.

5 Boos your website speed

Many voice search users are on the go. They’re also mobile Internet users, and these people are notoriously impatient. About 40% of all mobile users wait only 3 seconds before they abandon a website. So if it takes more than a few seconds for your landing screen to load, people are just going to tap the back button and try another website instead.

 6 Make your content scannable

Most of the time, people won’t bother to read long articles on their smartphones. They’ve posted a question on their search, and they want to get the answer quickly. So use visual info if possible. For text, you need large fonts for headlines, simple sentences, and short paragraphs.

It’s imperative that you don’t miss the boat on voice search. You have to accept that more and more people are using this to find the website and data they need, and you have to optimize your website accordingly.

 

Founder, Editor-in-Chief
LAStartups.com, Schmoozd.com
A native Angeleno. John studied engineering at UCLA; founded Schmoozd, an offline social tech networking event in LA with 30,000 subs; ran a startup accelerator (StartEngine). Worked for several major brands like Toyota, DIRECTV, Hitachi, and Raytheon. A mentor at LMU Entrepreneur School. And advises a dozen local LA startups building amazing tech in various industries; also invested in some.
×
LAStartups.com, Schmoozd.com
A native Angeleno. John studied engineering at UCLA; founded Schmoozd, an offline social tech networking event in LA with 30,000 subs; ran a startup accelerator (StartEngine). Worked for several major brands like Toyota, DIRECTV, Hitachi, and Raytheon. A mentor at LMU Entrepreneur School. And advises a dozen local LA startups building amazing tech in various industries; also invested in some.