Argil DX https://www.argildx.us Tue, 15 Jun 2021 11:46:29 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.1 https://www.argildx.us/wp-content/uploads/2019/05/cropped-ArgilDX-favicon-32x32.png Argil DX https://www.argildx.us 32 32 Exploring Developer Mode in Adobe Experience Manager Sites https://www.argildx.us/technology/developer-mode-adobe-experience-manager-sites/ https://www.argildx.us/technology/developer-mode-adobe-experience-manager-sites/#respond Tue, 15 Jun 2021 11:25:58 +0000 https://www.argildx.us/?p=8540 Have you noticed the developer mode in Adobe Experience Manager when you switch from edit mode to preview while authoring? Ever thought what is it for? Let’s explore what AEM Sites Developer Mode is and its uses in this article. What is Developer Mode in AEM Sites? Dev mode in AEM tells us distinctly how much time each module of the page is taking to render on the page. What are the ... Read more

The post Exploring Developer Mode in Adobe Experience Manager Sites appeared first on Argil DX.

]]>
Have you noticed the developer mode in Adobe Experience Manager when you switch from edit mode to preview while authoring? Ever thought what is it for? Let’s explore what AEM Sites Developer Mode is and its uses in this article.

AEM sites UI showing the different options in edit mode including developer mode
Fig: The Developer Mode can be found under Edit in AEM Sites.

What is Developer Mode in AEM Sites?

Dev mode in AEM tells us distinctly how much time each module of the page is taking to render on the page. What are the HTL (HTML Template Language) or JSP (JavaServer Pages) script(s) involved in rendering each component? What is location of each component in JCR (Java Content Repository)? It also has one-click button and links to edit all these. 

Sounds useful? 

Yes, these are parts of our day-to-day activities of diagnosing or updating components of pages. 


How to access the Adobe Experience Manager Developer Mode

To get the information mentioned in the above paragraph, all you have to do is just click on this developer mode under Edit and select the component you want to diagnose. 

As soon as you switch on the developer mode, the left panel will open along with time required to render that component or layout container. It will list out the component tree based on the component structure of your page. Then click on the parent component to open up and list all the child components, where we can see all the components categorized into parsys.

Please note: This time required is the server-side computational time and not the client-side rendering time i.e., the time required to resolve the script and compute the result and not the JavaScript which runs on the browser. 

For example, let’s see the Product Grid component of We.Retail home page. 

product grid component of We.Retail page within developer mode of adobe experience manager
Fig: Product grid component within developer mode of We.Retail home page.

Here, as we can see, 0.27s is the computational time of this component. 

Let’s look at each of the components in the product grid and find out what they represent.

the details section of the product grid component in developer mode of adobe experience manager
Fig: The details of the components in developer mode.

1. The first icon is for Details of the component, it will give all the scripts involved in this component.

2. The second icon opens up the CRX path of the component and the associated HTML/JSP file in the editor.

3. The third icon gives us the component details, like title, component group, creation time, etc. Along with this, it shows the list of all the pages where the same component is being used. (This could be useful in estimating the scope of regression and unit testing). 



error list in aem sites developer mode
Fig: Error list section in AEM Sites Developer Mode

Error Section in Developer Mode

Till now, if you are doing hand-on as well, you might have noticed an error section below the component list. This section shows the error produced by any component (if any).

You might have noticed sometimes we drop a component on a page and as soon as you author it or just drop it on page it vanishes. You can observe the reason for the same from here.

Few things to note about Developer Mode

1. It is only available in the touch-enabled UI (when editing pages).

2. It is not available on mobile devices or small windows on desktop (due to space restrictions).

3. It is only available to users who are members of the ‘administrators’ group.

4. It is by default enabled in author instances which are started without ‘nosamplecontent’ run mode. If it is required in Publish mode or in ‘nosampleconntent’ mode you can enabled it from Felix console configuration manager <host>:<port>/system/console/configMgr. There is a configuration with the name ‘Day CQ WCM Developer Mode Filter’ just check the checkbox in it. 

aem sites developer mode filter
Fig: AEM Sites Developer Mode filter.

Looking for an AEM development partner? Need help migrating a site to AEM? Or want a cool feature added to your AEM website?

Talk to us for all AEM services.

The post Exploring Developer Mode in Adobe Experience Manager Sites appeared first on Argil DX.

]]>
https://www.argildx.us/technology/developer-mode-adobe-experience-manager-sites/feed/ 0
Exceed Customer Expectations Online with Magento Commerce https://www.argildx.us/experience/exceed-customer-expectations-online-with-magento-commerce/ https://www.argildx.us/experience/exceed-customer-expectations-online-with-magento-commerce/#respond Fri, 22 Jan 2021 06:14:40 +0000 https://www.argildx.us/?p=8510 Magento is an online commerce platform with end-to-end commerce capabilities. Magento Commerce was born out of a mission to revolutionize online commerce with a unique approach – an open, agile and innovative approach. Let’s look at each of these factors that guides the Magento approach. Open Platform for Strong EcosystemMagento was built on the idea ... Read more

The post Exceed Customer Expectations Online with Magento Commerce appeared first on Argil DX.

]]>
Magento is an online commerce platform with end-to-end commerce capabilities. Magento Commerce was born out of a mission to revolutionize online commerce with a unique approach – an open, agile and innovative approach. Let’s look at each of these factors that guides the Magento approach.

Open Platform for Strong Ecosystem
Magento was built on the idea of creating an open ecommerce platform that is oriented towards nurturing a strong community of users, partners and contributors. As such, Magento Commerce allows easy product extensions as well as performance improvements.

Agile Platform for Quick Adaptability
Leverage the agile nature of Magento Commerce to keep up with new developments in technology, changing business models and evolving market dynamics to affect quick and seamless change in commerce experiences.

Innovative Product to Stay Ahead
The real advantage of Magento Commerce to businesses is the benefit of innovation across every area of online commerce. From inventory management to checkouts, Magento users stay ahead of competitors with ever improving features and functionalities.

Magento Commerce Advantages

Magento Commerce gives merchants the entire suite of features and functionalities they need to address the full range of commerce challenges.

  • Merchants get access to content creation tools to showcase their products as well as run campaigns. Add to this the marketplaces, ad networks and mobile centric design of Magento Commerce that enables them to design the way their shoppers discover, experience, and interact with their brand.
  • Delighting shoppers with exploration experience tailored for them is critical to the success of online commerce. With Magento, Merchants can successfully do this by easily managing product catalogs, merchandising, campaigns, promotions and personalization.
  • According to a research by Baymard among US adults, 21% of shoppers abandoned carts because of too long or complicated checkout process. Other reasons for shopper dropouts include inability to calculate total cost upfront, unreliable payment gateway, limited payment options and inefficient payment system. With Magento, merchants are able to avoid these by creating a smooth path to purchase with cart and checkout navigation tools and support for global commerce. An improvement in available payment options as shoppers get to choose how to pay for and receive their products with integrated shopping and payment capabilities.
  • What makes Magento Commerce truly special is the way it enables merchants to sell how they want to and from where they operate. A merchant can manage multiple sites, orchestrate omnichannel commerce between online and offline touchpoints, and sell to any type of buyer over a single platform.
End-to-end Commerce Capabilities

The Magento Commerce application delivers the online commerce capabilities that empower merchants and businesses to build the shopping experiences that customers desire. This online shopping platform is deployed on a managed-cloud infrastructure full of pre-integrated cloud services, which offers benefits like built-in security, performance monitoring and optimization, and managed cloud. This cloud infrastructure makes Magento Commerce high performing, scalable and secure. All these without compromising on flexibility, which makes this e-commerce platform so powerful.

The Magento commerce cloud infrastructure also includes cloud development tools that simplify the deployment process. This means agile and rapid development and testing for quick go-to market while encouraging good deployment practices and streamlining the build and deployment process for all environments.

Finally, Magento Commerce is backed up by 24×7 customer support, technical onboarding assistance, and customer success management. Merchants also get business intelligence tools that power data-driven decision making to accelerate growth.

Magento Marketplace: All the e-Commerce extensions you need

Magento was founded on the principle of openness. It has been designed to help businesses benefit from extension of platform capabilities. The Magento Marketplace is full of different third-party solutions that add to the functionalities of Magento Commerce to address the wide spectrum of challenges faced by merchants.

How Magento Commerce has performed over the years

With the above principles in place, Magento has become a global force in commerce. Have a look at the figures below for more details.

Future Ready with Magento Commerce

Commerce has taken a sharp turn towards the digital and online path in 2020 because of the pandemic. This has only added to the growing e-commerce trend. So with many businesses scrambling to fulfil orders leave alone meeting customer expectations, they have been found wanting in innovating for sudden turn of events. With a commerce platform like Magento that is rich in features and functionalities as well as offering endless flexibility, businesses can easily adapt to changing business scenario. Whether it’s B2B, B2C or D2C businesses conducted online, offline, or offline facilitated by digital touchpoints, there is a better ecommerce solution with Magento.

Argil DX is an Adobe Silver Solution Partner and a Magento Business Solution Partner. With expertise in implementing custom solutions that elevate customer experience, we’ve been recognized for our work and innovation. Talk to us to learn more about our Magento offerings.

