Adobe AEM Implementations …from Hell

I am a single dad with three kids: Sophia (10), Connor (13), and Ariana (15). Together our initials spell, “S.C.A.B.s”.  As Team S.C.A.B.s, we love to embark on regular adventures, such as weekend getaways to Chicago, hiking through trails where Jesse James and his gang hid from the law, or just exploring the great city where we live.

This fall we decided to do something I enjoyed as a kid: visiting a haunted house. But we didn’t just select any haunted house, we chose The Edge of Hell, one of the top-rated haunted houses in the country located in one of the many vacant buildings in the forgotten part of the city. As we waited in line to buy our tickets, we were greeted by rat-eating monsters, a galloping headless horseman, and fire-breathing, tattoo-covered hipsters in desperate need of a tetanus shot.


I paid for four tickets into The Edge of Hell which cost me $25 a piece plus tax for a grand total of $117. NO REFUNDS.  Honestly, the receipt alone scared the hell out of me, but I’m cheap.  The kids seemed to be in brave spirits, so we assembled in a standard conga line in order of age: I led first, Ariana was behind me holding my shoulders, Connor held onto Ariana, and little Sophia held onto Connor with her eyes closed tightly.  We ascended the stairs near the entrance and our adventure began as the door and our last glimpse of light disappeared behind us.


The first thing we encountered in The Edge of Hell was a pack of large mechanical dogs (or “Hounds of Hell”) that popped out of a wall and barked rabidly at Team S.C.A.B.s.   Instantly, I heard Connor yell from behind me, “Daaaaaaaaaad!  I want to leave!”

“Connor, we just got started. Where are you going to go?” I asked.

Right on cue, an acne-covered teenage monster emerged from the darkness. “Chicken Exit,” he said, pointing to a steel door to our left. Before he even finished his sentence, Connor’s hands released from his sister’s shoulders and he walked towards the Chicken Exit.  Sophia, not realizing where Connor was leading her, followed him with her eyes still shut tightly. Before I could object, the door slammed shut behind them. “NO REFUNDS” echoed in my head.  The S.C.A.B.s were now reduced to just “A” and “B”.  Thanks a lot, Teen Wolf.


Ariana and I continued on. We finished the tour and we found Connor and Sophia waiting near the exit with the other chickens. Connor was staring off into space, still grappled with fear.   As we approached, Ariana folded her arms and said with her Big Sister attitude, “I think Connor should have to pay you back the $25.”

Connor paused, then stoically said, “Make it an even $30.”

“What’s the extra $5 for?” I asked.

“New underwear,” he muttered.

Why am I telling you this story on an AEM blog? Because it’s my job as a loving father to take every opportunity to embarrass my kids. But there is a point…

Fear is a powerful emotion and is amplified by surprise and the unknown. When you don’t know what’s hiding ahead, your senses are heightened, your pulse races, and the slightest deviation from ‘normal’ is enough to ruin your day (and likely your pants).

My kids have never been through a haunted house, but I have.  Imagine if I could tell them what was around every corner before we reached it? Or even better – what if I could guide them through the haunted house with all of the lights on?  I could take the fear of the unknown and every element of surprise out of the equation.

That’s your job as an architect or technical lead; that is, to help guide your clients through their digital transformation or AEM implementation with the lights on. This is likely their first foray through this process, but not yours. They have questions, they have concerns, and you have answers. Guide them.

I’ve recently been selected to take on a new role called the “Global Adobe Alliance Manager.”   It’s my job to act on our clients behalf to help guide them through the entire life-cycle of their digital transformation using Adobe’s offerings.

Your company might not have a dedicated person for this role, but there are some things you should be doing to help guide your clients through this process from start to finish:

  • Web Context Experience Management (WCXM) system evaluation and platform recommendation – If the client has not yet selected a platform, it’s your job to help provide them an unbiased recommendation to satisfy their business and functional requirements. You’ll likely be reviewing three to four platform options and providing a gap analysis of each. You may even help them define the platform selection criteria. Your recommendation should also consider their in-house technology expertise. Are they primarily a Java shop or .NET? If the vendor themselves (Adobe/Sitecore/Acquia/Whoever) responded to the evaluation, you can help the client vet their responses or translate WCXM geek-speak into something their business leads can understand.
  • Procurement and licensing negotiations – You should have a clear understanding of the architecture of their proposed system as well as the basic user journeys of the visitors to help determine how many (and what type of) licenses to purchase. You will also help determine the level of effort to develop features or functionality that are not part of the out-of-the-box offering. This all contributes to the Total Cost of Ownership (TCO) of the platform and must be considered.
  • Architecture reviews – Did the client themselves or another agency define the architecture?  Review it. Does the client have their own hosted environment? Do they partner with a hosting provider like Rackspace? Do they know about Adobe’s Managed Services offering? Have they considered security, Single Sign-on options, or a robust caching strategy using a CDN?  Is there dynamic data? How is it being retrieved? How often is that data updated? Can that be cached, even temporarily? You need to call these things out when you’re doing a review.
  • Best practices recommendations – Does the client want something that goes against usability or the platform’s best practices? Are they asking for guidance on governance, mobile, personalization, globalization, or digital asset management? More importantly, are they not asking about these things? It’s your role to provide them the thought leadership in these areas and they must be considered at the beginning of the project.  They don’t know what they don’t know. Bring these topics to the table early.
  • Code reviews – Has your client decided to take on the development of the site in-house and it’s their first attempt at developing and AEM project (see also: the idiot Joe Gunchy)? Or, is your client working with a different implementation partner and they want a third-party agency to act on their behalf to do a review of what’s being developed?  These are perfect candidates for formal code reviews. Even if it’s your agency doing the development, you should be doing code reviews internally with your team and including the client’s technical leads, giving them full insight into what they will be taking over when the project development is complete. Even though you’re developing it, it’s their code and they will ultimately own it. If you have apprehensions about showing them their code, let’s be honest – something’s wrong with it.
  • Continuous integration recommendations – You must have an established, repeatable build process for compiling, and deploying both your code and content packages to the various environments.  If you don’t, you’re wasting the client’s time by doing these repetitive tasks that can and should be automated using free, open-source tools like Maven, Jenkins, and Puppet. True, there are some upfront costs (hours) associated with setting this up, but I challenge you to compare this to the time spent manually deploying to the various environments over a week, a month, or even a year. The return on your initial investment greatly outweighs that time and continuous integration is a must-have for every project.
  • Training and enablement – Once development is complete and you hand the ‘keys to the site’ over to the client, are you confident they know how to use each component, template, or even the AEM interface itself?  At minimum, you should provide an AEM overview and a site-specific training to the client to include each component, template, scaffolding page, workflow interface, etc.  Don’t show them the out-of-the-box Adobe Geometrixx demo unless they actually work for a company that sells shapes. C’mon, man. Show them their site using their stuff.
  • Support and documentation – The client will have questions, even after you’ve trained them and they’ve taken control of the site.  Be a good partner, be available, and answer their questions.  I’m not a big fan of printed, formal documents. Instead, I prefer to create a page (or pages) hidden from the site navigation within the tool itself with supporting documentation, useful links, and support contact information the client can refer to as they use the tool. If they find more efficient ways to use a component, they can update this page themselves thus alleviating another obsolete, printed document.


