best practices Articles / Blogs / Perficient https://blogs.perficient.com/tag/best-practices-2/ Expert Digital Insights Wed, 06 Nov 2024 16:53:41 +0000 en-US hourly 1 https://blogs.perficient.com/files/favicon-194x194-1-150x150.png best practices Articles / Blogs / Perficient https://blogs.perficient.com/tag/best-practices-2/ 32 32 30508587 People of Perficient: Meet Rodrigo Vargas, Technical Architect from Chile https://blogs.perficient.com/2024/11/05/people-of-perficient-meet-rodrigo-vargas-technical-architect-from-chile/ https://blogs.perficient.com/2024/11/05/people-of-perficient-meet-rodrigo-vargas-technical-architect-from-chile/#respond Tue, 05 Nov 2024 19:51:22 +0000 https://blogs.perficient.com/?p=371233

Ever wondered what a day looks like when technology meets teamwork? 

As a technical architect at Perficient, Rodrigo Vargas builds solutions and bridges between teams, tools, and ideas. From streamlining automation across multiple frameworks to shaping roadmaps and client strategies, every day is a blend of technical challenges and creative collaboration. 

Curious to see how it all unfolds? Let’s dive in! 

 

Whatsapp Image 2024 10 09 At 12.56.57What is your role? Describe a typical day in the life. 

As a technical architect, I lead the standardization and optimization of six CI/CD/CT automation teams across multiple technology stacks. My job involves implementing agile methodologies to synchronize end-to-end testing across multiple frameworks.  

I also lead PDF content validation efforts for clinical letters and develop comprehensive roadmaps in collaboration with IT team members to improve document processing workflows. A crucial aspect of my role is to facilitate direct communication with client stakeholders for accurate estimation and roadmap planning while optimizing workload distribution and improving cross-team collaboration. 

How do you explain your job to family, friends, or children? 

My role is similar to that of an architect and construction supervisor, but in the world of computer programs. I ensure that programs are built correctly, work seamlessly together, and perform as expected.  

I also explain how I lead a team that creates special tools to check that everything works perfectly. Simply put, my job is to ensure that the software we create is high quality and meets our clients’ needs. 

Whether big or small, how do you make a difference for our clients, colleagues, communities, or teams? 

In my role, I make a difference through technical innovation and effective leadership. For our clients, I streamline critical processes and improve software quality, resulting in more efficient and reliable solutions. This not only directly benefits businesses, but also has a positive impact on the communities that use these services. 

With my colleagues and teams, I foster an environment of continuous learning and collaboration. Sharing knowledge about emerging technologies and agile methodologies not only improves our projects, but also drives the professional growth of each team member. My focus on skill development and innovation creates a positive ripple effect, elevating the quality of our work as a team and the satisfaction of our clients. 

What are your proudest accomplishments, personally and professionally? Any milestone moments at Perficient? 

In my professional career, I am proud to have successfully led the standardization and optimization of many CI/CD/CT automation teams for different clients. This achievement significantly improved the efficiency of our processes and elevated the quality of our deliveries. Implementing agile methodologies and integrating automated testing into our workflow are important milestones that have transformed the way we work. 

Personally, I consider my continuous learning and adaptation to modern technologies, especially in the field of artificial intelligence and language models, a great achievement.  

My ultimate goal is transcendence. 

Ecb97fcd 409f 4392 8f5e F8e76f433d1d

What has your experience at Perficient taught you?

I have learned the value of interdisciplinary collaboration. At Perficient, I have seen how constructive collaboration between different specialties can generate innovative solutions and solve insurmountable challenges. 

Perficient has helped me in the arduous task of maintaining a balance between technical excellence, interpersonal skills, and devoting time to my family and children. 

What advice would you give to colleagues who are starting their career with Perficient? 

Always remember that behind every line of code, every project, and every technical challenge, there are people. Cultivate authentic relationships with your colleagues and clients. Technology is our tool, but it is human connections that truly drive innovation and success. 

Do not be afraid to show your vulnerability. It is okay to admit that you do not know everything. In fact, this honesty will open doors to learning and fostering an environment of trust within the team. Share your doubts, celebrate your successes, and learn from your failures openly. 

Keep your curiosity alive beyond technology. Explore interests outside of work, whether it’s art, music, sports, or any other passion. These diverse experiences will enrich your perspective and help you provide more creative and comprehensive solutions to technological challenges. 

Why did you choose Perficient? What keeps you here? 2a348257 488b 4b18 813c 6c63581a3b02

What keeps me here is the unique culture.  

Perficient is not just a place to work; it is an ecosystem of continuous learning and collaboration. My ideas are valued, and I have an opportunity to influence the development of solutions that make a difference for our clients.  

Why are you #ProudlyPerficient? 

At Perficient, my ideas are heard, and my contributions have a real impact. From leading the standardization of automation equipment to implementing innovative AI solutions, Perficient has given me the platform to drive change and innovation in the tech industry. 

What makes me truly proud is how Perficient fosters an environment of continuous learning and collaboration. We not only focus on delivering exceptional solutions to our customers, but we also invest in the personal and professional growth of each team member. 

What motivates you in your daily work? 

What motivates me in my daily work is the combination of technical challenges and the human impact that our solutions generate.  

Every day, I am driven by the opportunity to solve complex problems using innovative technologies, knowing that our work improves processes and people’s lives. 

How have you grown your career with Perficient? 

An important milestone in my growth was the transition from a purely technical role to a technical leadership role. Perficient gave me the opportunity to lead multidisciplinary teams on complex projects, allowing me to develop project management and team leadership skills. 

The company has also fost3813f739 7529 4a08 B8af C7ed71239d97 (1)ered my development in emerging technologies. For example, I have been able to delve deeper into areas such as artificial intelligence and large language models (LLM) and apply this knowledge in innovative future products for our clients. 

With Perficient’s mission statement in mind, how do you forge our future? 

Shaping the future, to me, is about more than just technology. It is about how we use our skills and knowledge to make the world a better place. When I am designing a solution, I ask myself, “How will this make life easier for someone? Are we really solving a problem that matters?”  

I also believe that shaping the future is about cultivating genuine relationships. At Perficient, we do not just build systems; we build trust. I strive to get to know my colleagues and clients and to understand their dreams and fears. Because in the end, technology is just a tool; it is the people who make the difference. 

If you had to define yourself using one Perficient value, which would it be and why? 

I would choose Collaboration.  

This value resonates deeply with me because true magic happens when we bring together diverse minds and perspectives. It is important to create an environment where all voices are valued, and where ideas can flow freely without fear of judgment. In my projects, I always seek to foster this spirit of openness and mutual respect. 

What are you passionate about outside of work? 

I am passionate about programming, music, taking long walks outdoors in the Los Andes Mountain range, and traveling. I also spend quality time with my three children and partner. 