The post Exceed Customer Expectations Online with Magento Commerce appeared first on Argil DX.

]]>
https://www.argildx.us/experience/exceed-customer-expectations-online-with-magento-commerce/feed/ 0
Customer Experience Management Is More Than Shiny Technology https://www.argildx.us/experience/customer-experience-management-is-more-than-shiny-technology/ https://www.argildx.us/experience/customer-experience-management-is-more-than-shiny-technology/#respond Mon, 17 Aug 2020 11:15:29 +0000 https://www.argildx.us/?p=7946 Is technology becoming synonymous with digital transformation? Are a bunch of marketing jargons replacing Customer Experience Management or CXM? These are questions that need to be explored in an age where digital growth is influencing businesses and lives, and raising customer expectations every day. Today, customers aren’t happy to give even a dime for a ... Read more

The post Customer Experience Management Is More Than Shiny Technology appeared first on Argil DX.

]]>
Is technology becoming synonymous with digital transformation? Are a bunch of marketing jargons replacing Customer Experience Management or CXM? These are questions that need to be explored in an age where digital growth is influencing businesses and lives, and raising customer expectations every day. Today, customers aren’t happy to give even a dime for a product or a service unless they have similar, fulfilling experiences across all interactions on all channels. Whereas many organizations have the misconception that shiny technology is the only digital foundation necessary for effective customer experience management.

In 2020, customer experience has overtaken price and product as the single most important factor for customer loyalty.

Customers 2020: A Progress Report by Walker

For business leaders and leading enterprises across industries, customer experience or CX has become an extremely important facet of business. So much so that business growth is now being driven by experiences. This realization has given birth to new concepts like experience-driven business (EDBs) and experience-led business (ELBs), and very quickly made them popular criteria for successful business models. As businesses increasingly begin to revolve their activities, be it marketing, sales approaches or operations, around customer experience, there has also been a growing emphasis on CXM.

Customer experience management (CEM) is the practice of designing and reacting to customer interactions to meet or exceed their expectations, leading to greater customer satisfaction, loyalty and advocacy.

Gartner

Digital and its influence has largely been responsible for bringing in this concept of customer experience management. To be able to design and react to customer interactions in a timely and accurate manner involves effective use of analytics and customer segmentation. Whether it is an online or offline business, digital touchpoints are an effective way of delivering well-crafted experiences. Creation and management of experiences is also something that digital has wildly popularized. So, every business striving to become an experience business will need to have a strong digital foundation that aligns with their business goals.

The Annual Digital Trends Report conducted and produced by Econsultancy in collaboration with Adobe found Customer Experience as the most exciting business opportunity for B2Bs in 2020.

However, increasingly we see a surge in digital adoption without a well-planned roadmap for its implementation and application. Many business leaders have been forced to half-heartedly buy in to digital transformation initiatives. Simply because they feel the need to keep up with their competitors or want to be included in the list of digital friendly organizations. These are both good business improvement thoughts but without expert consulting or an experienced implementation partner who can deeply understand their business goals (both short-term and long-term) and design digital transformation strategy, they have been left with disjointed pieces of technology that serve little or no purpose. There are also increasing cases of organizations purchasing licenses for the most popular and widely used software without considering its purpose and suitability.

two pebble stacks kept side by side to represent success comparison

Between 2010-2015, CX leaders grew 6x faster than CX laggards.

There are so many apps and chatbots that do not serve any real purpose. Most of them spew out digital marketing jargons to the customer without enabling the experiences those jargons represent. A common example would be a situation where you’re trying to get some quick information from an airline website chatbot but it keeps telling you about itself and what it does without providing you answers to your queries. It was simply not designed to really understand customer queries and concerns. Another case would be if you’re being pestered repeatedly by different sales executives from the same insurance company to get you to buy the same policy even after you’ve said NO over and over. What happened in this scenario? Maybe the data collected by the first sales executive was not recorded or the company simply doesn’t have a unified data system from where other executives could know that you’ve declined to buy a policy from them. In both cases, the chatbot and the sales executives were excellent medium for the two companies to put forward their best experiences to you, but they ended up doing the opposite. They had data but they weren’t equipped to turn it into useful insights to facilitate customer satisfaction.

86% of those who received a great customer experience were likely to repurchase from the same company.

Will the latest and the market-termed best technology be enough to make you survive and thrive in a situation like the Covid-19 crisis? Businesses and organizations must choose good experience delivery over shiny tech. There must be a clear strategy for a CXM model that serves customers well. Of course, technology is an important part of becoming digital first or offering that seamless, consistent experience across channels, but technology can only be an enabler. A solid digital foundation is required, and businesses need to realise the importance of innovating their existing processes. You will have to build portals, tools and apps with a strong and flexible backend. Customer experience solutions can be architected only when there is clarity on the requirements by studying user journey and behaviour without being distracted by technology. The focus must stay on the customer and enterprises must be able to provide them with what they need, when they need it the most.

62% of companies will now invest to meet the changing needs of customers.

Customer behaviour is always changing but there are times when there are dramatic shifts. In 2020, businesses across all industries have been required to pivot to give customers the experiences that they need now when they are in self-imposed isolation or quarantine. Some have come out with clear winning strategies and evolved with the situation. While others have been stuck with the experiences they were successful with months before coronavirus brought in a new normal. So, for CXM to really make sense, enterprises need to put the customer first and work on providing good, consistent experiences. There must be an all-in approach, and a balance of Business-Experience-Technology must be found to ensure customer experience management is more than just technology and jargons.

Are you a business owner or a decision maker interested in making your CXM model future ready? Or are you just getting started on customer experience and looking for experts to talk to? Let us know your requirements around CXM to speak one-on-one with one of our customer experience consultants.

The post Customer Experience Management Is More Than Shiny Technology appeared first on Argil DX.

]]>
https://www.argildx.us/experience/customer-experience-management-is-more-than-shiny-technology/feed/ 0
Video Buffer Optimization in AEM https://www.argildx.us/technology/video-buffer-optimization-aem-seamless-video-playback-streaming/ https://www.argildx.us/technology/video-buffer-optimization-aem-seamless-video-playback-streaming/#respond Wed, 29 Apr 2020 13:00:00 +0000 https://www.argildx.us/?p=7751 Video is one of the most effective and easiest mediums of communicating information to your audience. If you’re looking to use this format of communication on your website, you would want it to work as seamlessly as possible. Video buffer optimization can help you considerably improve the video playback and streaming capabilities on your website. ... Read more

The post Video Buffer Optimization in AEM appeared first on Argil DX.

]]>
Video is one of the most effective and easiest mediums of communicating information to your audience. If you’re looking to use this format of communication on your website, you would want it to work as seamlessly as possible. Video buffer optimization can help you considerably improve the video playback and streaming capabilities on your website. Before diving into video buffer optimization and its implementation in AEM, let’s take a look at why it is required.

In the early days of the internet, web browsers played videos via embedded video players like RealPlayer and Windows Media Player. This required custom codecs and browser plugins. The trend then moved on to Flash and Quicktime, which slowed down our browsers and sometimes caused security concerns.

It took more than a decade to create <video> tag and achieve browser support for it. Today, most of the web is using <video> tag and as a result there are fewer browser crashes, less memory used, and smoother playback.

Basic <video> Tag Usage

Let’s look at an example of the use of <video> tag:

<video width="640" height="480" poster="sample-video.jpg" controls autoplay preload>
 <source src="sample-video.webm" type="video/webm">
 <source src="sample-video.ogv" type="video/ogg">
 <source src="sample-video.mp4" type="video/mp4">
</video>
Online Video Buffer

All these worked fine until we faced issues with <video> tag implementation. The function of this tag is to download all video data on page load by default. However, if the preload attribute is set to none, video will not be downloaded by the browser on page load but only when a user clicks or plays the video. So, we are just delaying the process and not allowing a seamless video playback and stream. Also, what if we want the video to be downloaded in packets or chunks and save bandwidth e.g. online video buffering.

Why do we need video buffer optimization?

The HTML5 <video> tag is not flexible enough if you need to add extra features and customizations on it. For such purposes you will need to use third-party APIs. Video.js is one such API that provides extra features and theme options on our traditional <video> tag.

If we increase a video size, then the time taken by the video to play or load will also increase. So, if we use a video of bigger size on a slow internet connection and we want to provide smoother experience to end user, we will have to optimize the video buffer process.

So, the workaround for this problem would be ‘play, pause and progress’. This means every time the progress event is triggered, we can check if the video is buffered by some percent (say 10%). It will continue buffering only “what’s needed” when the video starts playing. That means the video will never be fully buffered.

Steps for Implementing the Video Buffer Optimization

Let’s take a look at how to implement video buffer optimization in AEM to allow a more seamless video playback and stream.

Player.on("progress", function () {
   // Get Current Video seek time.
    var currentTime = Player.currentTime();
    
    if (lastTime !== currentTime) {
        lastTime = currentTime;
    } else if (myPlayer.paused() === false) {
         // (this.paused() will return true even if it's buffering, so we have to check the time advancement)
        // Video is buffering/waiting.
        buffered = false;


        bufferPause = true; // To indicate pause was initiated by this buffer check

        lastBuffer = Player.bufferedPercent(); // To get the buffer percent of video.
        // This buffer greater then 10% of the video. (0.1 = 10%)
    } else if (!buffered && (Player.bufferedPercent() - lastBuffer > 0 || Player.bufferedPercent() > 0.1)) {
        buffered = true;


        // Resume playing if an additional 10% has been buffered.
        if (bufferPause) {
            Player.play();
        }
    }
})

