Single Sign-On for Spotler Group

Introduction

We have been working with the Spotler Group for over 3 years. After starting work on the Email Editor project, the client invited us to collaborate on the creation of the Single Sign-On system.

Focus

Objective

To create an SSO system that would unify various products of the Spotler Group under a single brand.

Needs

Approach

We started with discovery workshops, during which we received both technical information about the projects that the SSO would cover and a specification of business requirements.

The results of the workshop provided a basis for conducting an extensive review of commercially available SSO solutions. We presented the advantages and disadvantages of each solution to the client’s Steering Group. After selecting a core solution, a draft of the proposed architecture was prepared. Until that time, the process had been supported by our architect, who had already created similar solutions for other clients.

We used lessons learned from previous projects to avoid potential pitfalls. The next step consisted of the implementation, first of the MVP version and then of the testing phase. The verification of the MVP version was conducted simultaneously with the onboarding of the technical support staff, who provided additional feedback on the part of the application responsible for handling user requests.

The next stage involved deploying the solution to the production environment and beginning the onboarding of customers. Throughout the entire process, our team not only improved the solution but also provided assistance to the teams responsible for specific Spotler Group products in integrating with the SSO system.

In managing the work of the development team from ArdentCode, we used the Kanban method. The entire process was supervised by a manager from Spotler.

During the project, we delivered weekly progress reports. Initially, the reports were presented to the Steering Group, and later to the CTO and Head of Product Development at Spotler.

Key changes

Results

Conclusion

SSO enables improved security and therefore helps protect the privacy and safety of Spotler Group users. Ultimately, after the migration has been completed, the system will also enable a reduction in costs related to the maintenance of authentication systems.

What are High Performing Teams?

Building teams is a demanding, long-term work. This is especially true when the teams join the structures of the clients and business partners to co-create new value with them. The motto of ArdentCode is building high performing teams. What does it mean? This is clear – the CLEAR model is what defines our DNA.

What is the CLEAR model?

It is a simple, logical, and exhaustive definition of a high performing team that we adopted in ArdentCode based on our long-term project experience. It is an acronym of the key terms that define the attributes of an organisation and a team. It was created as a result of our analysis of our long-term project experience.

C – Culture

Strong team culture that reflects the knowledge of each other’s preferences, strengths and limitations, and trust. Healthy organisational culture is also influenced by the ability to use conflicts and then to solve them in a constructive way.  A conflict may be understood as a factor that initiates change. The culture of the team may also be a catalyst of changes in the organisation. We understand it as the acceleration of changes in teams, also clients’ teams, fostered by constant sharing of knowledge and analysing actions.

L – Learning

The ability to learn new skills, but also to draw conclusions from the activities performed and to share knowledge within the team are the pillars that are necessary to build high performing teams. As a result of the fact that the company is developing constantly and creates conditions that foster learning, our clients receive added value: the guarantee that members of the teams that enter their structures will learn the necessary guidelines or information smoothly and quickly. This guarantees efficient cooperation.

E – Effectiveness

Speaking of efficiency, it is the fourth component of the CLEAR model. Effectiveness is understood as a guarantee of the quality of our work, but also the ability to adjust the work pace and organisation in a blended team. Thanks to that, the processes of creating solutions and applications for our client are more mature, and we are able to deliver on the arrangements and obligations towards our business partners.

A – Autonomy

Autonomy is one of the attributes that are the hardest to work out and, at the same time, indispensable in efficient companies. Still, it may be achieved by combining a proactive approach with the focus on solving problems, flexibility, and business awareness. Obviously, this is not easy, yet it is worth making the effort.Clients may assume that the team will be able to cope with the problems that may arise during cooperation and that it will not require micro-management. It also allows to clearly define the needs (that the team is aware of and able to communicate) and to reduce the participation of people from outside the blended team.

R – Reliable communication  

Reliable communication is the last, but very important pillar of the CLEAR model. It is defined as multi-level communication, both inside the company or the given team, and between the client’s team and ours. It is the communication that enables a clear definition of goals, roles, as well as the scopes of tasks and duties. This category also includes documenting and reporting, because informing about progress and recording the processes in the project are an important element of communication. As a result, our clients may be certain that the cooperation will be clear and transparent.

Conclusion

The attributes of high performing teams that have been described above allow us to better understand the values and competences that we wish to develop in high performing teams. Thanks to them, we know that we are able to offer our clients not only great developers, but also to have a real influence on the organisational culture in the structures of the companies with which we cooperate. Precisely this aspect has been appreciated by our business partners for years.

The CLEAR model is also presented in form of an animation. You may watch here, on our YouTube channel.

Solo or in a team? 