74e2864d 0fe6 4d3e 867b 65e3511c98e1What’s something surprising people might not know about you or your background? 

I am part of a music group called Alejandría We create the kind of music that we like, which is outside of the mainstream. It is difficult, but it is tremendously gratifying.  

Perficient believes in a strong work/life balance. What is one way you accomplish this? 

Every other weekend, I set out to explore a new programming idea involving AI. This helps me maintain a balance between work and personal development, while also keeping me on the forefront in a rapidly evolving field.  

It’s my way of “playing” with technology without the pressure of deadlines or work expectations. Sometimes I experiment with a new machine learning algorithm, and sometimes I try to create a small chatbot. The important thing is that I do it for fun and personal curiosity. 

Connect with Rodrigo on LinkedIn: Rodrigo Vargas Molina 

 

SEEMORE PEOPLEOF PERFICIENT 

It is no secret our success is because of our people. No matter the technology or time zone, our colleagues are committed to delivering innovative, end-to-end digital solutions for the world’s biggest brands, and we bring a collaborative spirit to every interaction. We are always seeking the best and brightest to work with us. Join our team and experience a culture that challenges, champions, and celebrates our people.     

Visit our Careers page to see career opportunities and more!     

Go inside Life at Perficient and connect with us on LinkedIn, YouTube, Twitter, Facebook, TikTok, and Instagram. 

 

]]>
https://blogs.perficient.com/2024/11/05/people-of-perficient-meet-rodrigo-vargas-technical-architect-from-chile/feed/ 0 371233
Meet Martin Krahl: Director of Software Engineering at Perficient https://blogs.perficient.com/2024/11/05/meet-martin-krahl-director-of-software-engineering-at-perficient/ https://blogs.perficient.com/2024/11/05/meet-martin-krahl-director-of-software-engineering-at-perficient/#respond Tue, 05 Nov 2024 17:00:49 +0000 https://blogs.perficient.com/?p=371252

Having spent nearly six years at Perficient, Martin Krahl serves as Director of Software Engineering, where he balances strategy, mentorship, and technical excellence. From identifying business opportunities to building high-performing teams, his work ensures smooth project delivery and lasting impact. 

Curious to learn more about his journey, accomplishments, and advice? Read the full story and get inspired! 

Connect with Martin on LinkedIn: Martin Krahl Vitale 

 

What is your role? Describe a typical day in the life 

As the Director of Software Engineering, I oversee technical leadership and career development within the organization. My day usually involves a mix of strategy and hands-on guidance. A significant part of my role is acting as a technical advisor to help the business unit identify new opportunities from a technical and capability standpoint.  

I also help assemble the most efficient teams for our clients and oversee the delivery health and engineering excellence of multiple projects. Additionally, I mentor team members and work with them on their career development to ensure they have the skills and support to grow and excel in their roles. 

 

Whether big or small, how do you make a difference for our clients, colleagues, communities, or teams? Couple

I make a difference by prioritizing the career development of our people. Through mentoring and knowledge sharing, I contribute to building skilled teams that are prepared to tackle the tough challenges our clients may face. 

 

What are your proudest accomplishments, personally and professionally? Any milestone moments at Perficient? 

One of my proudest accomplishments at Perficient is being part of the team, led by Nicolas Pagliaro and Sebastian Giardello, that developed the HCL Commerce capability in Latin America. This initiative significantly contributed to our global depth strategy for the Commerce practice. 

 

Learn More: Perficient’s Expertise in Commerce 

 

What advice would you give to colleagues who are starting their career with Perficient? 

I would advise them not to be afraid of taking on new challenges. New roles or responsibilities can be tough in the beginning, but it’s important to learn how to manage the initial uncertainty. It will pay dividends in the long term. 

 

Why are you#ProudlyPerficient? 

I’m #ProudlyPerficient because I work with some of the most talented people in the industry. We truly make an impact on our clients by delivering robust and innovative solutions, and learning from each other, which makes Perficient a great place to develop a long-term career. 

 

Read More: How Perficient’s Award-Winning Culture Prioritizes Growth for Everyone 

Family

With Perficient’s mission statement in mind, why do we obsess over client outcomes? 

Obsessing over client outcomes means truly understanding their needs and challenges. Ultimately, our goal should be to add business value, and technology serves as the driver to achieve this in the most effective way. 

 

If you had to define yourself using one Perficient value, which would it be and why? 

If I had to define myself using one Perficient value, I would choose collaboration. I am always ready to help others by contributing to the development of new processes, mentoring colleagues, and providing support with technical challenges during project delivery. I believe that working together and sharing knowledge leads to better outcomes for everyone.

 

Martin’s journey at Perficient is a testament to the power of leadership, collaboration, and continuous growth. As he continues to mentor others and push the boundaries of innovation, Martin remains committed to creating meaningful solutions that make a lasting impact. With nearly six years under his belt—and many more to come—his story reflects not just personal success, but the spirit of teamwork that defines Perficient. 

Pets 

SEE MORE PEOPLE OF PERFICIENT

It’s no secret our success is because of our people. No matter the technology or time zone, our colleagues are committed to delivering innovative, end-to-end digital solutions for the world’s biggest brands, and we bring a collaborative spirit to every interaction. We’re always seeking the best and brightest to work with us. Join our team and experience a culture that challenges, champions, and celebrates our people.    

Visit our Careers page to see career opportunities and more!    

Go inside Life at Perficient and connect with us on LinkedIn, YouTube, Twitter, Facebook, TikTok, and Instagram. 

]]>
https://blogs.perficient.com/2024/11/05/meet-martin-krahl-director-of-software-engineering-at-perficient/feed/ 0 371252
4 Guidelines That Helped Me Consult as a Product Owner https://blogs.perficient.com/2024/09/02/4-guidelines-that-helped-me-consult-as-a-product-owner/ https://blogs.perficient.com/2024/09/02/4-guidelines-that-helped-me-consult-as-a-product-owner/#respond Mon, 02 Sep 2024 14:22:54 +0000 https://blogs.perficient.com/?p=369953

The Challenge

Knowledge about a product navigates product owners through a maze of complex decisions they need to make regularly.  Awareness of the business needs behind a product, the users who will benefit from it, and the functionalities it puts on the table, helps product owners maximize delivered value and successfully collaborate with stakeholders. Such awareness and expertise take time to build, so product owners invest significant effort to understand their field of interest and strengthen their knowledge.

But what happens when consultant product owners join a new project and need to quickly identify valuable information specific to client business goals?

The challenge resides in the fact projects often have a limited duration, and clients have their own knowledge networks that consultants need to adapt to.

In this scenario, product owners benefit from being flexible and capable of balancing focus on client needs and adaptation to the project environment.

