Most developers write code before thinking through the business implications. For example, a developer may choose between using a third-party library or developing a custom implementation, or creating a new feature without taking the time to understand its purpose. The result is often unnecessary code, missed deadlines, and cost overruns.
Cultivating business skills can help developers expand their worldview and avoid these mistakes. Rather than focusing purely on code, business savvy development teams consider how software helps customers solve problems and focuses on growing the business with limited resources.
Let's take a look at how to cultivate business skills on your team.Cultivating business skills can help developers avoid writing unnecessary code that leads to missed deadlines and cost overruns. Click To Tweet
Creating the Right Environment
Developers have a lot of flexibility when implementing user stories, and the decisions have a significant impact on customer satisfaction, profitability, and maintainability. So rather than treating developers like robots that translate user stories into code, involve them in decision-making processes and ensure they understand the big picture.
In his 2009 book, Drive, Daniel Pink suggests that employees work best with autonomy, mastery, and purpose. These same principles apply to developers, and cultivating business skills is critical to implement them.
Consider these strategies to create an ideal environment:
- Mastery: Encourage developers to expand their technical and business skills through continuing education. For example, provide them with a learning credit each year or work hours to study.
- Autonomy: Provide developers with enough space to implement user stories. From a customer perspective, providing greater independence can help them think through the business lens.
- Purpose: Involve developers in high-level decision-making processes to help them understand a product's purpose. By sharing common goals, it's easier to stay motivated over time.
Of course, the MAP approach to employee engagement only works when stakeholders have the right expectations. For example, providing 10% time or other methods to encourage mastery is hard when developers are under tight deadlines to ship code. Stakeholders should have realistic expectations and take a long view when it comes to quality software.
Behavior-driven development, or BDD, encourages collaboration between developers and stakeholders. Rather than blindly assigning tasks, stakeholders meet with developers to come up with concrete examples of functionality. The goal is to develop a common ground and ensure that everyone is on the same page regarding a feature.
The BDD process involves a few steps:
- Developers, stakeholders, and testers meet to discuss user stories and come up with concrete examples of the new functionality to develop a shared understanding.
- Testers translate the concrete examples into executable test cases and check for agreement. In addition to testing, these test cases provide "living documentation" that shows the status of features.
- Developers implement the behavior that the test cases describe and use test automation to guide development. That way, the developer starts writing code from a business lens.
At the core of the process, discovery workshops explore a feature's business case from a user perspective. During the workshop, developers better understand the business goals while providing insights into the feature's scope and lower-level functionality. The result is a well-thought-out feature that's easier to prioritize in the Agile workflow.
Customer Support Shifts
A growing number of organizations are encouraging developers to take on the occasional customer support shift. While it may seem like a waste of resources, the process helps developers transition from a functionality-focused viewpoint to a customer-centric perspective. It also provides exposure to sales and marketing concepts.
In addition to customer exposure, encouraging developers to take on broader roles helps improve communication between departments. For example, it's hard for siloed development teams to gain a sales and marketing perspective that might inform code decisions. Better communication can also foster greater innovation over time.
Finally, developers can significantly improve the customer's experience. For example, a ticket answered by a "lead developer" might impress customers and provide deeper insights. At the same time, developers might fix bugs impacting customers faster than a support engineer creating a ticket that has to go through a development process.
Encourage Side Projects
Entrepreneurship forces you to learn business skills quickly. While you don't want employees to start their own business and quit, side projects are an excellent way to encourage them to build small-scale "businesses." These efforts encourage them to explore sales, marketing, finance, and other business concepts as the project grows.
For example, suppose that you give employees time each week to work on a side project. A developer might decide to develop an open-source authentication library for a new framework. The process helps sharpen development skills, but it also forces them to build with end-users in mind and market their project to others.
There are several ways to encourage side projects:
- Open Source: Encouraging developers to open-source some of their code is an excellent way to cultivate business skills and help boost your organization's recruitment efforts.
- Improvements: Google's Gmail and other applications were the results of employee side projects. By providing developers with autonomy, genuine innovations and opportunities can arise.
Of course, 10% or 20% time may negatively impact productivity, and not every business can afford the extra development time. It can also be a challenge for developers to balance their 10% or 20% time with the pressure to deliver new features and fix bugs. As a result, the approach may only work in some organizations.
The Bottom Line
Cultivating business skills on your development team will have a tangible impact on your bottom line. In addition to making better decisions, these processes can help developers feel more invested in the product, reducing churn and improving quality. It's a win-win-win for management, users, and developers over the long run.
If you need help cultivating business skills on your team, contact us to learn how we can help augment and mentor your team.