Our consulting company will never be big. The target number of employees is 40, if it gets that big. There are a number of reasons why this boutique firm will remain boutique, but that’s for another discussion. We need to operate in the world of giants, streamlining our processes so that we make the most use of our resources while providing consistency for our business partners.
One of our founding principles is that we will only hire people that will contribute to our primary, revenue-generating services. All of the other functions are outsourced to small, focused businesses or SaaS applications. Thousands of companies, big and small, are doing the same thing. Many organizations to which we provide services are trending in the same direction. Whether implementing integration services externally or internally, we are trying to accomplish the same thing, finding the best applications to provide business functions and making the most of what we have. A consequence of this decision is that we need to interface with a number of different companies and applications that we do not control. Is there a better consequence for an integration consulting firm than that?
I started, several years ago, with manual interfaces. Our processes were new, so I was trying to shoestring everything together while still providing consulting services to our customers. As time passed, the manual processes solidified which allowed me to think about creating some automation. Recently, I hired a Manager of Strategic Partnerships (my wife, Beth) to primarily manage our MuleSoft partnership. However, she will also be identifying other important alliances, mainly suppliers and other customers that provide MuleSoft services to their customers. Though an important task is to make sure that the data for our projects and customers is properly maintained in our systems, she has more important things to do. Over the last few weeks, it has become glaringly apparent that the automated work flows were broken. I revamped the processes and released a new integration that should allow her to spend less time on data and more time dealing with people.
The process above is implemented in Mule 4, appropriately. It makes use of mostly HTTP interfaces, providing Experience, Process, and System API’s. The devil is in the details, though.
Our accounting functionality is provided by My Accounting Team, out of Oregon. One of their requirements is that they maintain our data and administer Sage Intacct by adding new assets that we provide in the form of Excel spreadsheets. Though this is difficult for me, because I usually want to interface directly with systems, they provide terrific functionality and add a layer of checks and validation. These spreadsheets are automatically created by this process and emailed directly to Accounting.
Also in use, is a set of topics and subscribing queues. Utilizing queues as subscribers, instead of direct subscribers, provides a more reliable persistence layer that allows us to handle exceptions more effectively. They could also provide load-balancing functionality, if our load was heavier, though I cannot imagine that it ever would be heavy enough to necessitate it.
There are still a few things to automate, including on-boarding and contract management. We will be implementing those as we grow in the next year.