Surely, everyone knows when it’s better to work individually and when to be a part of a team. It’s so obvious! Or is it? We’ve prepared a summary outlining when it’s better to work alone and when it is more effective to engage a team. For those who prefer a quick glance, we’ve got a concise graphic. And for the others, we encourage you to read on. 

I’ll handle it myself

Tasks that require deep concentration, coherence, and quick decision-making are better done independently. This way, we can avoid the burden of having to discuss or wait for decisions. Acting solo also works well when there’s a high level of responsibility for results, independence, and control over processes. Tasks that require specialized skills form a separate category for solo work. 

Let’s do it together

Teamwork is more effective for projects or tasks that demand a variety of skills. This is often due to the complexity or scale of the project. Combining the knowledge of multiple experts helps find more comprehensive and innovative solutions. Similarly, tasks that require creativity and the exchange of ideas are better suited for a team. Complex, multidimensional issues are also better tackled in a group than alone, and tasks that require a high level of engagement—when there’s a lot to do in a limited time—benefit from building a team, which significantly increases the chances of success. 

When else should we build a team? 

In our organization, we place particular emphasis on learning competencies and sharing expert knowledge within the company. This is a natural and engaging way to develop skills and strengthen team bonds, leading to a high level of mutual trust among employees. Another important value at ArdentCode is effectiveness, which we understand as the combination of high quality, the right pace of action, and proper organization of work. 

Summary

Modern organizations face the challenge of balancing the choice between individual work and teamwork. The decision which path to choose depends on the problem at hand. Another challenge for companies is finding the golden mean between the need for independence and group work, especially when many team members are seasoned experts with high qualifications. However, those considerations will be left for another occasion.

Case study of Email Editor – great cooperation

Introduction

Spotler Group is a European provider of digital marketing and communication tools, which helps companies engage customers and enhance their brand experience. The Spotler Group has grown in part by acquiring companies that offer solutions in the MarTech space. As the group expanded, the need for a modern, scalable email editor that could be integrated with multiple products became apparent, and in 2022, the decision was made to begin work on such an editor. ArdentCode, with its experience in similar projects, was chosen to partner with Spotler to execute the task.

Product

The concept of the Email Editor had been analyzed and developed within the Spotler Group for some time. However, due to limited internal resources, it was necessary to open up to an external partner. ArdentCode, with its experience, was the natural choice for the project. As work progressed, the scope changed, and we expanded the team, adapting to the client’s evolving expectations.

Focus: 

Objective:  

Implement an application providing an email editor for non-technical users that can also be embedded in existing applications created in various technologies.

Needs: 

  1. Replace previous and costly-to-maintain editors
  2. Introduce a consistent design across products of one group, facilitating the use of the editor in different applications
  3. Eliminate the differences between them
  4. Use and develop Spotler Group’s Domain-specific language for email needs

Approach: 

  1. Take over the internally built PoC (Proof of Concept).

Starting work involved analyzing the implementation of the first version of the editor as a Proof of Concept. We verified the design from both the technical and functional points of view. Based on this evaluation, we provided guidance for the further direction of work.

2. Create the MVP (Minimal Valuable Project). 

After the analysis, we formed a project team that joined the existing team, and as a blended team, we completed the first version of the editor in accordance with the specification.

3. Deployment. 

After testing, we launched the editor’s production version. Proper implementation in one application was the key, to be followed by others. 

Results: 

  1. Reduced maintenance costs. By replacing multiple editors with one common solution, Spotler Group was able to significantly reduce future development costs and streamline the development of a single editor. 
  2. Introduction of a single email editing tool. This change contributed to delivering a vast amount of functionality to several products simultaneously, implementing AI assistants, creating a unified brand management system, and integrating with external service providers.
  3. Verification of the internal idea. The editor uses a descriptive markup language (SPML) created specifically for this project. The project’s success confirmed that creating SPML was a good direction, as the application is not dependent on external solutions.

Conclusion: 

The implementation of the Email Editor allowed for the optimization of various applications offered by Spotler Group, significantly reducing the costs of maintaining the teams responsible for the product operation and creating a wide range of new possibilities. The universal application of the new solution also contributed to simplifying deployment procedures for end clients, who, having access to diversified solutions from Spotler Group, could quickly and easily adapt to new functionalities. 

DevOps tooling

How to simplify the introduction of the CD across business units? Read the case study about the DevOps tooling. Check needs, approach and results.

Introduction:   

ArdentCode partnered with Wolters Kluwer to simplify the introduction of the Continuous Deployment/Delivery approach across business units in the organization.​ 

Focus: 

Objective:  

Create a SaaS solution that supports Continuous Deployment of microservice-based applications available for all business units in the organization.​ 