To maintain such balance, I have followed four guidelines that have helped me consult as a product owner. These can be summarized as aligning with a new team, identifying the right knowledge sources, and building trust by strengthening communication skills and knowing how to share knowledge in the right way.

4 Guidelines for Product Owners

1. Strong Team Collaboration

While knowledge about a product stands as a centerpoint of the product owner role, strong collaboration with the team accelerates the pace toward great performance. Therefore, maintaining a balance between learning about a product and learning about the team’s inner processes can provide invaluable information about the project’s dynamics.

For example, transparent communication with Scrum Masters can provide insight not just into common blockers but also into how the team processes information about product goals. Establishing procedures for managing user story creation as a team and learning how a team responds to different Scrum events can also significantly improve the health of a backlog. When product owners understand how to analyze information and participate in discussions, they build the backlog more efficiently by clarifying and channeling key data required to successfully deliver product goals.

2. Active Listening

Joining a new project can be a significant challenge, and we often want to showcase our strengths as soon as possible in order to build a good relationship with a client.

But one of the best ways to provide support is to also turn our focus outward and actively listen to clients’ needs. Whether we interpret written or oral communication, we should carefully analyze the information to truly understand how our expertise can close the gaps and bring value.
Being an active listener also gives us another advantage: identifying key subject matter experts who can help us learn and adapt.

3. Identifying Subject Matter Experts

Consultants adapt to the assigned project team structure and identify the main communication points to set up their workflow and successfully collaborate with clients.

The Product Owner role often requires expanding our outreach and actively searching for subject matter experts (SMEs) who can help us understand a product’s core and the value we need to bring to the table. A good approach could include paying attention to who attends meetings and is active on communication channels, along with the topics they discuss and the manner they use for topic analysis. Once we identify the network of contacts, we can use it to build a clearer image of the product we manage.

4. Knowing How to Share Knowledge

Knowledge can be shared in many different forms, and if a product owner identifies the ones that fit client needs, they can build trust in their expertise and experience. The process of recognizing the right approach to share knowledge includes researching what a client prefers in areas such as:

  • Presentation style
  • Preferred written format (articles, blogs, or similar)
  • Method of communication (language style, channels, manner of speech)

Each Project Is a New Beginning

Each project brings forth a new set of topics to learn, challenges to overcome, and methods to incorporate to adapt to a new working environment.

Therefore, the listed guidelines open a dialogue that will continue in the next blog, where I will interview other product owners and highlight the guidelines they follow to be successful consultant product owners.

]]>
https://blogs.perficient.com/2024/09/02/4-guidelines-that-helped-me-consult-as-a-product-owner/feed/ 0 369953
Harnessing the Power of AWS Bedrock through CloudFormation https://blogs.perficient.com/2024/08/20/harnessing-the-power-of-aws-bedrock-through-cloudformation/ https://blogs.perficient.com/2024/08/20/harnessing-the-power-of-aws-bedrock-through-cloudformation/#comments Tue, 20 Aug 2024 09:38:41 +0000 https://blogs.perficient.com/?p=367196

The rapid advancement of artificial intelligence (AI) has led to the development of foundational models that form the bedrock of numerous AI applications. AWS Bedrock is Amazon Web Services’ comprehensive solution that leverages these models to provide robust AI and machine learning (ML) capabilities. This blog delves into the essentials of AI foundational models in AWS Bedrock, highlighting their significance and applications.

What are AI Foundational Models?

AI foundational models are pre-trained models designed to serve as the basis for various AI applications. These models are trained on extensive datasets and can be fine-tuned for specific tasks, such as natural language processing (NLP), image recognition, and more. The primary advantage of using these models is that they significantly reduce the time and computational resources required to develop AI applications from scratch.

AWS Bedrock: A Comprehensive AI Solution

AWS Bedrock provides a suite of foundational models that are easily accessible and deployable. These models are integrated into the AWS ecosystem, allowing users to leverage the power of AWS’s infrastructure and services. AWS Bedrock offers several key benefits:

  1. Scalability: AWS Bedrock models can scale to meet the demands of large and complex applications. The AWS infrastructure ensures that models can handle high volumes of data and traffic without compromising performance.
  2. Ease of Use: With AWS Bedrock, users can access pre-trained models via simple API calls. This ease of use allows developers to integrate AI capabilities into their applications quickly and efficiently.
  3. Cost-Effectiveness: Utilizing pre-trained models reduces the need for extensive computational resources and time-consuming training processes, leading to cost savings.

Key Components of AWS Bedrock

AWS Bedrock comprises several key components designed to facilitate the development and deployment of AI applications:

  1. Pre-trained Models: These models are the cornerstone of AWS Bedrock. They are trained on vast datasets and optimized for performance. Users can select models tailored to specific tasks, such as text analysis, image classification, and more.
  2. Model Customization: AWS Bedrock allows users to fine-tune pre-trained models to meet their specific needs. This customization ensures that the models can achieve high accuracy for specialized applications.
  3. Integration with AWS Services: Bedrock models seamlessly integrate with other AWS services, such as AWS Lambda, Amazon S3, and Amazon SageMaker. This integration simplifies the deployment and management of AI applications.

 

Amazon Bedrock supports a wide range of foundation models from industry-leading providers. We can choose the model that is best suited to achieving your unique goals.

Here are just a few of the popular ones:

11

Note: Account users with the correct IAM Permissions must manually enable access to available Bedrock foundation models (FMs) to use Bedrock. Once Model Access is granted for that particular region, we can use it to build and scale our application.

Using AWS Bedrock services requires specific IAM permissions to ensure that users and applications can interact with the service securely and effectively. Basic Bedrock Access, Model Training and Deployment, Inference and Usage, Data Management, Compute Resources Management, Security and Identity Management, Monitoring, and Logging are the types of IAM permissions that are typically needed.

The cost parameters for using AWS Bedrock include Compute, Storage, Data Transfer, and Model Usage costing depending on the Number of Input tokens for units per month. Understanding these parameters can help estimate the costs associated with deploying and running AI models using AWS Bedrock. For precise cost calculations, AWS provides the AWS Pricing Calculator and detailed pricing information on its official website.

Let’s try to implement any one of these foundation models (for example: Titan) using AWS CloudFormation service.

Amazon Titan in Amazon Bedrock

Amazon Bedrock exclusively offers the Amazon Titan series of models, which benefit from Amazon’s 25 years of innovation in AI and machine learning. Via a fully controlled API, these Titan foundation models (FMs) offer a range of high-performance choices for text, graphics, and multimodal information. Created by AWS, Titan models are pre-trained on extensive datasets, making them powerful and versatile for a wide range of applications while promoting responsible AI usage. They can be used as they are or customized privately with your data.

