I recently have become quite exhausted by the constant change of direction that we need to adapt to as developers. Responding to change is a critical part of the business. However, developing software and the opportunity cost of building the wrong thing makes it very important to filter what the team should build.
How do I filter the seemingly never-ending list of ideas that arrive at my door? What do I say no to? What do I get behind? I find it useful to identify the organization’s competency and compare it with their market differentiating features.
Defining my core competency as a technology company is a critical task. To state one has a core competency in something, one needs more than the ability to build it. In my view, a core competency should be embedded into the practice of the business. Once a company has practices, processes, and domain expertise in a subject sufficient to provide crisp marketing, quality products, compelling sales, and top tier support, it becomes a part of its core competency.
Defining my core competency also helps me understand where I can improve the business without an expensive technology spend. If I believe I understand my core competency, yet know that my organization struggles with marketing or support, then I have an opportunity to build mastery as a business.
IMO before taking on the challenge of expanding the business’s core competency, one needs first to evaluate the entire chain of product delivery. I find it useful to Identify shortcomings and make a specific plan to improve those parts of the business; these are likely low hanging fruit for improving revenue, reducing cost, or improving customer retention.
Having created an exact list of core competencies, I find it crucial to develop a specific plan to deliver my core product to my customers. The important question here is, is this a particular competency that makes you stand out in the market or merely an operationally important part of the business? For example, is how you process leads from the website something that makes you stand out in the market? This is a critical question. Is my support ticketing system the primary thing that separates you from the competition? If it is not the part of our identity that communicates our unique value to a customer, it is likely not market differentiating. However, I must still have mastery here before adding new items to my core competency. To do this, I identify ubiquitous best practices in processes and infrastructure and thoroughly implement them. I might avoid spending time and money building my own CRM; I could buy any good CRM and focus on implementing standard support best practices until I can demonstrate mastery.
On the other hand, new ideas, features, and markets will always present a temptation to build new features in my business that are not a part of my core competency. The safest and most practical way to address an idea that my business has no mastery of is to create a partnership. Good partnerships can expand my ability to deliver products and services to my customers without distracting our marketing, sales, and development teams. It’s a safe way to build domain expertise and give customers the solutions that they need.
IMO knowing one’s core competency will help you identify best practices around that competency that one must master in order to sell it. I suggest building mastery in fundamentals before expanding ounces core competency. Clearly defining an organization’s core competencies and market differentiation will help you know when to build when to partner, and most importantly, what to avoid.