If a product lags the products of your industry peers in value creation, that does not necessarily mean you should abandon the product. But it does mean you should rethink your strategy, and comparative return on capital data — yours versus theirs — is a critical factor to consider.
You may have a product with a competitive advantage relative to all your peers, but if that advantage is likely to fade maybe a competitor has a better product on the horizon , you may choose a different strategic path. The third foundational question is oriented to action: What is your strategy agenda? This is a framework for longer-term decisions, taking into account the potential value impact associated with different strategic options.
A corporate agenda of this sort can consistently raise your value performance; it sets a context where you are continually thinking about strategic surprise. For example, it will give you the insights you need to evaluate growth opportunities in terms of excess capital returns and sector-leading competitive advantages. It will also show which products you should consider divesting — either because they have low or negative capital returns now, or because their capital returns are likely to diminish over time.
To create your agenda, you need to lay out several strategic options, and make rigorous estimates of the potential value impact associated with each. This analysis is based on three main factors, each a fundamental area in which management allocates capital to affect intrinsic value: growth organic and inorganic , optimization divestitures and the rightsizing of costs and capital , and capital returns dividends and buybacks. In assessing growth, go beyond the basic valuation concepts that many business executives apply to strategic decisions for example, calculating the potential return on investment for several forecasts or scenarios.
Those basic efforts are typically static: They measure the impact of decisions already made. Dynamic valuation is far more powerful. In dynamic valuation, you assess the potential value of decisions still to be made, and revise your valuation approach based on the results of those decisions. Ideally, the dynamic valuation takes into account changes in investor expectations, as revealed through the actual share price — and leads to new ways of moving beyond your past approaches. There are several methodologies for dynamic valuation. In our view, the best choice is decision-tree analysis.
Python @Property Explained - How to Use and When? (Full Examples) | ML+
This approach incorporates a complex series of what-if scenarios, including forecasts for sequential trade-offs or strategic choices, branching off into multiple potential options. Another approach is real options, which use option pricing calculations to represent the value of multiple alternatives; however, we generally do not recommend this complex method except in highly uncertain environments.
In a dynamic valuation exercise, you need to settle on just a few value drivers, metrics that represent the outcomes you are trying to deliver. Some value drivers, such as cash flow and ROI, are easy to define and forecast. They seem relatively straightforward and tangible: You invest a certain amount and expect a certain return. You will gain a better assessment from more intangible attributes that represent less easily defined value drivers. These intangible attributes might seem hard to quantify at first, but it is always possible — and worthwhile — to consider their effect on value in a more disciplined, measurable way.
- Related Stories;
- PHP Interfaces Explained.
- Poetics (Clarendon Paperbacks).
- PHP Interfaces Explained.
- Civic Culture And Everyday Life in Early Modern Germany.
Here, the tangible costs and cash flow benefits seem obvious at first glance: Invest in technology and space-planning requirements to support hoteling and capture the savings from a smaller real estate footprint. But does this rough idea capture all the relevant attributes with enough rigor? If co-located teams are important to your organization, what is the value impact of having your teams sitting apart from one another or working from home? In most companies, time is money. When people have to spend time each day looking for teams, signing into offices, and gathering their files, how does it affect productivity and thus value?
Pandas Index Explained
Does morale suffer when hoteling leads to a no-personal-effects policy, with no photos, plants, or other personal items allowed on shared desks? How does the reduction in face-to-face contact affect the onboarding of new employees? What is the value impact of increased turnover if professionals choose to leave for companies that have not implemented a similar policy? What is the effect on productivity — positive or negative — when staff work at home or at satellite offices and communicate by phone and computer? The answers to these questions will vary from one company to the next, but the upside and downside can always be quantified.
Hard-to-quantify value attributes can help you reconcile shareholder and stakeholder objectives. A decision that might look good from a shareholder perspective, one based only on analyzing tangible attributes — for example, a decision to shutter a money-losing plant — might look very different from a stakeholder perspective when intangible attributes are included. If the plant is part of a regional system that supports a particular group of customers, closing it will disproportionately affect sales to those customers in other locations. If this is considered a business with growth potential, the right decision for both shareholders and stakeholders may be to keep the plant.
Consider your growth and optimization value drivers in terms of the ideal operator of the business. The optimal management team in principle is the group best positioned to build and exploit capabilities and assets to maximize cash flow. Are you the best possible operator for all your products and services? Or would you unlock more value for your shareholders if you divested some of your offerings to another enterprise with more appropriate capabilities? But even in the absence of a potential transaction, you should still assess the hypothetical intrinsic value of your businesses if they were operated by someone else.
This can help you establish strategies that maximize value. If one of your businesses does not fit well with your capabilities system, but has high value creation opportunities, a sale to a more optimal operator that is willing to pay for those opportunities would be a value-maximizing decision.
When your company establishes a credible long-term strategy — including a way to play in the market and the capabilities to deliver — it sets up a high level of certainty. This is a tremendous source of strength, but it also triggers the paradox of market equilibrium. You thus have to embrace a relatively high level of risk and uncertainty if you want to overcome this paradox and generate shareholder value.
You can be certain and stable in your capabilities, but you have to put those capabilities to work in uncertain ways.
To be sure, you can take another path. Instead of creating shareholder value, you can adopt a more defensive strategy, making decisions that preserve the value you have already created. Sometimes, this is the right course to take. A company with massive amounts of cash might be tempted to make risky technological bets. An investor might skeptically look at this decision, and prefer getting the capital back instead.
Activist investors usually assume there is more potential value in making the decisions on their own. A company that accepts this logic would be more inclined to offer buybacks and dividends, and less inclined to pursue growth. But that company is not likely to be as successful, in the long run, as a company that can consistently create strategic surprise and outpace the market. In the end, it comes down to the acumen of your top leadership.
If you have a great management team, immersed in the dynamics of the business, chances are you can do this far more successfully than external investors — as long as you have the right analytical approach. Indeed, if you have that capability, we believe you have a fiduciary responsibility to exercise it on behalf of your shareholders. Your job is to increase the long-term intrinsic value of your company. In the end, this value cannot be properly captured in a single, static number.
Too many company strategies are based on qualitative or quantitative analysis alone.
Python @Property Explained – How to Use and When? (Full Examples)
If you can combine the two in a disciplined, rigorous, and continuous assessment of value performance, it will improve the outcomes of your strategies, increase intrinsic value, and, ultimately, drive your share price higher. Reviews and mentions of publications, products, or services do not constitute endorsement or recommendation for purchase.
All rights reserved. Please see www. No reproduction is permitted in whole or part without written permission of PwC. The item has been saved. Sign Up for Newsletters. Seven steps for highly effective deal making. A crisis of legitimacy. PwC's Entertainment and Media Outlook. Ears wide open Voice-activated technology and devices are creating new media, entertainment, and marketing businesses built on the age-old power of simply listening.
Current Issue. Diversifying the high-tech talent pool Ears wide open. Illustration by Lars Leetaru. Related Stories. Capable Dealmaker. Megadeals in Consumer Packaged Goods by J. Neely , Derek Townsend , Dominic Ricketts. Based in Chicago, he works with senior corporate and business unit managers to establish the conditions needed to deliver superior performance. The business insights you need to succeed. Most Popular 1. People are more trustworthy than you think 2. How to stand out in a crowded marketplace 4.
The seven stages of strategic leadership 5. Difficult, uncomfortable, and courageous conversations. Video GMO. What if we decide to switch to database caching? What if our application is an open source project that's designed to be used by others, do we want to restrict them to using Redis? After all, there are a thousand and one other platforms that can store key-value data, isn't there?
Interfaces to the rescue! Let's use interfaces to future-proof this code, or to allow others to use their own cache mechanisms. First, we're going to need to write the interface. Often, I'll begin by writing the interface first, if I know what the implementations are going to need to do. We know that caches need to read and write data, and we know that they use keys to identify the cached content.
- Finland - 4 seasons, 4 reasons.
- Advances in Multi-Band Microstrip Filters!
- Introduction to Data Base Systems.
- A share capital reduction explained.
- Subscribe to Our Blog.
- Corporate finance - Wikipedia?
- Waterfall Project Management?
Right then, let's get writing. So we've got our two methods for reading and writing, with the correct type-hinted parameters but no body. That bit is important. We never add a body to an interface. We've type-hinted void as the return type of the write method.
It's a PHP 7. Now that we've created an interface, we should type-hint that in the functions or constructors of classes that make use of the cache. Here's an example:. Here we've got a class for fetching articles. By type-hinting the Cache in the constructor, we ensure that you can only instantiate the Articles class by providing a class instance that implements the Cache interface, and the two methods that are required.
This means that we can make use of read and write reliably. What we've actually done here is 'injected' a cache implementation into the class, and set it as a private property of that class instance. This is known as 'dependency injection'. You might have heard of that term thrown around before. It's a great way of making clean, extensible software. That would mean creating another class and would be much messier than simply passing in the cache instance that we want to use.
Anyway, before we get distracted, you'll notice that the fetch method makes use of our 'injected' cache and attempts to read a list of articles from the cache. If they can't be found, it will fall back to the original data-store. I've hidden that code since it's not important here. Here we've created classes for caching to Redis and MongoDB.
They both implement the Cache interface and the required methods. I've put them in a single example, but really, they'd be in different files and potentially different namespaces. You can read more about namespaces in another article on my blog. Now that we have our two cache implementations, it's time to use our imagination a bit. Let's imagine that we have a config loader that reads configuration values from a PHP array.
This will let users re-configure our application. We've set the cache configuration option to the class name of our Redis cache. There are loads of different libraries that do configuration in many ways, or you could even use an environmental variable, but we'll use our imaginary loader for now. Let's write some code that will use the Articles class we wrote earlier to fetch a list of articles. Here we go:. The first line creates a new cache instance using the class that we set in our configuration under the 'cache' key. In the second line, we instantiate a new Articles class, injecting our cache instance into it.
Finally, on the third line, we use the fetch method to populate an article list.
Internally, our Articles instance has used our RedisCache to pull this information from Redis. We'll assume the articles have already been written to the cache! Now here's the magic. We can change this code to use MongoDB instead of Redis to store our cache data simply by changing a single line! By changing our cache configuration option to reference our MongoCache we'll receive an instance of that cache injected into the Articles class, and it will pull data from MongoDB.
That's super handy! If we wanted to add a new cache type in advance, we'd just make another class that implements the Cache interface, and swap to it in the configuration. Since we've used an interface for the cache, it won't work if you change the 'cache' configuration option to something that doesn't implement the Cache interface.
It means that those read and write methods definitely exist, and we've protected any code that's using them from trying to call an instance that doesn't have them. Hopefully, you now have an understanding of how you can use interfaces to make your code more robust, to enforce the 'shape' signature of class instances, and to make your applications more flexible. Now go out there and show the world how to use interfaces for good!
If you use the Laravel framework, you'll find that you can inject services into various classes, by type-hinting a 'contract' in the constructor. Interestingly, what's happening here is incredibly similar to the cache driver example above. Instead of instantiating the injected instance based on configuration, Laravel checks its IoC container to find a class instance bound to that interface and then injects it directly into the class for you. That's cool, right?
Furthermore, Laravel uses cache adapter pattern above for its own services. You can swap out caches, databases, and more in Laravel's configuration just by changing a few options. The only difference is that Laravel hides the class names behind some friendly strings. Being able to inject an instance that can change type into a function is called 'Polymorphism'. I know, it's a big nasty word, but it's super useful. Essentially, if a class "looks right" and implements the required methods, then it can be passed into the function, no matter which class it is.
You've also learned a design pattern! Go you! You've learned about the 'adapter pattern'. That's exactly what we've created in the last example. Our classes that implement the Cache interface are our adapters, and they are interchangeable. Sometimes this pattern is also called the Gateway pattern when it's used to create interchangeable providers that talk to external services. If you want some method signatures with bodies and some without. For example, you want some methods to be overridden, and others must be implemented, then you probably want to use an abstract class instead.
Abstract classes can be used like interfaces to enforce the shape of an implementation, but you can also add fully-functional methods to them. So why not use abstract classes all the time, you ask? Well for one, they aren't meant to replace interfaces, and it's much more simple to implement multiple interfaces within a class than to create a long awkward inheritance chain.
Here we've got a class that implements multiple interfaces. Unfortunately, PHP can only extend a single class at a time, so imagine what it would look like trying to do the above with abstract classes. Yeah, pretty messy. So if you need to store some constants somewhere, it's pointless to add them to a class that can be instantiated. Just put them on an interface instead! Well, that's all there is to this article. You're now a master of PHP interfaces. Are they your favourite feature now too? If you found this article useful, then please leave some feedback.
Also, I'm currently working really hard on a side project, it's called Rainglow and it's a collection of hundreds of syntax themes for loads of software!
Related Shareholder Value Demystified: An Explanation of Methodologies and Use
Copyright 2019 - All Right Reserved