WCAG #1 – solutions with amazing scalability

Introduction:     

As a part of blended team our team members cooperate in a Wolters Kluwer internal team. Its objective is to create tools that other Wolters Kluwer products can utilize to make the products brand compliant, follow the accessibility standards, and speed up the development. Our solutions are exceptionally scalable. By developing a single solution, we can successfully implement it across more than 100 different products, demonstrating its versatility and flexibility.

Focus:  

Objective:   

We aim to revise our principles to ensure that our components are not only visually appealing but also exhibit excellent functionality and behavior.   

Needs:  

Build DEV team awareness of the necessity of accessibility and providing information on what it involves. 

Provide the components that prioritize accessibility, usability, and meet legal standards.  

Approach:  

  1. Leveraging our knowledge to address complex challenges and avoid common pitfalls. 
  1. Analyzing how to implement WCAG requirements in client environments, ensuring compliance while sidestepping typical issues. 
  1. We have introduced automated accessibility testing into our Continuous Integration pipeline. 
  1. Proper keyboard navigation is now the must have in our components. 
  1. We started using the screen reader on a daily basis. 
  1. Strong collaboration with UX team regarding accessibility challenges. 

Key changes:  

Results:  

  1. Components strictly adhere to WCAG AA guidelines and follow the best practices outlined by the W3C, ensuring that they are as semantic as possible and offer a seamless user experience.  
  1. Hundreds of product teams can build their applications based on the blocks that meet the highest standards. 

Conclusion:  

The new strategy that we applied while creating the components helps us to provide the highest quality building blocks for our clients. These can be recommended as inspirational for other teams as a great starting point while building the user-friendly solutions yet following the guidelines of the ADA and EAA. The components are meticulously designed to meet these requirements, helping clients avoid potential legal challenges while fostering an inclusive online environment.  

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.

The role of the CTO at different stages of a company’s development and financing

An effective Chief Technology Officer (CTO) understands very well the need to evolve his or her role through the successive stages of a company’s development. These are often directly related to successive rounds of financing.

Seed Stage (Seed phase): Foundations and vision

In the seed phase, the CTO plays a key role as a builder of the company’s technology foundation. During this phase, the CTO often serves as the founder or chief technology officer, who is responsible for:

Challenge: Balancing technology development with limited financial resources.

Series A: Scaling up and formalizing

Once Series A funding is secured, the CTO’s role becomes more organized and defined. At this stage, the CTO focuses on:

Challenge: The CTO manages growth and ensures that technology supports the company’s strategic goals.

Series B: Expansion and innovation

In the Series B round, the CTO’s role involves a broader range of responsibilities, including:

Challenge: Focus on innovation while managing the company’s growing structure.

Series C: Operational scaling and preparing for an IPO

At the Series C stage, the CTO plays a key role in:

Challenge: Managing large-scale technology and preparing the company for future challenges.

Pre-IPO (pre-IPO): Growth readiness

In the IPO preparation phase, the CTO’s role includes:

Challenge: Ensuring that technology and operations are ready for the big changes and challenges of an IPO.

Summary

For mature CTOs, understanding the role and challenges of each stage of financing is critical to successfully leading a technology company. From the seed stage to pre-IPO preparations, the CTO’s role requires constant adaptation and strategic thinking to support the company’s growth and help achieve its goals. It’s also worth remembering that the key and most difficult transition is from the role of a hands-on technical leader and visionary to an agile C-level leader.

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.  

Sustainable team growth 

Concluding our series, this article is the final installment of a three-part series on building high-performance software development teams.

Achieving success is one thing; sustaining it is another. In this final installment, we’ll explore strategies for sustaining success and fostering growth within software development teams for a long-term success and continued innovation.

Nurturing talent

To achieve the growth and development of team members, companies need to invest in them. How? By providing opportunities for learning and advancement, mentorship programs and access to resources that foster professional growth. By nurturing talent from within, organizations cultivate a culture of continuous improvement and innovation. To prove the foregoing, at ArdentCode we have experts who have worked in the IT industry for over 15 years, which is meaningful, indeed.

Staying agile and adaptive

Today, agility is key. It is important to encourage a team to embrace change, adapt quickly to new technologies and market trends, as well as continuously iterate and improve their processes. By staying agile and adaptive, teams can respond swiftly to challenges and capitalize on emerging opportunities.

Leading by example

Being a leader forces us to lead by example. What is also important is to present the values and principles not only on paper, but also in daily working with a team, fostering a culture of transparency, communication and collaboration, providing a role model to employees. At ArdentCode annual feedback and review is created not only for the team, but for the board members and leaders, too, because there is always an opportunity to make changes. 

In summary, sustaining success and fostering growth within software development teams requires a multifaceted approach that encompasses talent development, diversity and inclusion, agility, leadership and resilience. By implementing these strategies, organizations can build teams that do not only achieve success in the short term, but also thrive and innovate in the long run, ensuring continued growth and success in an ever-changing digital environment.

Our series on building high-performance software development teams has emphasized the essential components of strategic recruitment, continuous growth, shared vision and collaborative culture. These elements are the key to empowering teams to navigate challenges, foster innovation and attain remarkable outcomes. By prioritizing creativity, sustainability and long-term success, organizations can cultivate thriving software development teams ready to flourish in today’s ever-evolving digital realm.

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.

Pro-activity, why is it a value? 

There are dozens of values which companies could present as the most important. But in ArdentCode we truly believe that pro-activity is our own key to build long-term and meaningful cooperation with business partners.  

At the beginning of business cooperation, both sides agree on the terms regarding the conditions and scope of work. At this stage it is difficult to decide what else should be taken into account. When developers and experts from ArdentCode connect with internal client’s team to build a blended team, they find areas which could be re-defined or developed. Based on mutual trust and respect, we can discuss additional projects or project areas to make an application or solution more effective and user-friendly.  

How do we understand pro-activity? 

In our structures we are familiar with providing all the results and effects which were referred to in the contract. This is the priority. What is also important is that we are open-minded, and therefore we look carefully at other areas, not only based on development. For example, in the course of fostering Project One, for Wolters Kluwer, we also took care of task management in JIRA. Another example is our work with Spotler, when we configured and maintained CI/CD infrastructure to automate application builds. In the last few months, for one of our clients we applied our knowledge and experience to check the architecture and software development process from a performance point of view.  

Why is pro-activity a game-changer?  

We know that details make huge difference for quality. For instance, turning on cameras during meetings, sharing live examples at the demo instead of presenting slides or, finally, contributing our technical and process-related observations on how to improve the development of the project. These and many other “tiny” changes create a connection based on professionalism, trust and intuitive willingness to improve.  

In ArdentCode pro-activity and client-oriented attitude is natural, embedded in the work culture and work ethic. Meeting the needs of customers, which becomes part of daily operations, is one of the foundations of work at the company. Already at the recruitment stage, we verify that candidates will adjust themselves to the structures of a team whose pro-activity is part of the primary offer to customers. 

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]