Titan models have three categories: embeddings, text generation, and image generation. Here, we will focus on the Amazon Titan Text generation models, which include Amazon Titan Text G1 – Premier, Amazon Titan Text G1 – Express, and Amazon Titan Text G1 – Lite. We will implement “Titan Text G1 – Premier” from the list above.

Amazon Titan Text G1 – Premier

Amazon Titan Text G1 – Premier is a large language model (LLM) for text generation that is integrated with Amazon Bedrock Knowledge Base and Amazon Bedrock Agents and is highly helpful for a variety of tasks, including summarizing, code generation, and answering open-ended and context-based questions, and also supports Custom Finetuning in preview.

ID – amazon.titan-text-premier-v1:0

Max tokens – 32,000

Language – English only

Use cases – 32k context window, Context-Based Question Answering, open-ended text generation, Knowledge Base support, Agent’s support, chain of thought, rewrite, brainstorming, summarizations, code generation, table creation, data formatting, paraphrasing, extraction, QnA, chat, Model Customization (preview).

Inference parameters – Temperature, Top P (Default: Temperature = 0.7, Top P = 0.9)

While implementing this using CloudFormation, we will first need to create a stack for it. Creating a stack template for AWS CloudFormation involves defining your AWS infrastructure and resources using either JSON or YAML format.

Let’s try to implement the Python AWS Lambda function that utilizes the AWS Bedrock’s Titan service to generate text based on an input prompt through a YAML-based cloud formation script.

22

The given AWS CloudFormation template defines resources for creating an IAM role and a Lambda function to invoke a model from AWS Bedrock i.e., providing text generation capabilities through the specified Titan model.

IAM Role

  • Allows Lambda to assume the role and invoke the Bedrock model.
  • Grants permission to invoke the specific Bedrock model (amazon.titan-embed-text-v1) and list available models.

Lambda Function

  • Python function that uses Boto3 to invoke the Bedrock model amazon.titan-text-premier-v1:0.
  • Sends a JSON payload to the model with a specified configuration for text generation. Returns the response from the model as the HTTP response.
  • If we check the Lambda function’s dashboard, then the “index.py” file, contains:

33
This AWS Lambda function interacts with the AWS Bedrock service to generate text based on an input prompt. It creates a client for the Bedrock runtime, invokes a specific text generation model with given configurations, processes the response to extract the generated text, and returns this text in an HTTP response. This setup allows for the automation of text generation tasks using AWS Bedrock’s capabilities.

Execution Results

44

As seen in the Response window for the input given as: “Hello, how are you?”, it has returned the output text as “Hello! I’m doing well, thank you. How can I assist you today?”.

In this manner, AWS Bedrock’s Amazon Titan Text G1 – Premier model is designed for a wide range of natural language processing (NLP) tasks due to its advanced capabilities and large context window.

]]>
https://blogs.perficient.com/2024/08/20/harnessing-the-power-of-aws-bedrock-through-cloudformation/feed/ 6 367196
PRISM’s Pronouns 101 https://blogs.perficient.com/2024/07/24/prisms-pronouns-101/ https://blogs.perficient.com/2024/07/24/prisms-pronouns-101/#respond Wed, 24 Jul 2024 15:59:41 +0000 https://blogs.perficient.com/?p=366277

Perficient’s newest ERG, PRISM, kicked off the summer with vibrant celebrations and important conversations surrounding Pride and the LGBTQIA+ community. A key event this year was our “Pronouns 101”, an enlightening and empowering session focused on understanding and respecting the diverse identities within our community.

Pronouns 101 provided attendees and viewers with a comprehensive understanding of pronouns and their significance in fostering a respectful and welcoming environment for everyone.

The session began by reviewing a detailed explanation of what pronouns are and why they matter. We discussed the importance of using the correct pronouns to show respect and acknowledgement of each individual.

One of the key points was the use of neo-pronouns such as xe, ze, and even they. Gender neutral pronouns have been in use since at least the 1800’s with the singular use of “they” going back to the 14th century.

Some of the best practices reviewed focused on three key elements: share, ask, and don’t assume. The best thing we can do as leaders is to normalize introductions of pronouns by introducing ourselves with pronouns. For example, “Hi, my name is Nicole, and I use she/they pronouns”.

Leaders can take things a step further by making this a standard part of introductions with new teams. This helps ensure everyone is included and feels seen and heard.

So, what happens if you make a mistake?

Images

Mistakes happen, we all say the wrong thing sometimes. The best thing to do when you make a mistake is apologize and move on.

If you’re thinking, what else can I do, here are some great options!

Remember that acknowledging and using correct pronouns shows that we value everyone and helps create a more welcoming environment.

Be mindful of gendered phrases. We often use gendered phrases like “Hey guys” and “Welcome ladies and gentlemen”. These phrases can make individuals feel ostracized or undervalued. Some great alternatives are using phrases like “Hey all”, “Welcome everyone”, and “Great work team” are just some examples of alternatives.

Download

Remember that using the correct pronouns helps affirm identity, validates individual experiences, and can significantly impact a person’s sense of belonging and safety.

Using correct pronouns is more than a matter of grammar; it’s about recognizing and affirming each person’s identity. It is a simple yet powerful way to show respect and create a sense of belonging. By making a conscious effort to use correct pronouns, we contribute to a more inclusive and accepting society.

The Pronouns 101 event was a fitting conclusion to Pride Month, reinforcing the values of acceptance, understanding, and respect. As we move forward, let us carry the lessons learned and continue to advocate for inclusivity in our daily lives. By embracing and respecting each other’s identities, we build a stronger, more united community.

 

]]>
https://blogs.perficient.com/2024/07/24/prisms-pronouns-101/feed/ 0 366277
Are we Agile Yet? https://blogs.perficient.com/2024/06/24/are-we-agile-yet/ https://blogs.perficient.com/2024/06/24/are-we-agile-yet/#respond Mon, 24 Jun 2024 07:54:38 +0000 https://blogs.perficient.com/?p=364930

Agile is a Cliché, a widely used Phrase in today’s Industrial timeline. Evey Organisation, Group, Team wants to be Agile. But is it adopted in the name only???

Agile frameworks hold such promise. From focusing on value driven delivery to empowered investors or stakeholders, it is the time to be part of enthusing Software development.

There are fairy stories about what an Agile team should be like:

  • It is a belief that an Agile team should not require a manager.
  • The team should be able to forecast all scopes and delivery timelines up ahead.
  • The team should always be self-sustaining all the time.
  • Focus on the Tasks completion and make very little room for changes.

If you are agreeing to all or some of them, then it is time to change and consider the fact.

Here are some of the signs that backs-up the Agile is in name only but not a mindset

1. Requiring a large Document at the beginning

Being Agile is to choose Incremental Delivery, allowing team to learn adapt for new information and changes. Obtaining an exhaustive requirement document paves the way for traditional waterfall approaches and limits the team’s ability to think through, adapt and innovate

