Undoubtedly, the number of IT services and workflows that are becoming interlinked across platform boundaries, organizational boundaries, and devices, continues to grow. Some examples of these IT services and workflows include business-to-business workflows, IoT, cloud services, artificial intelligence, and other emerging trends. In these contexts, Enterprise Architects and Quality engineers enhance the necessary end-to-end attention to quality attributes. Integrating methods and tools from Enterprise Architecture (EA), IT service management (ITSM), systems/software engineering, information security management, etc. is, therefore, imperative.
Where in yesteryears independent actors acquired domain knowledge and acted on it in silos, today, there is a constant push to achieve IT/business alignment (ITBA). This collaborative process means that there needs to be a holistic consideration for:
- Management issues (e.g., Business and IT strategy, risk management, etc.),
- Design considerations (requirements analysis, system/software development, etc.)
- Operative considerations (configuration, monitoring, etc.)
EA has gained traction as the disciplined, holistic and unified approach for managing the complexities in business and IT systems at a strategic level. Essentially, EA helps provide decision support for IT/business alignment (ITBA) to enterprise stakeholders (clients, employees, business manager, IT manager, Information manager, HR manager, project manager/project worker, logistics manager, financial manager, security manager, Chief Architects, CIO, CTO, and directors)
EA is also well-known for its model-based methodology, that covers a broad range of phenomena as highlighted above. The purpose of the EA models is to help the variety of stakeholders to:
- Document and, therefore, understand a complex enterprise
- Analyze the properties of current and future scenarios
- Plan and design future scenarios and the path to that future
- Communicate the current/future state of affairs to other stakeholders in the organization
- Have a powerful decision-support tool.
The use of EA standards is significant in enabling organizations to effectively manage business and IT resources, (networks, hardware, software, data, and people) and provide a comprehensive overview of the inter-relationships within an enterprise.
A good EA, therefore, considers the latest innovations in organizational structure, business processes, information systems and technologies with the definite purpose of enhancing efficiency, reliability, and timeliness. It includes the use of:
- A standard language (which may consist of a duality of EA artifacts, both implicit and explicit)
- Best practices for business processes (including an analysis of where processes can be eliminated or integrated)
Ultimately, EA should enable businesses to structure IT projects and policies to realize desired business outcomes that will allow the entire organization to manage disruptions and keep up with trends. Also, adopting EA should go beyond having a blueprint that describes:
- What it is for you,
- What it can do for you, and
- How it can do it
To make EA work, you need to apply the blueprint/concept to a structure. Basically, besides the blueprint, you also need to start a process, educate people and assign roles, create products, get the products approved, and then use the products.
As such, EA mainly seeks to manage and maximize IT system qualities, business qualities and IT governance qualities.
Some of the well-recognized IT-system quality attributes that should be managed throughout the lifecycle of the software/system include:
Performance, or efficiency. How much work a system can perform and how fast in terms of scalability and responsiveness.
Interoperability or the ability of multiple components or systems to exchange information and to use that information.
Availability. How often a system is ready to deliver its services to its users.
Security. How well a system can preserve integrity, availability, and confidentiality, of its internal information.
Usability. How simple/convenient it is for a user to interact with and perform tasks in the system. It includes operability, learnability, understandability, and attractiveness of the IT-system.
Accuracy. The degree to which the IT-system produces precise and accurate data. (Determined by comparing output values with real/expected values).
Maintainability/modifiability. The ease with which an IT-system can be changed/adapted/modified to a changed environment, during its lifecycle. Its sub-qualities include integrability, portability, reusability, flexibility, and extensibility.
Suitability of an IT-system is the degree to which the functionality of the system supports the system’s intended work tasks. Suitability is contingent on the systems functional characteristics like adequacy, implementation completeness, implementation coverage, and specification stability.
Useful business qualities to consider include:
Flexibility or the ability of a business (processes and organizational units) to adapt to changes in market conditions/requirements, e.g., demand, economic factors, politics
Efficiency or the ability to reduce time to accomplish business processes including manufacturing time, lead time, cycle time, work time, automation of work, etc.
Effectiveness is the ability of the business to produce what the market demands while spending minimal time on administration and paperwork
Integration and coordination or the ability of organizational units in a company to synergize, e.g., coordination of production, sales, and distribution units
Decision support or the capacity of a company to reinforce/enhance its decision-making process by making well-informed decisions, low uncertainty and high-reliability decisions, organization-wide accepted decisions, etc.
Control and follow up encompasses the ability of the business to monitor, document, evaluate, modify and re-use decisions/implementations
Organizational culture or the behaviors and value that contribute to the psychological and social well-being of the business including motivation, job satisfaction, stress, etc.
IT Governance Qualities
Some widely used IT governance qualities include:
Plan and organize. Addresses strategy and tactics, and is concerned with identifying how IT can contribute to the success of business objectives.
Acquire and implement. Addresses the realization of the IT strategy; identifying, developing/acquiring IT solutions; and implementing and integrating IT strategy and solutions into business processes.
Deliver and support. Addresses delivery of required services including service delivery; service support for users; management of data and operational facilities; and management of security and continuity
Monitor and evaluate. Addresses governance, monitoring of internal control, performance management, and regulatory compliance to keep/improve quality and compliance with control requirements.
What is Salesforce designed to do and how does it fit in EA?
Salesforce can manage and maximize several of the IT system qualities, business qualities and IT governance qualities that are necessary to implement enterprise architecture. At least, some Salesforce exponents certainly believe this to be possible. I concur with them, but only up to a point. Let me explain.
If you twist my hand and ask for a simple answer to the question as to whether Salesforce can be used as a foundation for enterprise architecture. I would say, yes. But…
The reality is not that plain and simple. Essentially, it depends on what your needs are.
Salesforce was designed and built to be a CRM before anything else and is the preferred CRM solution for many enterprises. Moreover, due to several Salesforce-related initiatives, (including Salesforce AppExchange and the recently purchased MuleSoft that is used to provide integration solutions), some enthusiasts consider building applications on the Lightning/Force.com platform as a foundation for their enterprise architecture (EA).
Salesforce proponents believe that it can be used as a foundation for building EA because it has most of the essential pieces in place to be rapidly deployed as a foundation for EA. These advocates suggest that Salesforce can be adapted to the following core tenets of a successful EA methodology.
- Business-value led. It provides a single platform that brings together several IT and business components (sales, marketing, customer service, automation, and analytics), all directed at enhancing business goals and objectives.
- Pragmatic. It provides an executable roadmap that can be implemented in a relatively short time (months instead of years).
- Minimum viable product (MVP). It offers an execution road map that is based on an understanding of the current state and an agreement of the future state. It, therefore, avoids analysis paralysis and the creation of complex documents that don’t add any value to the business.
- Governance. It also solves the governance issue by allowing IT and business to speak a common language. The net effect is efficient dialogue and faster decision-making.
Despite these advantages of using Salesforce as the foundation for enterprise architecture, it is difficult to escape the fact that Salesforce also has its drawbacks as an EA platform. These drawbacks have to be considered when deciding whether Salesforce is suitable for your EA needs.
Drawbacks of using Salesforce as an EA foundation
Salesforce wasn’t built to be for EA
Salesforce was designed and built to be a CRM for sales management and not for EA. This means that integrating it into EA workflows can be challenging.
With Salesforce, you have limited deployment options, data center options, and cloud options. This means that if a technology that perfectly suits your needs appears on the market, all you can do is hope to see if Salesforce offers the technology as well. Also, if you are in a country that isn’t near a Salesforce data center, then you will very likely have performance issues including system downtime and service interruptions.
Unnecessary functionality and excessive cost
It’s quite easy to purchase unnecessary/redundant Salesforce functionality that you might not even need. Worse yet, since Salesforce is sold on a subscription basis, you will have recurrent costs that accumulate with time and that are difficult to justify. Furthermore, if you need additional integration through web service APIs, you will still need to pay more.
Requires extra apps and developer customization
Although Salesforce is quite robust and powerful, if you need custom interfaces or additional functionality, then you can expect to use the services of a Salesforce developer to do the job for you. Over time, you will find that a complete or perfect solution will not only cost you a lot more in the long run, but it will lock you into a solution that becomes clunky as well. Also, once a company develops its own custom app on the Salesforce platform, they have to stick with Salesforce to protect their IT investment because the custom app is usually untransferable.
Data privacy and government compliance requirements may limit what you can do with Salesforce. For example, Salesforce only has about nine data centers and yet some countries do not allow companies to have customer data hosted in foreign countries.
Other weaknesses of Salesforce as an application platform
Lightning Platform (formerly Force.com) has the following drawbacks:
- Although its configuration tools are simple to use, they don’t necessarily provide the flexibility desired to solve business needs
- It offers minimal data visibility between application objects
- Although out of the box reporting may initially be an advantage, over time, it is quite limited in its growth capabilities without adding too much complexity
- It can’t provide workflows based on non-UI events
- It doesn’t offer enhanced security features, e.g. there are several security issues with Salesforce web services
Salesforce AppExchange has the following drawbacks:
- Requires multiple vendors
- Although each vendor solution may work well on its own in the Lightning Platform, it may not do so working with other solutions from different vendors
- Solutions in the AppExchange may require additional implementation services or further customization
Is MuleSoft viable for a long-term EA strategy?
One of the ways that Salesforce has tried to address deficiencies in its platform, with regards to enterprise architecture, is by absorbing MuleSoft. Through MuleSoft, Salesforce has gained an integration platform (Mule enterprise server bus and CloudHub), for connecting Accelerated Mobile Pages (AMP), SaaS, and enterprise applications.
Through the Mule enterprise server bus (ESB), IT can integrate/translate data into a format required by consuming applications and to manage the IT protocol as well. Also, it allows for IT orchestration. Through the Mule ESB, Salesforce can promote reusability of IT capabilities and its governance.
The problem is that, in a continually disruptive and changing environment, (where business users and customers frequently ask for changes), organizing source code around IT capabilities rather than business capabilities is not providing the long-term value that ESBs seek to address. This is why the ESB concept is quickly losing ground to the microservices concept or architecture style.
Even if you choose to use the Mule ESB, you may still come across some challenges related to ESB implementation including:
- Difficulty in finding developers with excellent ESB skills since a wide variety of skills and experience is required.
- Misuse of ESBs can lead to exceedingly complex architectures that are difficult to remedy
Suggestions for implementing Enterprise Architecture
Ultimately, it is difficult to suggest one thing in particular that will cover the needs of all enterprises. Enterprise needs and resources are different which means that what may be suitable for one organization may not be ideal for another.
Assessing your current state of affairs and considering future goals and then creating a well-thought-out EA methodology that suits your business is the best way forward to building a solid foundation.
Doing so will allow you to directly address and manage IT-system quality, business quality, and IT-governance quality necessary to build a successful EA. In some cases, Salesforce will be a suitable solution for building your EA. However, creating your own EA from the ground up will be the best choice in most cases due to the following advantages.
- Build systems that are based on your needs/resources/strategy. This means that you should only build what you need and get everything right straight away. It’s a good idea to have an EA Product Calendar and EA Product Roadmap, including both AS-IS (current) and TO-BE (future) architectures.
- Future-proof your needs and adopt new technologies that suit your organization.
- You can better manage integration and assets including end of life assets
- Respond to internal and external change faster
- Dynamically scale resources based on current requirements
- There is more flexibility to innovate
- Gain a competitive edge through custom built systems and applications
- Dynamically prioritize your business-IT needs and manage costs as your company grows
- Efficiently manage complexity (increase or decrease complexity) based on value addition to the enterprise
- Have as much control, clarity, and insights that you need because you can better manage licensing, dependencies and interrelationships.
- Learn from your own mistakes, improve processes and become more efficient over time using your own tools.
- Gain more control of your organization’s customer journey; processes and services landscape; and business capabilities map. You also have more control to build on insights gained in these areas over time. The bottom line
From our twenty-years of experience in project implementation, I can attest that Salesforce is not just a robust CRM platform but is also a worthy option for basing your enterprise architecture. The robustness and convenience that it offers make it a useful alternative to consider especially if you want to deploy rapidly. Nevertheless, it is inescapable that several other solutions were purpose-built for EA.
Ideally, the best EA solution is one that has been built for EA from the ground up. Developing your own architecture or at least exploring and adopting a platform that was created with Enterprise Architecture in mind is the best choice to make in the long run.