Needs: 

  1. Support AWS and Azure clouds
  2. Support zero downtime release roll out/back (blue/green, canary deployment)
  3. Allow developers to deploy and test their code in the feature branch environment
  4. Provide UI and CLI interfaces
  5. Let the application development team use the infrastructure with not need of deep knowledgeknowledge of AWS/Azure
  6. Provide logging, monitoring, and alerting to support and troubleshoot the applications in production
  7. Provide a solution to run automated tests (UI, API) to detect bugs before release promotion and to monitor the application availability

Approach: 

  1. Build extendable architecture that allows to deploy to different Clouds
  2. Follow the principle of “infrastructure as a code” to track any changes done to the application and roll them back if needed
  3. Allow to define the single endpoint version using simple schema
  4. Build API layer to be used by UI and CLI interfaces
  5. Build a central mechanism to collect metrics and set up of alerts
  6. Follow best practices and organization standards (HA, security, naming)
  7. Build a service allowing the execution of automated tests at large scale
  8. Build a service executing the automated tests on the new release deployments
  9. Allow to set up synthetic tests monitoring with alerting

Results: 

  1. Onboarded hundreds of products (VitalLaw is one of them, read previous case study here)
  2. Products confirmed that the solution allowed them to:
  1. The support teams are using the synthetic monitoring solution to monitor the availability and performance of the application
  2. The automated tests execution service allows the execution of a huge number of regression tests in minutes instead of hours.

Conclusion:

The partnership between ArdentCode and Wolters Kluwer resulted in a powerful SaaS solution that redefines deployment practices. By enabling seamless Continuous Deployment, the solution empowers teams to deliver high-quality applications faster, with improved reliability and reduced costs. Its cloud-agnostic capabilities, robust testing mechanisms, and comprehensive monitoring set a new standard for efficiency and collaboration across business units. This achievement underscores the transformative potential of well-designed, scalable infrastructure.

Case Study

Improvement of Legal Research: 

ArdentCode’s DevOps Transformation for Wolters Kluwer’s VitalLaw

Introduction:   

ArdentCode partnered with Wolters Kluwer to upgrade their flagship legal research platform – VitalLaw (former Cheetah™). It was a challenge to introduce DevOps practices to a large-scale, multi-year project. ArdentCode aimed to increase frequency of production deployments and lower the time needed for change implementation. 

Focus: 

Objective:  

Enhance the development process for VitalLaw, while maintaining the highest standards of security. 

Needs: 

  1. Increase frequency of production deployments and lower the time needed for changes implementation 
  2. Introduce DevOps practices to VitalLaw – large scale, multi-year project 

Approach: 

  1. Continuous Integration: Through DevOps practices, ArdentCode team was able to change production deployment from two months to bi-weekly production releases. This change also gave a possibility for daily deployments. 
  2. International blended team creation: ArdentCode used DevOps tooling and practices across teams in the USA, Europe, and India, facilitating collaboration and efficiency. 
  3. Process improvement: The adoption of the Scaled Agile Framework (SAFe) enabled smoother development processes and enhanced agility. It was conducted in accordance with the client’s internal processes. Needed improvements were also enhanced.
  4. Testing and verification: There was a need to test the application in a different way – it was a basic need of the project.  The goal was to reduce testing time. We changed the scope of testing to automatically test only the areas touched in the code.  As a result, instead of testing in a few working days, we were able to deliver some changes in a few hours, with testing taking much less time once the changes were made. The number of e2e tests was reduced to each release, integrating with external applications to support testing.  

Key changes

Results: 

  1. Accelerated deployment: Deployment frequency increased from 2 months to 2 weeks, with the ability to deploy changes on a daily basis. 
  2. Changes in shortened time: Teams were able to deliver required changes more quickly. 
  3. Agility: Every code change (Pull Request, Merge Request) is a potential release candidate. 
  4. Rollback on demand: Rollback to previous version on demand  
  5. Improved stability: Less number of regression bugs. Higher confidence in the release quality. 
  6. Comprehensive tooling: DevOps tooling and practices were successfully integrated across all collaborating teams, enhancing collaboration and efficiency. 
  7. Security and elevated performance: ArdentCode ensured rigorous security and performance verification, maintaining the highest standards for VitalLaw. 

Conclusion: The adoption of comprehensive DevOps practices by ArdentCode resulted in a significant change, thanks to the reduction of deployment timelines from months to weeks, and the introduction of daily deployment capabilities. The operational shift not only accelerated change delivery but also fostered a culture of agility, where every code change became a potential release candidate, enhancing adaptability and responsiveness within the organization. Moreover, the emphasis on rollback capabilities and the observed decrease in regression bugs underscored a commitment to stability and quality assurance, reflecting a pragmatic approach to software development that prioritizes efficiency and reliability.  

Pillars and vision 

This article is the first of a three-part series on building high-performance software development teams.

Building strong teams 

