Hi, my name is Anna Kastner. I'm working at software integrations at TimeTac.
TimeTac is a leading time and attendance SAAS provider, which empowers everyone to focus on their most valuable resource: time.
In this TechTalk, I will talk about why we needed integrations, what is TimeTac Connect, why we built it and how are we using it and last but not least I would like to point out some common challenges when doing integrations.
So, let's start – why we needed integrations? Let's think of a company. Nowadays companies are not trying to make all of their products they need by themselves, but they are outsourcing to different companies. For example, software companies. First of all, a company might start looking for an accounting software. Then when the company grows bigger and the number of employees increases, they will start looking for a HR software. At some point, they will need a software tool for their project management. Then another software arises. And at some point they would like keep track of the employees' working hours – and that is what TimeTac is offering.
At this point you have a number of different software solutions. They all work great, but there is one problem: they do not share data among themselves. As a result, the HR department of a company has to maintain all data all over the place, they have to ensure that the data is correct and delivered in time. This might work for smaller companies, but as you can imagine it is very hard to accomplish for bigger companies. It is not only an unbearable burden on HR, but also prone to errors and data inconsistency. So in order to overcome this problem, it is necessary to establish an exchange of data among various systems, in order to enable them to work functionally together – in other words, to integrate various systems.
So, the understanding of the complexity of activities is very important when talking about integrations. Integrating various systems requires communication with stakeholders, architectural activities, development of concepts, implementation, testing and long term support. To implement these integrations, we developed an inhouse integration framework called TimeTac Connect. This framework enables data synchronization between various systems while using already existing components. Especially for bigger companies it would be quite an overhead to manually maintain and transfer all data among various systems.
So, this creates the need to automatically transfer data from TimeTac to different systems – or the other way around. Systems like ERP systems, like SAP, CRM systems, project management tools and payroll accounting systems – the common ones are Datev and BMD. At this point I would like to point out some common integrations we're doing at TimeTac. The most important one is user provisioning. It's essentially an interface given the possibility to synchronize data from a companies HR tool to TimeTac. It's automating the process of creation, maintenance and deactivation of user accounts. Another common integration is integrating a customers ERP system like this SAP for example with TimeTac. SAP for example is used where a company is maintaining all the projects and tasks – this data will then by synchronized with TimeTac. This allows their employees to track time on certain projects. Then, on a weekly or monthly basis – or even a daily basis – this data generated in TimeTac will then be pushed to SAP or any other system for further processing, analysis or payroll accounting. Previously, we were doing all these with separated procedures and functions within our main project, but at some point we understood that it would be possible to actually combine all these integrations in one place. And we're starting to look for an integration framework to handle all these integrations and data migrations alltogether.
We spent some time on research and the result was that all the commercial frameworks were quite expensive and didn't provide us with the degree of flexibility that we were searching for. So we decided to build our own integration framework, because we already had a lot of knowledge and the required resources.
Whenever you are doing integrations, there are some industry standards that you can follow with. The most common ones are ETL and enterprise service bus. When we were developing TimeTac Connect, we decided to follow the ETL concept. ETL stands for Extract, Transform and Load.
So in a little more detail – extractors are used to fetch data from a datasource. Then transformers are the most effectively used parts when doing integrations, because they are in charge of changing the structure of the data. When migrating data from one datasource to another one, it's expected that the data will somehow be changed or the structure or the format will not be the same way as it was before. So therefore transformers are those components that have the single responsibility to change the structure of a data. The last ones are loaders. These are those components that are used to push data to a location where it's actually needed. But in order to extract, transform and load data, you have to connect somewhere first. So following the understanding of connectors, it's the first step of integrating one system with another.
TimeTac Connect is capable to connect to multiple systems, like connecting to for example Azure via using an API, connecting to a local active directory or reading data from a file system while connecting to an SFTP server, or accessing data from an external database. Connecting the different data locations is done by using different connectors.
Whenever we at TimeTac are talking about integrations, we're talking about recipes. You can think of it as kind of a puzzle. It's combining those three or four components – the extractors, loaders, transformers and connectors. So, coming back to the initial usecase where we were fetching project and task data from SAP, synchronizing it with TimeTac and then exporting the generated time tracking data to SAP. So, in that case we're talking about two recipes. The first one is about fetching data from SAP. In most cases, it is not possible to access SAP directly, but we will fetch data from an SFTP location. This data will then be synchronized with TimeTac, then the time tracking data generated in TimeTac will be exported on a daily, weekly or monthly basis back to SAP while using an SFTP loader. As you can see, with the kind of mechanism, coding can be done quite easily. It's not necessary to invent everything from scratch everytime, but it's about reusing already existing components. Defining the requirements and testing are always the parts that are challenging and time consuming.
So at some point we had to decide if we want to keep TimeTac Connect as a separate project, or if we want to have it within our main project TimeTac. We decided to keep it as a separated one. This allows us to have an agile workflow, increases flexibility while having independent release cycles and reduced complexity.
Last but not least I would like to point out some common challenges when doing integrations. Integrations involve a bunch of stakeholders. The interest of different stakeholder groups can diverge, this makes the process of gathering information and for new integrations a very important and sensitive process. Working closely together with customers and our internal teams is part of our daily work, combining and aligning their interests as well.
Working in integrations is a very diversified job, it's about continuous improvements, learning about new technologies and getting to know various systems.