2. Marginalizing the Product Owner

For a consultant like us the Product Owner is the Client or the Client’s SPOC who provides the Product Backlog. Frequent and periodical communication empowers the Product Owner decide on the content and prioritizing the content in a Product Backlog, thereby giving an edge to the team for faster delivery. Remember empowering a Product Owner leads to the success of the team.

3. Micro-Management

Micromanaging the developers is contradictory to one of the principles of Agile; self-Organization, limiting the team’s ability to respond to change effectively.

4. Count of Ticket or Outcomes…Which one?

We often submerge ourselves into completing the listed Tasks than to really look upon the quality of the Outcome and value delivered. Agile success is measured not by the Volume of Tasks handled by the team but by delivering meaningful results.

5. Expecting a Project Plan Instead allowing team to adapt as more is learned

Agile frameworks prioritize adaptability and responsiveness to change. Rigid project plans do not allow for the iterative learning and adjustment that are core to agile practices.

6. Too many columns on your board

Using Tools such as Jira, Trello, YouTrack etc. are important to keep a track, however over-emphasizing on the usage and adding too many columns will only cause chaos and sometimes derail from actual collaboration and continuous improvement.

7. Lack of Continuous improvement

Agile team should constantly strive to reflect on their processes and seek ways to improve. The Agile process stagnates if there are no room for continuous improvement. It is necessary to create a feedback loop for continuous improvement through Sprint reviews. Agile methodologies promote frequent collaboration with all stakeholders to ensure the product meets the demand, undermining the same indicates shallow adoption of it.

 

Agile is all about finding what is the best for team for perform effectively.

For Example: A Team is forced to use the user story format to capture and document technical details in the Product Backlog when it doesn’t really make sense and perhaps extra efforts and Time spent. This is the sign the team is forced to use complementary practices when it is not needed.

Treating Agile as just a set of Practice rather than a mindset and change focused on flexibility, collaboration and continuous improvement misses the essence of being Agile.

Remember, Agile Transformation is a journey which cannot be obtained overnight. But as the wise say, every positive steps adds to the glory. Change takes time, and sometimes, a series of small improvements will get you there faster than trying to change everything at once.

 

Happy Agile

]]>
https://blogs.perficient.com/2024/06/24/are-we-agile-yet/feed/ 0 364930
Meet Alejandro Ochoa Morales, Lead Technical Consultant https://blogs.perficient.com/2024/06/14/meet-alejandro-ochoa-morales-lead-technical-consultant/ https://blogs.perficient.com/2024/06/14/meet-alejandro-ochoa-morales-lead-technical-consultant/#respond Fri, 14 Jun 2024 15:59:19 +0000 https://blogs.perficient.com/?p=364453

Img 20240524 Wa0062

At Perficient, we are proud to have a diverse and talented team spanning the globe, working together to build the leading global digital consultancy. Each of our colleagues has a unique and fascinating story that we want to share with you. We are dedicated to highlighting the diverse perspectives, unique backgrounds and extraordinary journeys of the people who enrich Perficient, impact our communities and support each other.

For this People at Perficient story, we spoke with Alejandro Ochoa Morales, Lead Technical Consultant, who has worked for Perficient for 3.5 years. Learn more about his life and experience at Perficient and don’t miss his inspiring story!

What is your role? Describe a typical day in the life.
Until recently I had a dual role, serving as technical project leader, and Hub leader. Now I have moved into a more Hub support role to focus on the project.

Within the project, I am there to support the team, help define the tasks, eliminate blockages, give indications on how to do the development and also support the delivery part working hand in hand with the Project Leader. I also do development when time permits.

How do you explain your job to family, friends, or children?
I would usually tell my family that Perficient is a Software Development company, because they don’t have much of a technical background. But then I would explain to them that if they wanted to create a mobile application or a website that worked in a specific way, Perficient could help them.

Whether big or small, how do you make a difference for our clients, colleagues, communities, or teams?
I feel the way I make a difference is by impacting clients, prioritizing their needs, and supporting their requests. I consider that I focus more on the maintenance of things, rather than the development of things. In another sense, I bring more value by supporting my team and addressing customer requests with frequently asked questions, so that the team can focus on what is really important and not get distracted by the urgent.

What are your proudest accomplishments, personally and professionally? Any milestone moments at Perficient?
Professionally, I am proud of when I finally started working at Perficient (formerly PSL in Colombia). It was a great achievement because it was only until the third opportunity to go through the selection process that things finally came together.

20210406 194417

Personally, I felt very proud when I bought an apartment for investment. It was a great effort of the last few years that allowed me to make that investment for my future.

What has your experience at Perficient taught you?
You can go as far as you want, there are opportunities and it’s up to you to take advantage of them to grow personally and professionally.

What advice would you give to colleagues who are starting their career with Perficient?
If you have a question, ask anyone. That person may not have the answer, but they will certainly help you find someone who does.

Why did you choose Perficient? What keeps you here?
I chose Perficient because of the high technical level of the people who work here, since I had the opportunity to interact with people who work in the company. And that’s exactly the reason why I’m still here, I feel that I’m still growing, I’m still learning from my colleagues, I still have references to be inspired by.

What motivates you in your daily work?
The impact I generate to clients and my team. The learning I get when I face day-to-day challenges. Being able to continue to grow around talented people.

With Perficient’s mission statement in mind, please answer at least one of the following questions.
I feel that at Perficient we break boundaries, because we don’t just stay with what we are initially asked to do, we go further and we are really consultants, where we see how we can optimize customer processes and solve problems that even they had not identified.

If you had to define yourself using one Perficient value, which would it be and why?
People, I believe that people are the ones who make this company, and make it move forward. The quality of the people here makes me inspired to grow and continue to develop as a professional.

What are you passionate about outside of work?
I am learning to cook, learning different ways to make pork and beef, using smoker ovens and steel pans.

Perficient believes in a strong work/life balance. What is one way you accomplish this?
I feel that the key is to set limits, at work we are always going to be busy, and it is unrealistic to pretend to finish everything in one day. Knowing how to estimate time and plan the work is key to avoid saturation and overexertion.

 

SEE MORE PEOPLE OF PERFICIENT 

It’s no secret our success is because of our people. No matter the technology or time zone, our colleagues are committed to delivering innovative, end-to-end digital solutions for the world’s biggest brands, and we bring a collaborative spirit to every interaction. We’re always seeking the best and brightest to work with us. Join our team and experience a culture that challenges, champions, and celebrates our people.  

Visit ourCareers pageto see career opportunities and more!  