Crafting a high-performance software development team isn’t just about assembling individuals; it’s about building units driven by shared goals and mutual respect. This article embarks on a journey to unveil the intricacies of team building in the tech domain.

Establishing the pillars:

A strong team starts with hiring the right people. Look for individuals who not only have technical skills but also embody our company’s values, such as adaptability, collaboration, and a passion for learning. These qualities, along with their expertise, lay the foundation for success. At ArdentCode we’re not afraid of spending as much time and effort as it takes to find people who will go beyond just their ability to code, having the right attitude and flexibility to fit the teams and help us pull them up to a new level.

Nurturing growth:

Thanks to training programs and mentorship, team members are motivated to expand their skill sets and stay abreast of industry trends. That’s why we organize workshops, training, courses within ArdentAcademy and offer employees individual budgets for learning outside the company.

Aligning vision:

Defining clear objectives and communication of the company’s mission and values is important to connect companies’ goals and team members’ satisfaction. When every person understands the role in the larger narrative, collaboration flourishes and collective efforts propel the organization towards its goals.

Fostering collaboration:

Open communication, trust and a feedback culture provide an opportunity to create a mature and effective work environment. Encouraging brainstorming, cross-functional collaboration and knowledge sharing is the key to harnessing the collective intelligence of the team. At ArdentCode, we have weekly meetings to share knowledge and information from the industry, as well as biweekly sharing of a list of links to interesting publications.

In conclusion, at ArdentCode, we see building a high-performance software development team as crafting a harmonious symphony. It requires strategic recruitment, ongoing growth, a united vision and a culture of collaboration. By nurturing these elements within our organization, we enable our teams to tackle challenges, foster innovation and achieve impressive outcomes. 

In our upcoming article, we’ll explore ways to inspire creativity and innovation within the team, sparking the ideas that lead to great solutions.

High-performance blended teams – how to start 

Hundreds of articles have already been written about what are the motivations for opening up to outsourcing. The strongest shaping arguments are cost reduction, access to highly qualified specialists and flexibility in the broadest sense. However, it is worth leaning into the process of forming blended teams itself. 


Blended, which means? 

Let’s define what blended teams are. For “blended” does not simply mean a mixture of components, but a completely new combination. The term, taken from everyday language, captures well the idea of creating teams from at least two organizations. Thanks to the intermingling of experience, knowledge and skills, the competence of such a team becomes much higher. By interacting with each other, the resulting cooperation results in an unavailable “alone” result of solutions and increased competence[1].  

Maturation

It is also not insignificant that blended teams, by interpenetrating each other, mature and create a completely new quality. Maturity in the context of technology teams means very high competence, calmness, and experience. And the realization that every difficulty can be solved over time. If only, to write completely new software or applications that respond to the needs specified in the project.

Foundations

The selection of people, forming mixed teams, is the foundation for creating high-performance teams. Involvement in recruitment, proper preparation for it and identification of needs, increases the chances of later success in building a new team. Both competence and certain personality traits are important. This influences the maintenance of values relevant to the entire organization. Collaboration between teams where the foundation has been taken care of allows the development process to run smoothly. 

Communication

For performance appraisal to be implemented, it is necessary to develop a project foundation and process. At this stage, the permeation of experiences can determine the success of cooperation. By opening to ideas, comments, and suggestions from an external, experienced partner, the client can receive solutions that surpass initial assumptions. At the same time, the phase of findings, briefs and debriefs is – albeit somewhat time-consuming – needed to finalize what situation will be evaluated positively. A service provider with international, corporate experience – even on the scale of a few or a dozen people in a project – can shed light from a completely different perspective and influence the outcome. All this to support the client’s success and enrich its know-how.

Performance – communication or skills? 

The effectiveness of the cooperation can be assessed already during the collaboration, which is facilitated by feedback sessions and status meetings. A focus on partnership and mutual respect lay the groundwork for creating a situation in which the team joining the client feels a sense of responsibility for achieving the goals. This is a desirable situation, as productivity and commitment naturally increase when team members feel part of the overall project[2].  

Summary

Recognizing that the groundwork for forming high-performance blended teams begins long before establishing a business relationship is essential to developing the concept. There is a huge difference, between body leasing, typically in simple service outsourcing, and developing team competencies internally. This can be achieved by inviting qualified, experienced, and committed professionals to join the team. This is the business model in which ArdentCode operates, basing cooperation with clients on the flow of knowledge and skills, taking care to secure know-how inside the clients’ structures.


[1] https://www.mckinsey.com/capabilities/people-and-organizational-performance/our-insights/beyond-hiring-how-companies-are-reskilling-to-address-talent-gaps [2023-11-18] 

[2] https://your.yale.edu/we-know-teamwork-important-how-important [2023-11-27]