So, now you can get working on providing smooth video playback or streaming for your users on your AEM website. Feel free to write to us for any queries on this video buffer optimization or anything related to AEM.

Contact us for AEM Integrations and Customizations

While AEM comes packed with features and functionalities that make the life of developers and marketers easier, it can be enhanced to offer top-notch experiences to your users. Learn more about such AEM personalizations that can enhance your users’ digital experience from certified Adobe Experience Cloud experts at Argil DX.

The post Video Buffer Optimization in AEM appeared first on Argil DX.

]]>
https://www.argildx.us/technology/video-buffer-optimization-aem-seamless-video-playback-streaming/feed/ 0
Enhance Your AEM Website with Voice Assistants https://www.argildx.us/experience/empower-your-adobe-experience-manager-website-with-voice-assistants/ https://www.argildx.us/experience/empower-your-adobe-experience-manager-website-with-voice-assistants/#respond Tue, 17 Mar 2020 11:40:54 +0000 https://www.argildx.us/?p=7701 There was a time when it felt weird speaking to one’s device in public. Those were the days when voice assistant was still largely a concept that had just started to take shape. Cut to the present and we can’t imagine doing some things manually anymore! We’re so used to pulling up Alexa, Siri or ... Read more

The post Enhance Your AEM Website with Voice Assistants appeared first on Argil DX.

]]>
There was a time when it felt weird speaking to one’s device in public. Those were the days when voice assistant was still largely a concept that had just started to take shape. Cut to the present and we can’t imagine doing some things manually anymore! We’re so used to pulling up Alexa, Siri or Google Assistant for anything even as trivial as playing songs or turning off the lights. It’s truly the future.

Nowadays, it is perfectly normal to hear someone speak to their device.

“Alexa, what’s the weather like today?”. Then, we ask Alexa to set our room temperature accordingly.

Siri has become the personal assistant for some and they rely excessively on it to take care of their daily schedule and even text or make calls. We are using our voice to the maximum with the help of voice interface technology.

Every business aims at expanding its user base through optimum use of the digital platform. Now, AEM has already been ruling the CMS market by enabling businesses to scale per requirements, whereas voice assistants are currently the talk of the town. With both being the contact point for most of the user online experience, connecting them would significantly boost user engagement.

A third of American consumers now own an Amazon Echo, Google Home, or Apple HomePod, according to new research by Adobe. But by the end of the upcoming holiday season, that number will hit almost 50%.” — Forbes (September 2018). 

AEM and Alexa (or any other voice assistant) are not a very conventional duo if we look to combine the capabilities of the two. Both have their own varied capabilities and use cases. AEM on one hand enables marketers to seamlessly edit, pull and push content onto their websites ramping up the audience experience, and Alexa on the other hand is allowing people to talk with technology.

However, if we look at the broader picture, both are presenting content to audiences, though through different mediums. With the way virtual assistants are exposed, it is now possible to connect the two content providers. Alexa and Google Assistant provide the capability to make new skills (actions the voice assistants can perform). Developers can easily complement the existing voice assistants with new capabilities of their choice or what the business demands in their AEM website.

AEM with a heart sign and voice assistants Alexa and Okay Google

Let’s have a look at the use cases: 

1. You are a news firm publishing articles onto the website every hour of the day. The consumer will now have access to latest news with voice search because it’ll be exposing the same articles via Alexa/Google Assistant. “Hey Alexa, what’s the latest news on THEBESTNEWSCOMPANY.com”.

2. Employee Human Resource Management System. “Hey Google, do I have any leaves left?”.

3. Restaurant Business. “Hey Alexa, is there something special cooking at THE BEST RESTAURANT”

4. Travel Booking Firm. “Hey Google, are there any rooms left in THE BEST HOTEL in THE BEST TRAVEL PLACE.

5. As a website admin you might want to know the replication status of content pages or read out reports from the website dashboard. “Hey Alexa, is the new AEM-Voice Optimization page published yet?

What we are trying to achieve opens a whole new set of opportunities and use cases for developers and the audience to play with. Let us know how Alexa (or Google Assistant) can fit into your domain and we can assist you in exploring the best of both worlds (AEM and Voice Assistants). 

The post Enhance Your AEM Website with Voice Assistants appeared first on Argil DX.

]]>
https://www.argildx.us/experience/empower-your-adobe-experience-manager-website-with-voice-assistants/feed/ 0
AEM Welcomes the Mighty Microservices https://www.argildx.us/technology/microservices-architecture-with-osgi-framework-modularization-aem/ https://www.argildx.us/technology/microservices-architecture-with-osgi-framework-modularization-aem/#respond Thu, 05 Mar 2020 11:13:35 +0000 https://www.argildx.us/?p=7648 The idea of programmers aiming at designing applications that are modular in concept has been around the corner since the inception of application development. The concept of modularization has however evolved over decades only to deliver superior inventions. When we talk about Adobe Experience Manager (AEM), it is also equipped to serve modular applications (meaning ... Read more

The post AEM Welcomes the Mighty Microservices appeared first on Argil DX.

]]>
The idea of programmers aiming at designing applications that are modular in concept has been around the corner since the inception of application development. The concept of modularization has however evolved over decades only to deliver superior inventions.

When we talk about Adobe Experience Manager (AEM), it is also equipped to serve modular applications (meaning that it is capable of supporting a microservices architecture), thanks to OSGI (Open Source Gateway Initiative). OSGi “provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployedThis allows easy management of bundles as they can be stopped, installed, started individually. The interdependencies are handled automatically.” (Read more) All these work well, in fact very well.

AEM based applications are often complex, consisting multiple complex bundles that individually connect to cumbersome APIs and what not. Such architectures seem quite natural and obvious in AEM-based systems — everything is deployed on a single instance and as and when you want to scale horizontally, you add another instance. Simple and it works, at least in theory.

In practice, some parts of an application are used far more extensively than others and hold far more resources. Adding an entire AEM instance to scale a particular module doesn’t make sense when the TCO for one instance is already high. In totality, traditional AEM applications end up being a monolith.

Comes microservices to the rescue. You scale a module stored on a different server. Where is AEM Server? Well, it’s still there, acting as another service.

Argil DX has developed F-AI-shion Police with the above approach.

F-AI-shion Police 

F-Ai-shion police architecture showing the use of multiple service components in AEM
Fig: High-level architecture of F-AI-shion Police

Here, we’re invoking “Object Detection Service” from UI (JavaScript) of our page component. 

The Object Detection Service in this tool reside on a server of their own. You scale according to your needs making cost-effective decisions. These architectural decisions are of great business value.

What are your opinions on microservices for AEM? Do let us know. 

The post AEM Welcomes the Mighty Microservices appeared first on Argil DX.

]]>
https://www.argildx.us/technology/microservices-architecture-with-osgi-framework-modularization-aem/feed/ 0
How to Implement Full Software Testing Life Cycle (STLC) and Apply Testing Techniques https://www.argildx.us/technology/how-to-implement-full-software-testing-life-cycle-and-apply-testing-techniques/ https://www.argildx.us/technology/how-to-implement-full-software-testing-life-cycle-and-apply-testing-techniques/#comments Tue, 18 Feb 2020 08:57:29 +0000 https://www.argildx.us/?p=7627 Software Testing trends over the decades As we can see in the above images, the trend and competency of software testing have changed over the years. QA testers are now more technical and process oriented. In these changing times, testing has grown beyond just finding bugs into a wider scope. It is generally performed right from the inception of ... Read more

The post How to Implement Full Software Testing Life Cycle (STLC) and Apply Testing Techniques appeared first on Argil DX.

]]>
Software Testing trends over the decades
conversation between product owner and developer over the importance of software testing
conversation between product owner and developer about software testing reducing bugs
product owner asking testers to work harder to improve software

As we can see in the above images, the trend and competency of software testing have changed over the years. QA testers are now more technical and process oriented. In these changing times, testing has grown beyond just finding bugs into a wider scope. It is generally performed right from the inception of the project when the requirements are not even finalized.

Since testing processes have been standardized after the year 2000, it also has its own lifecycle just like the development team. In the world of testing, we call that lifecycle as STLC which will be explained in the following section.

Let’s start! 

lines of codes on a screen
What is a lifecycle in software testing?

A lifecycle is nothing but the sequence of changes from one form to another form. These changes generally happen to any tangible or intangible things. Every entity has a lifecycle from its inception to retirement.

In a similar way, every software is also an entity. Testing also has a sequence of steps which should be executed in a definite sequence just like developing a software.

The process of executing the testing activities in a systematic and planned manner is called testing life cycle. 

What is Software Testing Life Cycle (STLC)?

STLC – Software Testing Life Cycle refers to a testing process which has certain steps to be executed in a sequence to ensure that the quality goals have been met in each phase. In STLC process, each activity or phase is carried out in a planned and systematic way. Every phase has different goals and deliverables. Different organizations might have different phases in STLC; however, the basis remains the same.