Go insideLife at Perficientand connect with usonLinkedIn,YouTube,Twitter,Facebook,TikTok, andInstagram.  

]]>
https://blogs.perficient.com/2024/06/14/meet-alejandro-ochoa-morales-lead-technical-consultant/feed/ 0 364453
OneStream Security: How to Check Security Groups Assigned/Used or Not Used https://blogs.perficient.com/2024/02/29/onestream-security-groups-users-load-extract-option-xml-find-and-search/ https://blogs.perficient.com/2024/02/29/onestream-security-groups-users-load-extract-option-xml-find-and-search/#respond Thu, 29 Feb 2024 16:44:24 +0000 https://blogs.perficient.com/?p=357306

During the implementation of OneStream application, Implementation Consultants and Administrators create different security groups based on the client’s security access requirements. However, as the project progresses from one phase to another, these security groups may become obsolete or redundant.

Security groups are assigned to different objects in the application to enable users to access certain sets of data or reports, or execute tasks depending on the data access required to perform their tasks.

This article aims to help you identify the security groups assigned or used or not used within the OneStream application.

    • Login To OneStream Application as Administrator
    • Navigate to or Click on System Tab
    • Click on Security – Find a Group/User
    • Click on “Show All Groups in the Selected Group” – This will show you which groups are assigned to which Child/Parent Group if you select a group.
    • or “Show All Parent Groups for Selected User” – This will show you which user is assigned to which Child/Parent group.

If a security group is not assigned to a user or a parent group, it denotes that the group is not being utilized in the application.

Security groups are usually assigned to various objects within the OneStream Application, as listed below:

    1. Security Roles (Application/Security Roles)
    2. Dimensions (Application/Dimension Page – All Dimensions – Entity, Account, Scenario, Flow and User Defined (1-8)) 
    3. Cube Properties (Application/Cube/Cube Properties)
    4. Cube Data Access (Application/Cube/Cube Data Access)
    5. Workflow Profiles (Application/Workflow Profiles)
    6. Confirmation Rules 
    7. Certification Questions
    8. Data Sources
    9. Transformation Rules
    10. Form Templates
    11. Journal Templates
    12. Cube Views
    13. Dashboards

Security can be defined using several methods, such as Security Roles, Entity Security, Cube Security, and Workflow Security. However, to run a report, security group assignment must be applied to Cube View Profiles and Dashboard Profiles. Confirming security group assignment requires the Administrator to check all of the above, and it can be time-consuming to find where a security group is assigned. To simplify this search, the Administrator can use the following workaround or method:

    1. Log into Application
    2. Click on Application Tab
    3. Click on Tools Section
    4. Click on Load/Extract option.
    5. Click on Extract / Select an option from drop down list.
    6. Click on Dimension/Select a specific Dimension/ ex: Entity. or any other metadata object like Cube, Account, UD Dimensions)
    7. Click on Extract option on the header bar and save the file to your computer.
    8. Open the saved Xml file using an editor (Notepad or Notepad++ utility). Tip: Uncheck Wrap Text option
    9. Simply Search and Find the group in question.
    10. If you come across a group being used in the XML file as described below, it means the Security Group is being utilized. Verify the assignment and ensure that it is correctly assigned to users and controls data access.
      • “AccessGroup=”Everyone” (used in Cube View Profiles, Dashboard Profiles, Data Sources, Transformation Rule Profiles)
      • “maintenanceGroup=”Everyone” (used in Cube View Profiles, Dashboard Profiles, Data Sources, Transformation Rule Profiles)
      • “displayMemberGroup=”Everyone” (Entity, Account, Flow and UD Dimensions)
      • “readDataGroup=”Everyone” (used in Entity)
      • “readDataGroup2=”Nobody” (used in Entity)
      • “readWriteDataGroup=”Everyone” (used in Entity)
      • “readWriteDataGroup2=”Nobody” (used in Entity)
      • “ManageDataGroup=”Administrators” (used in Scenario)
      • “CalculateFromGridsGroup” value=”Everyone” (used in Scenario)

Each Security Group assigned will appear in the above group assignments. If a group does not exist in any of the above thirteen application setups, then one can safely assume that the security group in question is redundant and not being used. Before deactivating a group, make sure the group is unassigned from users and then take proper action to deactivate.

Note:

Please follow these guidelines when defining security groups:

  1. Use a standard naming convention that includes a prefix to identify groups specific to your client needs. For example, use WFE and WFC to denote Workflow Execution profiles and Certification profiles, respectively.
  2. Add your client’s company name (three-digit) as a prefix to ensure that the security group name is unique.
  3. Exercise caution when using the Extract feature to store data on your computer.
  4. Do not click on the Extract and Edit Button while extracting data, as this may result in saving an XML file with incorrect changes.
]]>
https://blogs.perficient.com/2024/02/29/onestream-security-groups-users-load-extract-option-xml-find-and-search/feed/ 0 357306
Perficient Interviewed for Forrester: The Future Of Insurance https://blogs.perficient.com/2024/02/28/perficient-interviewed-for-forrester-the-future-of-insurance/ https://blogs.perficient.com/2024/02/28/perficient-interviewed-for-forrester-the-future-of-insurance/#respond Wed, 28 Feb 2024 16:25:37 +0000 https://blogs.perficient.com/?p=356820

With new risks, shifting market dynamics, and the unstoppable march of technology, the insurance industry finds itself at a crossroads. The imperative for transformation has never been clearer, and this is highlighted in Forrester’s report, The Future Of Insurance.

Embracing Change

The report states, “The business of insurance is in a heightened state of transformation…,” and insurance leaders must proactively “…change their business models, products, and processes over the coming decade to thrive in this volatile environment.” Perficient’s insurance experts, who were interviewed for this report, echo this sentiment, emphasizing the need for insurers to embrace innovation to stay relevant.

A Call for Transformation

  • Forrester’s “Six Factors [that] Will Challenge Insurers’ Profits In The Next Decade”:
  1. Geopolitical uncertainty
  2. Challenging economies
  3. Risk protection gap
  4. Technological advancements
  5. Regulatory changes
  6. Climate change
  • Embrace Technology Transformation: Recognizing and embracing digital innovation is not just advantageous; it’s essential for survival amidst evolving consumer expectations.
  • Better Pinpoint Your Risk(s): Predictive analytics to better target risks, artificial intelligence to identify fraud, and intelligent automation to improve operational efficiency are at the heart of insurance digital transformation moving forward.

Evolution of Business Models

Embedded Insurance represents a rapidly evolving distribution channel, with a significant emphasis placed on adapting insurance distribution to align with consumer preferences. One of Perficient’s insurance experts, Brian Bell, Insurance Principal, further speaks on this trend stating, “It is projected that up to 25% of the total P&C premium could flow through embedded distribution channels by the end of the decade.”

Embedded insurance enables consumers to purchase coverage the moment they are most inclined to do so, thereby broadening purchase opportunities for carriers and partners alike. The transformation potential of embedded insurance offers enhanced convenience and control throughout the purchasing process.

