Today, many organizations focus their energy and resources on changing and updating outward facing systems and processes, such as eCommerce, search engine optimization, and merchandizing. This is completely justified, since the speed of change in the marketplace is faster than ever. However, at the same time, the lack of high-quality product content being directed to these outward-facing systems is inhibiting the creation of a great customer experience. The root cause is mostly found on the inside of the organization, evident in a dysfunctional innovation and product marketing process that cannot support the outward facing initiatives. As Jack Welch so aptly noted, “If the rate of change on the outside exceeds the rate of change on the inside, the end is near.”
Challenges of sharing information
A cross-functional team is a group of people with different functional expertise working toward a common goal. Cross-functional teams are significantly different from teams that are aligned on one functional level and are made up of representatives from a wide array of specialties, each with a unique expertise and opinions. Although this diversity is one of the key strengths of cross-functional teams, it can contribute to challenges in management and efficiency.
According to the Harvard Business Review, cross-functional teams often fail because the organization lacks a systemic approach to information sharing. Different departments often rely on different technologies for collaboration and information management. For example, engineers work in a product lifecycle management (PLM) system to manage product development and engineering drawings. Marketers may deploy a digital asset management (DAM) or a content management system (CMS) to manage digital assets, marketing content, and internal processes. All too often these people and systems are completely disconnected, leaving Microsoft Excel and email to act as the glue. I think that another reason cross-functional teams may fail is because these disconnected information silos cement the organizational silos.
Harnessing tribal knowledge
Tribal knowledge is commonly defined as a set of unwritten rules or information known by a group of individuals within an organization, but not common to others. In most cases this knowledge is still needed by the whole organization in order to produce a quality product or service in an efficient way. The root cause of tribal knowledge is oftentimes found in information silos that result in a compartmentalized organization. However, there is good news. By deploying the appropriate tools and processes, tribal knowledge can be converted into company property in such a way that it can be re-used and re-purposed everywhere.
The need for a single information platform
Having disconnected information silos makes working together in cross-functional teams more difficult. Therefore, to effectively collaborate across departments, an omni-channel organization needs to leverage a single platform for the whole organization—one that supports the cross-functional team process, leverages diversity, and enables teamwork. Successfully implementing such a platform consolidates all the knowledge and capabilities of all the roles in all teams. Most importantly it will support the customer-facing initiatives with high-quality product information, speeding time to market, and reducing cost.
My advice to companies that are serious about creating a great customer and product experience is that they should consider investing in a product marketing hub with support for cross-functional teams—preferably before investing in the customer-facing tools that would otherwise be hampered by the lack of high-quality product content.
Johan Boström, Co-founder and Evangelist, inRiver
I want to start with saying that this post contains a lot of technical and architectural thoughts around software design. This is a subject that I enjoy very much and therefore read a lot about. In this post I am going to give you an insight to how Microservices has help us as an organization but also how it enabled us to be quick and agile.
One important aspect of an organization is commitment and the consequences if you do not have the right commitment. If the implication of an action is hidden too many layers away from the one performing it, it will never create the right sense of urgency and you will never become an efficient organization.
A focus and a goal for any R&D team is to be productive and agile as we all know anything static in this world will go extinct. For us working with information logistics within the realms of marketing, we know everything changes very rapidly and our design needs to be able to do the same without us breaking anything. Our architecture stem from DDD (Domain Driven Design, Eric Evans), which means that we design everything around the business domain, instead of around functions like a database, persistence or other application layers. This for us is a better model for evolving and adding new features. With this mindset of changing often, quick and also moving to a new State-less mode (Cloud). We needed to break our architecture into more decoupled parts, to have less dependencies and not creating a big monolithic architecture, so for us it felt very natural to work with a Microservice model.
If you do not do this, you risk ending up with a big black box (monolith) where all new ideas get stopped because with every change needed/made everything has to be rebuilt from the ground. Even worse is if you build a black box all new ideas must be built by you and it is impossible to scale out and get help from a creative community with new features. This model will ultimately break under its own weight because it cannot be maintained over time (more on this topic….). For us thinking and working with a Microservice Architecture we can be more pragmatic and flexible in choosing where and how we want to add a new feature, because our community with thier great skill-set can solve some of these new feature requests. As our partners can replace a service, with their own built service and alter or extend the behavior of an operation. It will even be possible to implement service end-points where they have the power to build their own new UI on top of our services. For us this is a fantastic thing that the great inRiver community can be more involved in creating business value for our customers. A great example of this is our customer H&M that together with our partner Accenture will be using the Media Driver concept. They are storing all their media assets in a separate DAM (Adobe). For inRiver the assets will look as if they are still stored in inRiver and other services will continue to operate as if they were, this by just changing how our Asset Service is operating.
Two of my great inspirations when it comes to software designs, Martin Fowler from ThoughtWorks, in the same city Chicago as our North American HQ and Jimmy Nilsson from Factor 10, have both written inspirational and insightful pieces on this.
Martin Fowler´s Microservices - great post about what a Microservice Architecture is.
Jimmy Nilsson´s Chunk Cloud Computing - was written back in 2009 but to the point of what we are doing without calling it Microservices.
By adopting this style, our teams also became cross-functional, as everything is focused around a business domain and not a server operation or function. They now have full responsibility from the Database all the way up to the UI. This transfers knowledge in more natural way but also shares responsibility. The teams are responsible for what is actually executed all the way when a user is working with a released feature. We have even taken this one step further with inspiration from the above mentioned articles, with addition from one of my true house gods, Nassim Nicholas Taleb. If you are not careful when building a team, and not making sure everybody has "skin in the game", you will easily create an Agency problem, transferring risks. This they knew better in ancient times than we do now. The Code of Hammurabi is a well-preserved Babylonian law code of ancient Mesopotamia, dating back to about 1754 BC. It is one of the oldest deciphered writings of significant length in the world. One of the laws in this code states that if a house collapses and kills that first born of the family living in the house the first born of the builder must also be killed.
Now we have not taken it to this extremes, we settled with having the support within the R&D team, making sure that you are responsible and feel a sense of urgency all the way. If you are awakened 3:00 AM in the morning due to something you have written, you are more likely to not make the same mistake again because it has a direct impact on you and your sleep (well-being ;)).
One thing I would like to emphasize here at the end, if you are still reading, is that it is all the small decisions and actions made every day by individuals operating within a team that bring this to life and dictates what it is and what it will become – so from words to actions!
So a big thank you to a fantastic inRiver team and a great community!
-- Jimmy Ekbäck, CTO --