Below are the basic phases of STLC:

  1. The Requirements phase – The teams are involved in finalizing the initial draft of requirements.
  2. Planning Phase – Planning the resources and activities which will be involved in the project.
  3. Analysis phase – Depicting the test scenarios and requirement clarifications if any.
  4. The Design Phase – Designing of all the documents which will be used in the project.
  5. Implementation Phase – Test writing and its prioritization and preparation of sanity and regression suites.
  6. Execution Phase – The main phase where the actual execution takes place.
  7. Conclusion or Closure Phase – Submit the metrics and reports. UAT with clients or closure activities to ensure the exit criteria is met. 

    Let’s take a look at each phase in detail.
1. Requirement Phase: 
people huddles around a table with stationery, drinks and devices

During this phase of STLC, testing teams analyze and study the requirements. The testers usually conduct meetings to discuss the requirements with the business analysts’ team and all the stakeholders to see what is testable and what are the areas of focus. This phase of STLC helps to identify the scope of the testing. If any feature is not testable or has a dependency, then QA needs to communicate the same during this phase so that the mitigation strategy can be planned. It’s a good practice to create diagrams and flow charts to understand the requirements and the user journey with the development team. 

2. Planning Phase
a person's hands taking notes in a diary over a table representing the planning stage in software testing

In general, the test planning is supposed to be the first step of the testing process. In this phase, we identify the various activities and resources which would help to meet the testing objectives. It is in this phase where the testing team decides the reporting structure and the tools to be used like Defect Management Tool, Test Case management tools, automation tools, etc. Test plan and test strategy document are also created in this phase and how to implement this practice is explained in the 6th QA practice of this article

3. Analysis Phase
a man looking a notes pinned on a wall and analyzing

This STLC phase, in my opinion, should be the most important phase as it defines “WHAT” to be tested. We must identify the test scenarios through the requirements document, product risks and other test basis. The test scenarios should be traceable back to the requirement.

How to write efficient test scenarios are explained here

4. Design Phase
silhouette of woman experiencing VR content in front of a tiled display of a car illustration

In this phase, we define the various ways and mediums through which we will conduct the test. This phase involves the following tasks: 

  • Detailing the test scenarios. Breaking down the test scenarios into multiple sub-conditions to increase coverage.
  • Identifying and setting up the test data
  • Identifying and setting up the test environment or finalizing the devices and browser list on which the testing will be performed
  • Creating the RTM document, which is the requirement traceability metrics helping the Test scenarios and test cases to be traced back to the requirements
  • Create the test coverage metrics to depict the coverage of the functionality or module. This can be optional as the coverage can be extracted from the RTM as well. 
5. Implementation Phase
man releasing a dart at the target after aiming

This STLC phase is for creation of the detailed test cases from the test scenarios created earlier. It is a good practice to give priority to each test case which can help the test team to extract the priority items to create Sanity and Regression suite. Also, please make sure that these test cases are duly reviewed by all the stakeholders and product owners and getting their sign-off is the most important aspect of a successful project. Involve and get your clients to interact more in this phase to get your test cases and test scripts in automation reviewed and signed off. 

6. Execution Phase
the word 'now' written across an upward trending arrow and circled with red

As the name suggests, this is the phase where the actual execution takes place. Before starting with the execution, we need to make sure that our entry criteria are met. The Entry criteria needs to be finalized in the Test planning phase and should be mentioned in the Test Strategy document which should be signed off before starting this phase.

Execute > Log defects > Track your progress > Update RTM and test cases when you find bugs while doing exploratory testing.

7. Conclusion or Closure Phase
a cartoon of a human standing near a stop sign post

This is the end of one software testing life cycle which concentrates majorly on the exit criteria and reporting, and has a retrospective meeting to depict lessons learnt. The reporting structure can be decided in the Design phase and should be used diligently in this phase to communicate the progress and get the sign-off on the Exit criteria. UAT (User Acceptance Testing) should also be conducted in this phase with the product owners to get their sign-off and we also need to discuss if there are any P1 issues remaining and a fix plan for the same if any. Retrospective meetings are also an essential part of each lifecycle as it helps the whole project team in understanding “What went wrong” and “What went right” to help the team to improve from the next cycle. 

Summary of the STLC Phases

Let’s try to summarize Software Testing Life Cycle (STLC) in a tabular form: 

S.No  Phase Name  Entry Criteria  Activities Performed  Deliverables 
Requirements  Requirements specification document  
 
Application design document 
 
User acceptance criteria document 
 
Brainstorming on the requirements. Create a list of requirements and get your doubts clarified.

Understand the feasibility of the requirements – whether they are testable or not. 
 
If your project requires automation, carry out automation feasibility study.
RUD (Requirements understanding document) 
 
Testing feasibility report 
 
Automation feasibility report  
Planning  Updated requirements document 
 
Test feasibility reports 
 
Automation feasibility report 
 
Define the scope of the project
 
Do the risk analysis and prepare the risk mitigation plan 
 
Perform test estimation
 
Determine the overall testing strategy and process
 
Identify the tools and resources and check for any training needs
 
Identify the environment
 
Test Plan document
 
Risk mitigation document
 
Test estimation document
 
Analysis  Updated requirements document 
 
Test Plan document 
 
Risk Document 
 
Test estimation document 
 
Identify the detailed test conditions  Test conditions document
Design  Updated requirements document 
 
Test conditions document 
 
Detail out the test condition   
Identify the test data 
 
Create the traceability metrics 
 
Detailed test condition document 
 
Requirement traceability metrics 
 
Test coverage metrics 
 
Implementation  Detailed test condition document  Create and review the test cases

Create and review the automation scripts
 
Identify the candidate test cases for regression and automation

Identify and highlight priority to extract test cases for Sanity and Regression suite
 
Identify/create the test data
 
Take sign-off of the test cases and scripts
Test cases

Test scripts
 
Test data
Execution  Test cases 
 
Test scripts 
 
Execute the test cases 
 
Log bugs/defects in case of discrepancy 
 
Report the status
Test execution report 
 
Defect report 
 
Test log and Defect log 
 
Updated requirement traceability metrics  
Conclusion  Updated test cases with results 
 
Test closure conditions 
 
Provide the accurate figures and result of testing 
 
Identify the risks which are mitigated 
Updated traceability metrics
 
Test summary report

Updated risk management report  
Closure  Test closure condition 
 
Test summary report 
 
Do the retrospective meeting and understand the lessons learnt  Lessons learnt document
 
Test matrices 
 
Test closure report 

You can also read our post on improving website performance here. Write in to Argil DX to learn more about how we practice rigorous QA testing in agile software delivery.

Argil DX is a leading implementer of AEM and other solutions in the Adobe Experience Cloud. Contact us for more on our services.

The post How to Implement Full Software Testing Life Cycle (STLC) and Apply Testing Techniques appeared first on Argil DX.

]]>
https://www.argildx.us/technology/how-to-implement-full-software-testing-life-cycle-and-apply-testing-techniques/feed/ 1
7 Best QA Testing Practices for Agile Software Delivery https://www.argildx.us/technology/best-practices-qa-testing-agile-software-delivery/ https://www.argildx.us/technology/best-practices-qa-testing-agile-software-delivery/#respond Mon, 10 Feb 2020 09:28:51 +0000 https://www.argildx.us/?p=7603 The best QA testing practices are still in demand amongst many organizations. QA teams are always looking to develop the best strategy to improve efficiency and deliver top quality products to stakeholders.  Testing teams, from mobile to software to CMS website, in various projects are adopting the Agile process. While the Agile methods have helped in improving the profile of ... Read more

The post 7 Best QA Testing Practices for Agile Software Delivery appeared first on Argil DX.

]]>
The best QA testing practices are still in demand amongst many organizations. QA teams are always looking to develop the best strategy to improve efficiency and deliver top quality products to stakeholders. 

Testing teams, from mobile to software to CMS website, in various projects are adopting the Agile process. While the Agile methods have helped in improving the profile of testers in many ways, they have also raised questions. The questions are specifically about being the most effective in short sprints to deliver a quality product. 

At Argil DX, we emphasize on client-focused delivery wherein we study the client’s business requirements and decide the best QA testing practices for agile software development. 

Let’s start with a look at some of the best QA testing practices enabling us to deliver quality software products to clients. These practices can be effective in helping your team deliver quality products. 

1. Communication
a man holding a can with a thread and talking into it for communication
No matter the mode of communication, it should be effective and enhance collaboration.

A general challenge every QA team faces is maintaining flawless communication between all the parties involved in a project, i.e. developers, management and customers. An effective communication with the help of a process to follow and maintain helps in productive collaboration. Simple examples of communication include creating a model ticket, establishing code review procedures and clearing labeling schemes. Most teams fail to make proper use of available tools to have an effective communication. This in turn raises issues like sudden changes in the code or a minor change in the requirement that wasn’t documented or mentioned in the user story. 

Tickets in Pivotal Tracker or Defect Management Tools like JIRA are fundamental part of the best QA testing practices at Argil DX — we use them all day, every day. Whether you’re describing a bug or a feature, ensure that the ticket you create is described in a detailed and easily understandable manner.

It’s the ticket creator’s job to give the exact details necessary to address the ticket – the title or summary, the body or description, the steps to reproduce the labels if required. It should clearly state the problem and/or the expected outcome. 

When creating a ticket, you can use sub-tasks if you feel that it’ll be helpful in breaking up the main task to create smaller tasks that are easier to achieve. Remember, never create an incomplete ticket. Sometimes, tickets are prepared hurriedly and on the go during a meeting or sanity testing and require more descriptions to be added later. That’s OK. However, it’s a common scenario where the description section is simply skipped over because it is assumed the title will infer the outcome. 