A robust digital strategy and API development plan are imperative for success:

  • Partnerships and experiences serve as extensions of carrier brands, necessitating careful cultivation.
  • The digital experience demands real-time, frictionless interaction facilitated by robust cloud infrastructure and API programs.

READ MORE: Data, Personalization, and Embedded Insurance

Future of Insurance Product Design

Going forward, insurance products will be characterized by high levels of individualization, holistic approaches, anticipatory measures, and inclusivity. Strategic investments toward smart and innovative technologies like artificial intelligence and generative automations will lead to improved efficiency and elevated customer experiences, particularly within the insurance sector.

Artificial intelligence (AI) emerges as a pivotal force within the insurance industry, especially for regional carriers seeking to thrive in a competitive and dynamic market. These insurers grapple with challenges such as customer retention and brand recognition, underscoring the growing importance of AI solutions for their success.

AI brings significant value to insurance practices in key areas:

  • Process Automation: AI streamlines tasks like claims processing and underwriting, reducing operational costs and enhancing efficiency.
  • Risk Assessment: AI algorithms analyze extensive datasets to assess risk accurately, empowering carriers to offer personalized policies and pricing while mitigating potential risks.
  • Personalized Customer Interactions: By harnessing AI to analyze customer data, carriers can deliver tailored recommendations and experiences, fostering enduring customer loyalty.
  • Pricing Optimization: AI optimizes pricing strategies by scrutinizing market trends and customer behavior, enabling carriers to offer competitive premiums while ensuring profitability.

LEARN MORE: How Can Regional Insurance Carriers Harness the Power of AI?

Strategies for Success

  • Prioritize customer-centricity, operational efficiency, and financial stability.
  • Blend automation with empathy to deliver superior outcomes.
  • Embrace technology to streamline expenses and drive revenue growth.
  • Harness various insurance assets, including platforms, to unlock business value.

Navigating the Future

The business of insurance stands at a pivotal moment in its history. Those who heed the call to transform and innovate will carve out a prosperous future, while those who resist change may find themselves struggling to stay afloat. One thing is certain: the only way forward is through evolution and adaptation.

Unlock Innovation

In navigating the insurance landscape, we believe our thought leaders play a pivotal role in guiding companies towards success. By embracing transformation, adopting agile methodologies, and leveraging innovative technologies, insurers can position themselves as industry leaders in the digital era.

To learn more, download The Future Of Insurance, available to purchase or to Forrester subscribers.

The future of insurance is ripe with opportunities for those willing to embrace transformation. Contact us today to learn more about our insurance offerings.

]]>
https://blogs.perficient.com/2024/02/28/perficient-interviewed-for-forrester-the-future-of-insurance/feed/ 0 356820
DI-Y: Crafting Code with Multiple Services Using IEnumerable in Dependency Injection https://blogs.perficient.com/2023/12/19/di-y-crafting-code-with-multiple-services-using-ienumerable-in-dependency-injection/ https://blogs.perficient.com/2023/12/19/di-y-crafting-code-with-multiple-services-using-ienumerable-in-dependency-injection/#respond Tue, 19 Dec 2023 17:14:07 +0000 https://blogs.perficient.com/?p=351874

Registering Services for IEnumerable Injection

Service Registration Fundamentals

Service registration is the process of telling the DI container how to create instances of a service, typically done at application startup.

Registering Services for IEnumerable

When services implement a common interface, you can register them in such a way that the DI container can provide an IEnumerable of these services. In .NET, for example:

services.AddTransient<ICommonService, ServiceA>();
services.AddTransient<ICommonService, ServiceB>();
Why would you register mulitple instances of the same interface? One use-case is that it is the same service with a different configuration. Here is an example of how that would look:
services.Configure<CustomOption>("Opt1", configuration.GetSection("Options1"));
services.Configure<CustomOption>("Opt2", configuration.GetSection("Options2"));

builder.Services.AddSingleton<ICommonService,ServiceA>(sp => { 
    var options = sp.GetRequiredService<IOptionsMonitor<CustomOption>>().Get("Opt1"); 
    return new ServiceA(options);
});

builder.Services.AddSingleton<ICommonService, ServiceA>(sp => {
    var options = sp.GetRequiredService<IOptionsMonitor<CustomOption>>().Get("Opt2");
    return new ServiceA(options);
});

Best Practices in Registration

Maintain logical organization in your service registrations. Grouping related services and using extension methods can lead to more maintainable code.

Resolving Services as IEnumerable

Injecting and Using IEnumerable of Services

When you have multiple services registered under the same interface, you need to inject an IEnumerable of a service interface, the DI container provides all registered implementations of that interface. For example:

public class ConsumerClass
{
    private readonly IEnumerable<ICommonService> _services;

    public ConsumerClass(IEnumerable<ICommonService> services)
    {
        _services = services;
    }

    public void UseServices()
    {
        foreach (var service in _services)
        {
            service.PerformAction();
        }
    }
}
You can also pluck a service out of the IEnumerable with a Where clause, or add your own resolver:
public class ConsumerClass
{
    private readonly ICommonService _myService;

    public ConsumerClass(IEnumerable<ICommonService> services)
    {
        _services = services.Where(x => x.Name = "Mine");
    }

    public void UseServices()
    {
        foreach (var service in _services)
        {
            service.PerformAction();
        }
    }
}

Managing Multiple Implementations

When injecting an IEnumerable of services, it’s crucial to handle each service appropriately, leveraging their individual functionalities.

Advanced Topics and Pitfalls

Understanding Service Lifecycles

Recognize the lifecycles of your services.

  • Transient: New instance with every object that needs it
  • Scoped: New instance for the application request, dependent object will share the instance until the request is completed
  • Singleton: New instance for the lifetime of the application. These services will only create new instances when the application is restarted.

Avoiding Common Errors

Be cautious of using the service locator pattern and ensure that DI is not leading to tightly coupled code.


Remember, effective use of DI, especially with IEnumerable injections, enhances the flexibility and maintainability of your code. Keep experimenting and refining your approach for the best results. Happy coding!

]]>
https://blogs.perficient.com/2023/12/19/di-y-crafting-code-with-multiple-services-using-ienumerable-in-dependency-injection/feed/ 0 351874
Transformative Trends: A Glimpse into the Future of Insurance Post-InsureTech Connect https://blogs.perficient.com/2023/11/20/transformative-trends-a-glimpse-into-the-future-of-insurance-post-insuretechconnect/ https://blogs.perficient.com/2023/11/20/transformative-trends-a-glimpse-into-the-future-of-insurance-post-insuretechconnect/#comments Mon, 20 Nov 2023 19:18:45 +0000 https://blogs.perficient.com/?p=349746