If you find this information useful, please share a link to my blog. If there is a topic you’d like to discuss, please use the comments below.


Hiding Links from the Adobe AEM Welcome Screen

Unlike the world’s worst programmer Joe Gunchy (read more about Joe here) , you were smart and followed my guidance on developing your Adobe AEM project in the right order.  So we can assume you have Groups of users in your system with various permissions to access different sections of the site. Some Groups can manage workflow, some cannot.  Some can manage Tags, others cannot.

Did you know you can hide the links on the Welcome Screen to a Group of users so they never see them at all?


“Out of sight, out of mind.”



 Here’s how:

  • Navigate to the Users section of your site and click on the Group you want to hide a link from.
  • Double-click the Group name and select the Permissions tab


  • Navigate to one of the paths below and remove the VIEW option in the permissions.
Websites /libs/wcm/core/content/siteadmin
Digital Assets /libs/wcm/core/content/damadmin
Campaigns /libs/mcm/content/admin
Community /libs/collab/core/content/admin
CQ Inbox /libs/cq/workflow/content/inbox
Users /libs/cq/security/content/admin
Tools /libs/wcm/core/content/misc
Tagging /libs/cq/tagging/content/tagadmin
CloudServices /libs/cq/core/content/welcome/resources/cloudservices
Workflows /libs/cq/core/content/welcome/resources/workflows
Replication /libs/cq/core/content/welcome/resources/replication
Reports /libs/cq/core/content/welcome/resources/reports
Documentation /libs/cq/core/content/welcome/docs/docs
Developer Resources /libs/cq/core/content/welcome/docs/dev
CRXDE Lite /libs/cq/core/content/welcome/features/crxde
Packages /libs/cq/core/content/welcome/features/packages
Package Share /libs/cq/core/content/welcome/features/share
Clustering /libs/cq/core/content/welcome/features/cluster
Backup /libs/cq/core/content/welcome/features/backup
OSGI Console /libs/cq/core/content/welcome/features/config
  • Finito!

Adobe AEM the right way!

Welcome to “Adobe AEM the Right Way”

Since 2008, I have been involved in implementing many large-scale Adobe® AEM (previously CQ5) projects for numerous clients and industries, including the largest hotel chain in the UK, major international airlines, breakfast cereal manufacturers, major credit card companies, and professional sporting leagues at one of the largest global digital marketing agencies in the world.   When I’m not working on our agency-specific projects, I assist other corporations with their Adobe AEM projects through professional services consulting.

People only call professional services in two situations: at the beginning of a project when they’re just getting started, or when they’ve gone off the beaten path and have gotten stuck.  While it might be the shiny, flawlessly executed case study that wins new business for the agency, it’s saving the project in trouble that gives you the experience to execute your future project the right way, every time.  Here I will share all of the insider knowledge gained from these projects in crisis.   I will focus on best practices, performance, and usability so you can learn from other people’s mistakes and avoid them on your site.

Do you know…

  • Your AEM project should be developed in a certain order?
  • You can save 20-30% development time on your next AEM project by using a few basic tips on your current project?
  • 5 components you should create now to start your reusable library of components?
  • The best way to organize and categorize your sidekick and templates for increased author usability?
  • When to migrate content from an existing platform to AEM and when to start over?
  • The correct way to structure your site and Digital Asset Management (DAM) system to support multiple sites, languages, or regions?
  • How to tune your site for performance using a robust caching strategy and simple tips from Yahoo!?
  • The right way to retrieve and display dynamic content?

…you will.

Who should read this?

This site is for architects, IT managers, developers, and business analysts who are starting a new Adobe AEM project and want to do it the right way.