Every time you create a ticket ask yourself the following questions before completing. 
a. Will someone else easily understand this ticket? 
b. Did you provide the detailed information and your own insight? 
c. Could you easily give this ticket to a QA team member from another project and would he or she still be able to check it without any extra explanation? 

If you answer these questions with an emphatic yes, especially the last one, then it’s a good sign that the ticket is ready for the world.

Lastly and most importantly, always keep your tickets up to date. Always add information about changes in the project, even if they are small ones. For example, if you decide to change the content, mention it. Remember your QA pays attention to detail and after noticing the updates, they will decide if the particular changes were intended or not. If a new mockup is ready, always replace the outdated file with the latest version. 

2. Testing to meet the usability or UX standards your customers expect 

We believe in usability testing and like to find even the simplest of usability flaws in a software. However, on looking closer we find that the software was delivered by the development team without understanding the requirements. The issue is then classified as “Worked as designed.”

This is where we must communicate more with our clients and understand what the best user experience will be, by keeping in mind the type of users who will be using the software and some day-to-day activities conducted on that software/website/application.

The most common thing in all top-notch testers is their laser-like focus on the user experience. It’s far too easy for testers to get lost in the weeds of test cases and forget about the actual end user, however this is a fatal mistake.

QA graph for usability and functionality testing

We’ll never be able to catch every weird, obscure bug, but there are always some design elements where they tend to lurk. By focusing our testing efforts on some of the following areas — or at least not neglecting them — we can catch more issues before our customers do:

a) Too many fields on a single page
Your end users are probably doing multiple things at once, so if you give them more than 10-15 fields to enter before they can save, it is an issue. You can suggest using a multipage form or a method for the user to save a transaction in a temporary state. The idea is to create more user-friendly design and workflow of that module.

b) Authoring experience in CMS website
So many companies have a separate team of content authors, and they are always putting content into the website daily. In scenarios like these, the content authors become your end users. It becomes imperative for any QA team member to put themselves into their shoes while testing a component and suggesting a change in the authoring experience. The authoring of any page or component should be easy to understand and the most important fields or options to be highlighted first and then user should move to the less important authoring fields.

c) User journey in a software, website or application
This is a very important area of focus while testing any product as this is the foundation on which user experience or usability was introduced in the world of QA. There are many researches and reports of applications with good concept and idea failing in the market because of bad user experience caused by an unsatisfactory user journey. The user journey should be extremely simple and easy to understand with desired results displayed at every step of the way. Otherwise, the user gets exhausted because they are just selecting options and nothing relevant to their search is displayed.

metal building structural framework
A proper testing framework enables swift agile software delivery.
3. Build an exciting framework of testing approach: 

QA team can come up with new testing strategy in the agile world of short sprints to deliver the quality product. Some of the testing approaches can be:

a) QA team should develop a healthy relationship with Business Analysts.
b) Ensure that every user story is specific to what you want to tell the user. It should also be testable and include an acceptance criteria.
c) Don’t ignore non-functional testing such as load, performance and security testing. Make sure that we do both functional and non-functional testing from the very start of the project.
d) Build meaningful end-to-end test scenarios by utilizing trends, data and analytics from the existing product to gather information about user activities and user journeys through the application.
e) Build a strong testing/QA practice which drives development. Define an Agile QA Testing Strategy and adopt tools which have a good amount of customization available for the need of your project.
f) Conduct regular QA workshops within the team where the testers can improve their technical skills as well as soft skills.
g) Take advantage of technical architecture diagrams, models of the application and mind maps to implement suitable test techniques. 
h) Embed QA within the teams with appropriate owners, so that they are aware of any changes to the application.

4. Implement SBTM – Session Based Testing Management:

SBTM: Session-Based Test Management – It is “a method for measuring and managing exploratory testing.”  In a nutshell, it is a Test Management Framework which is made for effective exploratory testing and finding results without executing test cases.

Exploratory testing is always unscripted, unrehearsed testing. Its effectiveness purely depends on several intangibles: the skill of the tester, their intuition, experience, and ability to follow hunches and look for unexplored areas. It’s these intangibles that often confound test managers when it comes to being accountable for the results of the exploratory testing performed.

For e.g. at the end of the day, when a team lead or manager asks for the status from an exploratory tester, they may get an answer like “Oh, you know… I tested some modules here and there, just looking around as of now.” Even though the tester may have filed several bugs, the manager might have no idea what they did to find them. If the lead or manager was skilled enough to ask the right questions about what the tester did, the tester may have forgotten the details or may not be able to describe their finding in a quantifiable manner.

For this very problem, there is a framework named Session Based Test Management (SBTM). This framework can be used in the form of a template (Session Metrics – Derived from the sessions performed) which will document the effort spent on the exploratory testing. This documentation is named as session metrics which are the primary means to express the status of the exploratory test process. This contains the following elements: 

  • Number of sessions completed or rounds of testing performed
  • Number of problems or issues found
  • Functional areas covered such as the modules, pages or components
  • Percentage of session time spent on setting up for testing, which is the average time of setting up the test data and test environment if any authoring or content sync is required
  • Percentage of session time spent testing which is the actual time spent on testing the mentioned modules, components, etc.
  • Percentage of session time spent investigating problems which is the investigation time spent on each bug or an issue 
5. Effective use of severity and priority: 

Defect tracking is one of the most important aspects of the defect lifecycle. This is important because the test teams open several defects when testing a piece of software, application or website which will only multiply if the system under test is complex. In these scenarios, managing the defects and analyzing these defects to drive closure can be a formidable task.

It is a useful practice to add Severity & Priority to each of the bugs entered in the system for a project. It helps all the stakeholders to track and maintain the bugs and prioritize the fixes accordingly.

However, this is a very confused concept and almost used interchangeably by test teams as well as development teams. There’s a fine line between the two (Severity & Priority) and it’s important to understand that there are indeed differences between the two.

Let’s have a quick look at how these two differ from each other.

defining test severity and priority

“Priority” is associated with scheduling the fix, and “severity” is associated with standards.

“Priority” signifies that something is important and deserves to be attended to before others.

“Severity” is the state of being marked by strict adherence to rigorous standards or high principles.

The words priority and severity always come up in bug tracking. Determining the severity of a bug helps the development team to prioritize the bugs to be fixed. The priority status is often used by the product owners to determine which bug needs attention before going live.

You can find a range of software tools for commercial, problem tracking or management. These tools, with the detailed input of software test engineers, give the team complete information so that the developers can understand the bug, get an idea of its ‘severity’, reproduce it and fix it.

The fixes are based on project ‘priorities’ and ‘severities’ of bugs.

The ‘severity’ of a problem is defined in accordance with the customer’s risk assessment and recorded in their selected tracking tool.

A software that contains bugs can affect your release schedules leading you to reassess and renegotiate the project priorities.

6. Defining best test strategy and test planning 

This is undoubtedly the most important of the best QA testing practices that every QA team should perform regardless of the type of project. There are standard ways to define Test strategy and Test plan that most companies are using to mention the pointers in the document and then dumping the same in the repository and never referring to the same.

We should not only define the Test strategy and Test plan document but also review it constantly with our clients and update them according to the different phases of the project.

an architectural plan with ruler and pen
Clear planning, regular update and active implementation ensures effective testing.

How we like to use Test plan document is:

  • Master test plan: A high-level test plan for a project or product that unifies all other test plans or contains all the information about the project and gets updated on regular basis. It’s basically like an encyclopedia of the project from testing perspective.
  • Testing level specific test plans/Low level test plans: Plans for each level of testing or each module of the project.
    – Unit Test Plan
    – Integration Test Plan
    – System Test Plan
    – Acceptance Test Plan
    – Story/Module Test plan
  • Testing type specific test plans: Plans for major types of testing like Performance Test Plan and Security Test Plan and Regression Test Plan.


    Test Plan Guidelines

    1. Make the plan concise. Avoid redundancy. If you contemplate that you do not need a section that has no use in your project, go ahead and delete that section from your test plan.

    2. Be specific to every detail you provide in the test plan. For e.g., when you specify an operating system as a property of a test device, mention the OS Edition/Version as well, not just the OS Name.

    3. Make good use of lists and tables wherever possible. Avoid lengthy paragraphs and convert your information into bullet points.

    4. Make sure that the test plan is reviewed by all the stakeholders several times prior to baselining it or sending it for approval. The quality of your test plan will entail the quality of the testing you or your team are going to perform.

    5. Update the plan as and when required. An outdated and unused document is worse than not having the document in the first place. 
7. Writing test scenarios instead of test scripts: 

There are a lot of terms and phrases used in the world of software testing. From a wide range of different testing methods, to a variety of testing types, and many test case templates that make up a software or application test, it can be hard to remember what exactly each term means. We like to keep things simple at Argil DX and just focus on the core of testing. Take for example “Test Cases” and “Test Scenarios”; what’s the difference and why are they needed?

In brief, a Test Scenario is what to be tested and a Test Case is how to be tested. Moreover, a test scenario is supposed to be a collection of test cases. 

a table representing a test scenario being occupied by beakers representing test cases
Defining test scenarios and test cases helps focus on the core of testing.

How does it help?