Nearly two decades ago (has it already been that long?), I successfully transitioned my career which was steeped in financial services to a sole focus on the insurance industry. Throughout this period, my experiences within the insurance sector have spanned finance, strategy, operations, and consulting services. I firmly believe that this industry serves a noble purpose, safeguarding against risks that might otherwise jeopardize the well-being of individuals, families, and businesses.

Itc Cover Photo

ITC: Paving the way for the future of insurance

My excitement to attend the InsureTech Connect (ITC) event earlier this November was fueled by the anticipation of witnessing the convergence of like-minded individuals, discussing and debating the future of insurance.

During my career, I have witnessed the growth of friendships, the transformation of companies, and the ever-constant evolution of technology. Despite these changes, the passion for fulfilling the industry’s purpose remains unwavering to my colleagues and I. Departing ITC, I am more inspired than ever about the prospects that are ahead for the industry.

Itc Photo Two

Leaving the annual gathering of insurance professionals, I reflect on a few key takeaways:

  1. Data Fabric: While it may sound cliché, it is crucial to recognize that data is NOT the new oil. Unlike oil, data is a sustainable and renewable asset. The insurance industry relies on data—from valuing risks to managing and ensuring proper protection. Continued investment in data is essential not only for full understanding but also for knowing how to respond. Predictive analytics have the potential to transform our industry into a trusted partner, assisting insured individuals in mitigating and managing risks proactively.
  2. Ecosystems: A connected ecosystem that integrates internal and external partnerships, processes, and technologies allows modern insurance operations to amplify their impact in the marketplace. Digital ecosystems can enhance speed, openness, value, and consumer focus.
  3. Artificial Intelligence (AI): Undoubtedly, the hottest topic of the week was AI, specifically generative AI. Generative AI is poised to be revolutionary in our industry, offering decision-making capabilities and greater operational efficiencies; I’m excited about the transformative potential!

Being part of Perficient – a global digital consultancy transforming how the world’s leading enterprises and biggest brands connect with customers and grow their businesses – magnifies my excitement toward the future of insurance. 

Perficient will actively collaborate with industry leaders in strategy sessions to chart the most efficient and successful path forward. Our team of subject matter experts and technologists will implement industry solutions, and we look forward to actively sharing those numerous successes in these dynamic and trusted spaces.

Perficient will champion your insurance practice!

Interested in how our insurance and financial services can benefit your business today? Contact us and let’s work together to fortify your business against risks, streamline operations, and chart a course for growth.

]]>
https://blogs.perficient.com/2023/11/20/transformative-trends-a-glimpse-into-the-future-of-insurance-post-insuretechconnect/feed/ 1 349746
Sitecore: The Power of Caching https://blogs.perficient.com/2023/08/30/sitecore-the-power-of-caching/ https://blogs.perficient.com/2023/08/30/sitecore-the-power-of-caching/#respond Wed, 30 Aug 2023 19:40:29 +0000 https://blogs.perficient.com/?p=343719

Website performance plays a crucial role in delivering a great user experience. Slow-loading websites can lead to frustrated users, higher bounce rates, and lost opportunities. I’ve written about performance in the past, specifically about diagnosing Sitecore performance problems. Sub 500 millisecond time-to-first byte is hugely important and there are a number of ways to get there, but one of the most effective strategies to optimize website performance is through caching. Caching enables websites to serve content faster, usually from a server much closer to the end user, reducing load times and improving overall user satisfaction. In this blog post, we’ll explore how caching works and delve into the ways it helps enhance website performance. We will also discuss some Sitecore specific considerations.

Understanding Caching

Caching is a mechanism that stores and delivers frequently accessed data, such as web pages, images, stylesheets, and scripts, in a storage location called a cache. When a user visits a website, the browser or server checks the cache first to see if the requested data is already stored there. If it is, the cached version is delivered to the user, eliminating the need to fetch the data from the server. This significantly reduces the time it takes to load the web page and also reduces load on the web server.

Types of Caching

Browser Caching

Browsers store resources like images, stylesheets, and scripts in a local cache on a user’s device. When the user revisits the website, these resources are loaded from the cache, resulting in faster load times. The duration of browser caching is controlled through HTTP headers, ensuring resources are periodically refreshed to stay up-to-date. Out of the box, Sitecore is not optimally configured to properly cache assets in the user’s browser. If possible, the recommendation would be to set the Cache-Control header value to a huge value (max-age=31536000,immutable) along with unique file names (and no versioning for media assets).

Server-Side Caching

Websites can employ server-side caching to store dynamically generated content in a cache. When a user requests a particular piece of content, the server retrieves it from the cache instead of generating it from scratch. This is especially useful for content that doesn’t change frequently, such as blog posts or product descriptions. Sitecore already has a server side caching built in. Sitecore comes out of the box with multiple caching layers (prefetch, data and item as examples) but the most important for non-headless Sitecore solutions is the output cache. Rendered HTML from a component or page is stored in the output cache so that Sitecore simply needs to serve the HTML directly from memory (cache). Properly utilizing output caching in Sitecore will make your website’s time-to-first byte significantly better.

Content Delivery Network (CDN) Caching

CDNs are distributed networks of servers that store cached copies of a website’s static assets. When a user accesses a website, the CDN serves the cached content from a server located closer to the user’s geographical location, reducing latency and improving load times. Out-of-the-box Sitecore doesn’t do a particularly great job with default configuration on media items. Do not version Sitecore media items and apply strong cache settings to aggressively cache media assets at the CDN.

Benefits of Caching for Website Performance

Faster Load Times

Caching significantly reduces the round-trip time needed to fetch resources from the server or external sources. This leads to faster load times and a smoother user experience. Studies show that even a one-second delay in load time can lead to a substantial increase in bounce rates.

Reduced Server Load

Caching reduces the load on web servers by serving cached content instead of generating it for every user request. This scalability is particularly valuable during traffic spikes.

Bandwidth Savings

Caching reduces the amount of data that needs to be transferred between the server and the user’s device. This not only speeds up load times but also helps conserve bandwidth, which is crucial for users on slower connections or limited data plans.

Improved SEO

Website speed is a ranking factor for search engines like Google. Faster-loading websites tend to rank higher in search results, leading to increased organic traffic and better visibility.

Conclusion

Caching is the superhero for website performance optimization. By storing and serving frequently accessed content, caching minimizes load times, reduces server load, and ultimately enhances the user experience. Implementing caching strategies, whether through browser caching, server-side caching, or CDNs, empowers websites to deliver content quickly, resulting in happier users, higher engagement, and improved business outcomes. If you’re aiming to provide a top-notch online experience, harness the power of caching and watch your website soar to new heights of performance.

]]>
https://blogs.perficient.com/2023/08/30/sitecore-the-power-of-caching/feed/ 0 343719