Some thoughts on digitalization (Digitalisierung), Part 1
In recent years, digitalization (Digitalisierung) is an increasingly hot topic in Germany. Lots of traditional companies want to start their digital business and already investigated tons of money in it. Yet it’s a bumpy road with many unpredictable difficulties. There are much more failed projects than successful ones. As a former developer and current User Experience Designer who has worked in the digital industry for several years, here I want to share some thoughts on this topic and hope they could trigger more discussions.
The difference between traditional products and digital products
Let’s take the washing machine for example. The washing machine is tangible, so do each part of the machine. You can produce each part separately in different places and assemble them at the end. If one part doesn’t meet the quality standard, don’t worry, you still have other parts. It won’t take you much effort to reproduce that part, and at the same time the production of other parts won’t be blocked. You can keep refining the division of the production to optimize the process and increase the profit. It’s not that difficult to train a worker for the factory and you could accelerate the production by hiring more workers. The cost of production is much higher than the cost of communication.
On the contrary, the digital product is intangible. The production is only existing in the developers’ mind. The developers can write their parts alone, but they have to work together to deliver the end product. The cost of communication could be much higher than writing code itself, that’s why you can’t improve the productivity by simply refining the division of the production and hiring more developers, as Brooks’s law described: “Adding manpower to a late software project makes it later.” It’s better to hire less, but higher skilled developers so that the cost of communication can be significantly reduced. Unlike the washing machine, if some parts of a digital product don’t work properly, you will probably have nothing at all. Perhaps you want to hire another group of developers to continue the development, but it’s usually easier to rewrite all the code from scratch than analyze and fix the existing code.
To deliver good products, you need to think differently, especially if you have been in the traditional industries for too long. What you need is not only experts with different skills, but also a whole new mindset and a new way of working. By the way, although Google is already more than 20 years old, the digital industry is still very young. Actually we don’t know so much about software engineering as we assumed. The current best practices could be replaced by better ones in two years. We have to do experiments and discover what suits our team best. There is no silver bullet.
Path dependency and power struggle
Because of past successes, lots of companies treat digitalization merely as an addition of current production. If we could produce good dishwashers in the same way as producing washing machines, why can’t we fail in digitalization? Many product managers, developers, and other talents are hired, but they’re forced to firstly get integrated to the organization instead of having freedom to do their job. Of course they should learn about the business, however, as I mentioned above, digital products are totally different and need a new way to succeed. Don’t look everything like a nail if you have a hammer.
Due to the path dependency, the biggest challenge of digitalization is not making the product, but overcoming the power struggle. If the digital team is not allowed to make important decisions, everyone will be soon exhausted by endless reporting and waiting for approval. After investing huge amount of money in hiring the best talents, instead of blocking them and slowing them down, you have to trust them and free their hands.
In-house team vs. Agency
Although having heard a lot about the importance of digitalization, many companies are cautious of investing too much money in it. They prefer to outsource it to an agency instead of building up an in-house team so that the loss could be minimized if the project doesn’t go well. An agency can be very reliable and good at making great products, yet there are several reasons why an in-house team is necessary.
First of all, usually you don’t have a clear idea of digitalization at the very beginning. You have to do lots of brainstorming, generate bunch of crazy ideas, and make many mistakes. Those things are much easier to be done with a small in-house team. The agencies can deliver good products if you can describe the requirements specifically, but they sometimes are afraid of making mistakes because they don’t want to irritate you and then lose the contract. And you also don’t have to sign a new contract if one more workshop is needed.
Secondly, the company and the agency don’t share the same goal. The company wants to have great products that can win the market. It measures the success by the market acceptance and satisfaction of end users. The agency, however, wants to have the contract and deliver the product that satisfy the company. As long as the company pays the bill and accepts the delivery, whether the product succeed in the market or not, the agency would achieve its goal. It’s no wonder almost all agencies put a lot of effort into presentation and media coverage, even though sometimes the product is far less attractive in reality than in the PowerPoint slides. And if you don’t know much about digitalization and don’t have an in-house team, how can you evaluate the quality of the delivered product? (An idea: hire another agency.)
Thirdly, digital products, such as websites and mobile applications, are not one-time projects. They need to be maintained and improved in response to the rapidly changing market. So don’t worry that the in-house team will have nothing to do after the first stage. Actually the real work is just beginning after the launch of the product. An agency is not cheaper than an in-house team if you think about the cost of maintenance, extra features, and usability testing.
Lastly, you can keep the in-house team small if you don’t want to invest so much. You can hire several people who are good at brainstorming, designing, data analyzing, and prototyping. The output of the small team will be high fidelity prototypes and detailed documents, which you can deliver to an agency for implementation. It’s much easier to evaluate the deliverables after having figured out what you want.