Test Scenario
The purpose of writing test scenarios is to test the end-to-end functionalities of a software application, to ensure the business processes and flows are functioning as needed. In scenario testing, the tester thinks like an end-user and determines real-world scenarios (use-cases) that can be performed. Once these test scenarios/use cases are determined, then these test scenarios can be converted into test cases for each scenario. Test scenarios are the high-level concept of what to test, covering the major functionality of any module of a project.

Test Case
The test cases are a bunch of steps to be executed by a tester in order to validate the test scenario. Wherein test scenarios are derived from use cases, the test cases are derived and written from those test scenarios. A test scenario can have multiple test cases associated with it, because test cases lay out low-level details on how to test those scenarios.

Example
Test Scenario: Validate the login page of a certain application.

Test Case 1: Enter a valid/invalid username and password
Test Case 2: Reset your password or click on the reset password CTA. (Call to Action – Button)
Test Case 3: Enter invalid credentials in both the fields 

So, these are the seven best QA testing practices that we follow at Argil DX.

Read about the implementation of Software Testing Life Cycle (STLC) here. You might also be interested in reading our Testing Guide for improving website performance. For any queries related to software QA testing principles or performance testing and enhancement, reach out to us. We’d be glad to help you!

The post 7 Best QA Testing Practices for Agile Software Delivery appeared first on Argil DX.

]]>
https://www.argildx.us/technology/best-practices-qa-testing-agile-software-delivery/feed/ 0
How to Create and Enable Dynamic Templates in AEM https://www.argildx.us/technology/how-to-create-and-enable-dynamic-templates-in-aem/ https://www.argildx.us/technology/how-to-create-and-enable-dynamic-templates-in-aem/#comments Tue, 28 Jan 2020 13:01:18 +0000 https://www.argildx.us/?p=7496 A new feature called Dynamic Templates was introduced in AEM 6.2. This feature is also known as Editable Templates in AEM for the obvious reason that these templates can be created and edited at any time.  Generally, the control of creating and structuring templates is given to more specialized author groups called “Template Authors”.  The diagram below ... Read more

The post How to Create and Enable Dynamic Templates in AEM appeared first on Argil DX.

]]>
A new feature called Dynamic Templates was introduced in AEM 6.2. This feature is also known as Editable Templates in AEM for the obvious reason that these templates can be created and edited at any time. 

Generally, the control of creating and structuring templates is given to more specialized author groups called “Template Authors”. 

The diagram below depicts the requirements to create a content page.

the different stages and roles involved in content page creation

In order to fulfil these requirements, the collaboration of roles below is important:

1. Developer concentrates on development of page components and template types and provides necessary information to template author. 
2. Template Author is responsible for creating templates using template types, configuring use of components on templates.
3. Content Author is responsible for creating and editing content pages using templates.

Dynamic templates provide tremendous capabilities and flexibility in configuring templates
  1. Rather than developers, template authors can create and edit templates.
  2. Provides template authors with touch optimized UI “Template Console” for managing the lifecycle of templates and “Template Editor” to configure templates.
  3. For any page a content author creates using a dynamic template, template authors need to configure three parts of the template:
    Structure: Define components and content for template
    Initial Content: Define content visible on page when it is first created
    Policies: Define design properties of a component
  4. Dynamic connection is maintained between the page and template, modification in structure will reflect on all pages created using the template, whereas modification in initial content is reflected only on the new pages created using the template.
  5. All the dynamic templates are stored under /conf
  6. Design mode is not offered on pages created using dynamic templates. This can be achieved by creating component policies in template editor.
  7. Provides concept of Page Policy to define specific client-side libraries to be loaded on each template.

Let’s jump into implementation and see how to create dynamic templates in AEM.  

Step 1: Activate Editable Templates in your project 

With editable templates, templates are stored under /conf. In order to create project specific template hierarchy under conf, we can use configuration browser.

  1. Navigate to Tools > Configuration Browser
  2. Click on Create 
a demonstration of creating editable templates configuration in configuration browser

3. On Create Configuration dialog, configure:

  • Title: Enter title with your project name 
  • Editable Templates: Check this option

4. You can see below generated template structure on CRXDE:

Step 2: Create a new Page Component
  1. Open CRXDE Lite User interface : http://<host>:<port>/crx/de/index.jsp
  2. Navigate to page components folder of your project
  3. Create a new page component with following details: 
page component creation step

Rename base-page.jsp created below base-page component to base-page.html 

Step 3: Next step is to create template type
  1. Navigate to /conf/argildx-project/settings/wcm/template-types
  2. Create a node with name “empty-page” and Type “cq:Template” 

3. Create jcr:content node under empty-page with below properties

 <jcr:content 
        jcr:primaryType="cq:PageContent" 
        jcr:description="ArgilDX Empty Template for generic pages" 
        jcr:title="ArgilDX Empty Page"/>  

4. Create initial node of type cq:Page under empty page
5. Create jcr:content node under initial with below properties 

 <jcr:content 
        jcr:primaryType="cq:PageContent" 
        sling:resourceType="argildx-project/components/structure/base-page"/> 
</jcr:content>  

6. Create policies node of type cq:Page under empty page
7. Create jcr:content node under policies with below properties 

 <jcr:content 
        jcr:primaryType="nt:unstructured" 
        sling:resourceType="wcm/core/components/policies/mappings"> 
</jcr:content>  

8. Create structure node of type cq:Page under empty page
9. Create jcr:content node under structure with below properties 

 jcr:content 
    cq:deviceGroups="[mobile/groups/responsive]" 
    jcr:primaryType="cq:PageContent" 
    sling:resourceType="argildx-project/components/structure/base-page"> 
    <root 
        jcr:primaryType="nt:unstructured" 
        sling:resourceType="wcm/foundation/components/responsivegrid"/> 
</jcr:content>  

Template type is all set and hierarchy should look as shown below. 

template type hierarchy
Step 4: Now template authors can go ahead and create templates using template type 
  1. Go to Tools > Templates > Go to your project(argildx-project) > Click on create from Toolbar
  2. You can see created ArgilDX Empty Page template type. Select this Template Type and click on Next 

4. Provide suitable Title and Description and Click on Create.
5. Click on Open from confirmation dialog to view the template.
6. Template contains layout container to drag and drop components as shown below: 

Note: This layout container is picked from structure node (wcm/foundation/components/responsivegrid) of template. For your custom page component to pick components from structure node, add below code in the body of your page component.

 <sly data-sly-use.templatedContainer="com.day.cq.wcm.foundation.TemplatedContainer" 
       data-sly-repeat.child="${templatedContainer.structureResources}" 
       data-sly-resource="${child.path @ resourceType=child.resourceType, decorationTagName='div'}"/>  

NoteAdd below code in the head section of your page component to enable tab view of components in structure mode when layout container is unlocked:

 <head data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html"> 
<sly data-sly-                  call="${clientlib.all@categories='wcm.foundation.components.parsys.allowedcomponents'}"/> 
</head> 
  
Step 5: Working with templates  

There are three parts to be built in each template: 

  1. Policies define design properties of a component i.e. allowed components and its design.
  2. Initial defines default components and content to be available when a page is first created using this template.
  3. Structure defines the structure of a template.

5.1) Template Policies

When a page is created using dynamic templates, content authors will not have design mode in page editor. Now template author defines content policies in template editor to persist the design properties of components.

There are two types of policies which we can define: 

a. Template Level Policy (Page Policy):

– It allows template authors to define specific client libraries to be loaded on each template, it reduces unnecessary calls to libraries.
– Template author has control to add or remove client libraries rather than developers.

  Let’s check out how we can make use of it: 

  1. Create a client library folder with name clientlibs (can use any name) of type cq:ClientLibrary under page component with unique categories value defined. 
  2. Add required client-side libraries to be loaded on base page. 
UI for adding required client side libraries to base page

3. Now we have to apply Page Policy on the new template created.
4. Open newly created template.
5. Click on Toggle button on toolbar and Click on Page Policy

steps for applying page policy to the newly created template

6. On the left side Policy Dialog, we have
– Select Policy to select any existing policy.
– In Policy Title, provide title Base Policy
7. On the right-side, Properties dialog we have
– Client-Side Libraries field, add the categories name defined in the properties of the clientLib created in step 1, i.e argildx.base
– Click on submit

choosing a policy and adjusting its settings to configure the component

8. On Submit, you can see that an alert message pops up on template which was added in the alert.js file of clientlib(argildx.base)

popup message after submitting desired policy for the template

Note: For your custom page component to pick template level policies, add below code in the head section of your page component (base-page.html)

<head data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html">
    <sly data-sly-test.clientlibCategories="${currentStyle['clientlibs']}"
         data-sly-call="${clientlib.all @ categories = clientlibCategories}"></sly>
</head>

b. Component Level Policy

– It allows authors to define design properties for each parsys.
– To add policies on components using design dialog.

Let’s configure Policy on layout container:
1. On the Template, select the layout container and click on policy toolbar action shown below:

selecting layout container on template

2. On the left side Policy Dialog, we have
– Select Policy to select any existing policy.
– In Policy Title, provide any suitable title. Ex: General group
3. On the left side Properties Dialog, we have
– Allowed Components which has list of components and group that can be selected to be made available on selected layout container
– Select any group (General)
4. Click on submit

adjusting the settings of the selected policy

5. Now you can see that selected group of components can be added in the layout container.

adding selected group of components in the

5.2) Lock/unlock Components:

1. Components can be locked/unlocked using Lock button next to policy button on toolbar. This feature defines whether content is available for modification in initial content mode.
2. Locked components remain in structure mode and can’t be edited on resulting pages.
3. Unlocked components will be available under initial content mode and can be edited on resulting pages.

feature for locking and unlocking components

Note: After pages are created using the template, if structure of same template is updated then these pages will be affected by changes.

5.3) Initial Content
In this mode, define default components and content to be available when a page is first created using this template. Unlock the layout container available in structure mode to be able to configure it in initial content mode.

In the below example, I have added Title component and authored with title “Base Page Title”

adding title component as base page title

Note: After pages are created using the template, if initial content of same template is updated then these pages will not be affected by changes.

5.4) Design Dialog for components at Template Level

Configurations with design dialog of a component can be edited by clicking on policy as shown in below diagram:

editing configurations with design dialog of a component
Step 6: Enable Template from Console

Finally, once template is ready to be used for creating pages:
1. Select newly created ArgilDX Base Template from Template Console
2. Click on Enable from toolbar.
3. Click on Enable button from confirmation window.

selecting newly created base template and enabling it

Note: In case a template is marked as disabled after creating some pages with it, then existing pages remain unaffected. However, the template will no longer be available for creating new pages until it is enabled again.

Step 7: Once Enabled, Publish Template

1. Select newly created ArgilDX Base Template from Template Console
2. Click on Publish from the toolbar.

Step 8: All we must do is Allow Template under root page of our website to use it

1. Open page properties of root page of your website
2. Click on Advanced Tab
3. Under Template Settings, click on add to define Allowed Templates path
Eg: /conf/<your-folder>/settings/wcm/templates/.*

allowing newly created templates under root page of our website

Now, you have successfully created templates and made it available for content authors to create pages.

The post How to Create and Enable Dynamic Templates in AEM appeared first on Argil DX.

]]>
https://www.argildx.us/technology/how-to-create-and-enable-dynamic-templates-in-aem/feed/ 3
What is AEM as a Cloud Service? https://www.argildx.us/digital-transformation/what-is-aem-as-a-cloud-service/ https://www.argildx.us/digital-transformation/what-is-aem-as-a-cloud-service/#respond Mon, 20 Jan 2020 11:37:51 +0000 https://www.argildx.us/?p=7560 Adobe has launched AEM as a Cloud Service! With this, Adobe Experience Manager is being offered as a fully cloud-native CMS solution in a subscription-based offering. This is a big encouragement for AEM fans who have been shying away from adopting the CMS due to the complexity in deployment and management. This move will enable ... Read more

The post What is AEM as a Cloud Service? appeared first on Argil DX.

]]>
Adobe has launched AEM as a Cloud Service! With this, Adobe Experience Manager is being offered as a fully cloud-native CMS solution in a subscription-based offering.

This is a big encouragement for AEM fans who have been shying away from adopting the CMS due to the complexity in deployment and management. This move will enable more organizations, especially mid-sized companies and enterprise departments, to go ahead and get themselves this enterprise content management system to power their experience engine.

You might have gathered by now some of the important changes that might be implemented to AEM. However, there are more specific changes that Adobe is bringing forth. Let’s look at what AEM in the form of Software as a Service (SaaS) offering means for marketing and IT.

Availability

This change will usher in the era of version-less AEM. The existing annual or quarterly service pack release models will give way for a continuous release cycle. With Adobe taking most of the responsibility of the release process, AEM version upgrades will now be automatic and rapid. Businesses will benefit from a reduced spending of their valuable resources in carrying out upgrade and update projects even if they haven’t subscribed to the AEM Managed Services. Most performance enhancements, security fixes and product updates will be carried out automatically over-the-air (OTA). Customers will also receive an increased uptime with higher SLAs powered by the cloud agility of the reinforced AEM.

With marketers getting uninterrupted access to the latest fixes and enhancements without much dependence on IT, the experience game is set to be more competitive.

Scalability

AEM as a Cloud Service will come optimized for specific use cases to help you scale with changing business requirements. The shift to a pure cloud-native service lends the Adobe CMS the ability to dynamically monitor traffic and scale automatically within seconds to match changing requirement trends. This will dramatically reduce the operational responsibilities to adapt to changing trends as well as the load on the maintenance team to continuously monitor traffic and make changes. Additionally, you will not be required to copy all codes, content and configured state of your AEM instance to scale up to new upgrades. This enables marketers to focus on content and experience creation and delivery in an uninhibited manner.

Velocity

As well as the global community of technical experts to your rescue, AEM’s enterprise-tested best practices and default security rules will help you swiftly get on top of issues and fixes. The modern architecture ensures many of the manual processes involved in provisioning, setup and update are eliminated through automation. This empowers you to innovate faster through the cloud-native capabilities to aggressively reduce the time-to-market and drive higher ROI quickly.

Capability

With the adoption of a modern architecture, customers are set to achieve enhanced solution capabilities as part of the cloud benefits for a higher value realization. AEM will now be easier to optimize for business value and personalize per requirements.

Reliability

Equipped with built-in redundancy and proactive monitoring capabilities, you get robust protection against unpredictable cloud outages or disasters for improved performance. AEM as a cloud service brings automatic backup and improved disaster recovery models that offer stronger reliability.

Extensibility

The ability to integrate AEM with other solutions in the Marketing Cloud, Experience Cloud or other third-party solutions remains largely the same with open APIs. If there is anything to be expected in terms of extensibility, it is that integrating this CMS with marketing, analytics or commerce solutions will become even better and easier.

hand holding a mobile device with a virtual cloud hovering above
Other Benefits of AEM as a Cloud Service

A move from the on-premise model to a cloud-first solution will help you cut down the IT cost through automation of many of the complicated technical processes. With less pressure on organizations or marketing teams to depend on IT teams for routine tasks of version upgrade projects, performance enhancements or security fixes, digital marketers will be able to quickly move from content strategy ideation to execution.

How will AEM on Cloud Impact AEM Management?

The amount of activity involved in AEM deployment and management will be significantly lessened in the cloud-native CMS model. This is a major change in the adoption process of AEM and will make a big impact in operations. For marketers, authors and content publishers, this change will cut through the lengthy process of development to offer a quicker way to push marketing materials and campaign to market faster.

Leverage the Potential of AEM as a Cloud Service with Us

Harnessing the potential of cloud-native solutions is a mandate for forward-thinking businesses of today. Argil DX will help you explore and tap the benefits of AEM as a Cloud Service. Argil DX is a certified Adobe Solution Partner helping organizations adopt the latest solutions in digital through innovative approaches and end-to-end deployment capabilities.

The post What is AEM as a Cloud Service? appeared first on Argil DX.

]]>
https://www.argildx.us/digital-transformation/what-is-aem-as-a-cloud-service/feed/ 0
Full-Text Search in AEM Pages and Assets including PDF, Excel and PowerPoint https://www.argildx.us/technology/fulltext-search-in-aem-pages-assets-custom-search-pdf-excel-and-powerpoint/ https://www.argildx.us/technology/fulltext-search-in-aem-pages-assets-custom-search-pdf-excel-and-powerpoint/#comments Wed, 23 Oct 2019 12:26:54 +0000 https://www.argildx.us/?p=7450 Search is an important feature of any website. Implementing an efficient search on your website can considerably improve the experience of your visitors. For websites on AEM, creating a custom search component without creating any new indexes has been a challenge.  We took up the challenge  We created Full-Text Search – a custom search component to help end users search ... Read more

The post Full-Text Search in AEM Pages and Assets including PDF, Excel and PowerPoint appeared first on Argil DX.

]]>
Search is an important feature of any website. Implementing an efficient search on your website can considerably improve the experience of your visitors. For websites on AEM, creating a custom search component without creating any new indexes has been a challenge. 

We took up the challenge 

We created Full-Text Search – a custom search component to help end users search through all your web pages and published assets. This includes searching through PDFs, Excel files, PowerPoint presentations, asset metadata and SEO tags. This is a generic search component which can be used to search within any content and DAM hierarchy.

As compared to the OOTB search component of AEM, the custom search component does a full sentence search instead of individual words of sentences. For asset search it can even provide the page number in which the text is present.

The objective behind creating a custom search component

To create a search component in AEM to enable users to search any word, number or sentence. Even special characters in AEM website pages as well as DAM assets (PDFs, Excel files, PowerPoint presentations). 

The approach taken to create our AEM Search component 

We used Omnisearch API with QueryBuilder, which in turn uses Lucene indexes to perform effective and efficient searching. 

Prerequisites for creating Full-Text Search in AEM

For efficient searching, please validate your AEM instance has the following nodes. 

  1. /oak:index/lucene
  2. /oak:index/cmLucene
  3. /oak:index/damAssetLucene
  4. /oak:index/nodetype
  5. /oak:index/cqPageLucene
How to implement our Full-Text Search component in your AEM instance?
  1. Create a component with search directory as dialog and text fields along with submit button on display layer.

    The component dialog will look like this 
component dialog box for full text search in aem

The basic UI will look like this but you can customize it the way you want.

basic UI of component with search directory

2. Add AJAX call on submit button click which sends search string and search location. 

3. Create a servlet which gets the search parameters: 

  1. Search string
  2. Search location 

4. Create a query using ‘QueryBuilder’ to perform the search. 

5. Parse the result in required format.

6. Send the response in JSON. 

7. Parse the result on screen. 

Advantages of our Custom Search Component

Through Full-Text Search, you can improve the user journey on your AEM website as users can find the specific item they’re looking for. Additionally, this custom search component will help you in site personalization as you can implement a user-permission based search. You can even integrate analytics with this search to understand your users’ demands at a more granular level.

Check out other articles in our blog to learn about the different tools and features that we’ve created around and for different Adobe Experience Cloud solutions.

The post Full-Text Search in AEM Pages and Assets including PDF, Excel and PowerPoint appeared first on Argil DX.

]]>
https://www.argildx.us/technology/fulltext-search-in-aem-pages-assets-custom-search-pdf-excel-and-powerpoint/feed/ 3
Open Source Core of Adobe Experience Manager https://www.argildx.us/experience/open-source-core-of-adobe-experience-manager/ https://www.argildx.us/experience/open-source-core-of-adobe-experience-manager/#respond Wed, 25 Sep 2019 14:31:37 +0000 https://www.argildx.us/?p=7414 Disclaimer: This is not just another write-up comparing AEM with open source CMS solutions. It’s a meme post too. But besides the memes, what are we discussing? Through this article, content authors, marketers, developers, brands and businesses will be able to understand the inherent open source core of Adobe Experience Manager (AEM). You will also explore the key strengths ... Read more

The post Open Source Core of Adobe Experience Manager appeared first on Argil DX.

]]>

Disclaimer: This is not just another write-up comparing AEM with open source CMS solutions. It’s a meme post too.

But besides the memes, what are we discussing?

Through this article, content authors, marketers, developers, brands and businesses will be able to understand the inherent open source core of Adobe Experience Manager (AEM). You will also explore the key strengths of this Enterprise Web Content Management Solution (EWCMS) and its powerful siblings that have been making it the Leader in Gartner’s Magic Quadrant for successive years. AEM is also marked as a leader with a huge market presence in Forrester’s Wave Web Content Management System. 

Why do we need to talk about the core of AEM?

The heart of any CMS lies at its core and technology stack. A well-designed technology stack makes management easier for partner companies and opens smooth paths for customization of the product itself. When people talk about AEM, the first thing they see is the licensing cost and the proprietary CMS tag attached along with it. They skip the fact that it is built upon Open Standards or Open Source stack. The open source development gets active contributions and engagement from developers at Adobe as well as other active technology communities.  

Welcome to the bright side of AEM! 

AEM is not just polished and garnished with Adobe’s limelight. It has a multiverse of high-end features that make it stand out of the crowd ever since it came on the scene. 

AEM is not just a content management system but an important part of the Adobe Marketing Cloud (umbrella Adobe Experience Cloud) ecosystem, which is a comprehensive suite offering midsize and big enterprises a seamless experience across all touchpoints and channels. It outshines other CMSes because of its versatility to integrate smoothly with other solutions in the Experience Cloud that offer a complete set of tools for an enterprise. 

AEM’s core can’t be more open source
  • The core of AEM is laid upon CRX repository, a Java Content Repository (JCR) which is based on Apache Jackrabbit (a project of Apache Software Foundation, one of the world’s largest open source foundation).  It supports versioning, full text search, transactions, event management, data persistence, storage, etc. with the help of an open source society. JCR vanishes the need for an external database by providing features to store and retrieve data efficiently. 
     
  • The modular architecture of AEM is provided by OSGi (Open Services Gateway Initiative), an open source framework which is implemented as Apache Felix. The initiative is highly supported by Adobe developers as well. OSGi is fully utilized in AEM as all the bundles of AEM are managed by OSGi. 
     
  • Moreover, Apache Sling provides a RESTful architecture and an open source web framework. It communicates with underlying JCR to complete the entire AEM stack flow. The technology stack of AEM comprising these three key elements is entirely built upon open source. 
     
  • MongoMK is a backend storage facility allowing linear scalability. This open source solution is the true spirit of AEM when it comes to big data, high performance and scalability. It handles a massive amount of data for content rich websites or for websites having unanticipated user growth. MongoDB comes handy with AEM and can help in growing and scaling up the deployment to ensure high customer satisfaction. 
     
  • Lucene Solr, built on Apache Lucene, is another open source scalable enterprise-search platform that gets embedded into AEM for search functionalities making it easier for users of this CMS. Apart from Solr search, AEM can also use features of Elastic Search which is another Open source platform used for enterprise search.

  • AEM integrates seamlessly with Magento, an open source e-commerce platform used for crafting unique retail digital experiences for brands.

  • AEM project is packed together into a cohesive module (multi-module structure) with many open source dependencies that is in turn managed by Apache Maven. In a sense, for the development of AEM project, various open source libraries are used. 
     

AEM experts contribute to various open GitHub repositories. So, in effect, AEM can be considered as one of the most reliable commercial WCM platforms which openly discusses issues in its forums and portals. 

Not convinced yet? Here’s more for the discerning readers

The release of core components of AEM by Adobe under open source license is a hope that AEM and Adobe might be moving towards the Digital Distribution Model.  

Not a claim, just a HOPE!

This component store within AEM is a playing field for developers. They can submit generic components to be used in AEM such as multiple variants of RTE, Hero, responsive components, etc. This lays the foundation for a new world of exploration, development and vision. These core components would enhance the ease-of-use of AEM for content authors and would open a wide arena for developers contributing to open source communities and portals. 

There is a new hype and renewed excitement in the CMS world around headless CMSes, i.e. CMSes without the front end (head) implementation feature. These CMSes can deliver content through APIs for utilization in Android app, iOS app, Windows and any platform we can think of. It is a powerful feature for web and app developers. With AEM being a hybrid CMS, you get this advantage as well as that of a traditional CMS.

Content and experience fragments in AEM provide a similar feature with an ocean of highlights. Content fragments expose their content in the form of JSON that can be used with any platform. On the other hand, experience fragments are reusable fragments of a page that can be consumed by a third-party system or app to deliver relevant experiences to customers. They can be used to build reusable experiences, delivering content for context-specific variations and omnichannel commerce. So here, AEM can be used for a Content as a Service (CaaS) model.  

The Game of comparisons 

While comparing free and open source CMS solutions with AEM, people are initially tempted with zero software cost but unaware of the inherent costs lying within TCO (Total Cost of Ownership). TCO is the major deciding factor in terms of costs, which includes installation, customization, security, support, upgrades, training, etc. 

The decision to choose the right CMS for your business is often dependent on the business requirement. If your company has a global presence and generates a high revenue, you might want to go for a reliable and secure CMS. A CMS that provides a holistic coverage of every aspect from content management to site analytics, customer personalization, media management, web publishing, campaigns and a seamless integration with third-party leaders like AWS, Salesforce, Facebook, SAP etc. You would want a CMS that offers smooth deployment and speedy revamp time.  

The world of AEM is flexible and agile with a robust architecture finely crafted and curated with the help of open source communities. 

Debunking the myths around open source CMSes

Why would it be difficult to achieve all of the above with a free and open-source software platform?  

This is due to a variety of factors:

  • Lack of a holistic approach towards business solutions. 
  • Inability to capture the entire market through core features. 
  • Unprecedented access for open source developers leading to unpolished or immature codes sometimes resulting in bugs and product issues. 
  • Various security concerns and threats due to the “open nature” of development. 
  • Large TCO as compared to the initial software cost. 
  • Not as free as it’s claimed, the picture is complex. It is more expensive and limited in its scaling capabilities because of the database layer. 
  • Extra cost for cloud solutions, database, developer support, consultation costs, etc. 
  • No guarantee of timely and continued community support. 
  • There is no differentiation in author and publish environments, and system architecture is quite expensive. 
  • Most open source CMSes are in their infancy when it comes to creating a holistic digital marketing experience for customers. 
  • Lack of many core features such as personalization, mobile support, multi-site management, dynamic content, etc. 
  • FOSS CMSes provide various features in the form of modules. You can imagine so many modules! Modules may have internal dependencies which in turn can become unmaintainable and unsupported. It might also require an intensive evaluation and research for the modules that would fit the requirement. 
Why should I choose AEM?

Isn’t it enough to realize that security and updates in open source systems are not a guarantee or authentic all the time? In turn, AEM is guarded by Adobe support 24*7 solving technical and marketing issues and giving online support and training. The extensive seminars, training sessions, documentation and round-the-clock support makes AEM reliable and trustworthy. The solutions to issues in AEM are delivered in the form of service packs and feature packs to ensure a smooth functioning of websites and projects. The updates on the website are effective on-the-fly with ease of management because of different authors and publish servers. 

AEM is a collection of core features and seamlessly integrates with many third-party tools. If used in its entirety, AEM and other Marketing Cloud solutions can give a self-sufficient ecosystem that businesses can rely upon.

So, you might want to leave a lackluster user experience and security hurdles to join the multiverse of AEM.

Argil DX is a boutique digital experience company specializing in Adobe Experience Cloud. We are an Adobe Silver Solution Partner serving some of the most popular brands with a focus on tailored digital strategy and executing it through the Agile approach. For queries around AEM implementation, maintenance or any other exciting ideas, write to us.

The post Open Source Core of Adobe Experience Manager appeared first on Argil DX.

]]>
https://www.argildx.us/experience/open-source-core-of-adobe-experience-manager/feed/ 0