Finding the Unicorn: The Role Your Organization is Missing (and May Never Find)

Adobe states that over 80 percent of their clients own three or more solutions of the Adobe Marketing Cloud, including six of the ten highest revenue Pharmaceutical companies. This number will likely grow, as Adobe saw a record 26% increase in revenue Q1 of 2017. The true value of the Adobe Marketing Cloud comes when these solutions are connected together, to provide a consistent, relevant experience across channels and devices. Finding and retaining talent with the ability to connect multiple solutions of the platform is now a mandate. In the Adobe world, this rare role is called the Multi-solution Architect (MSA).

The mandate for an organization to retain a Multi-solution Architect was evident at the 2017 Adobe Summit, as the majority of technical sessions involved combining two or more integrations such as, Adobe Experience Manager integration with Adobe Analytics and Adobe Target, Audience Manager & Adobe Analytics: Your data management power couple, and The Dynamic Duo: Adobe Campaign & Adobe Analytics for real-time re-marketing. Last year, it was estimated that there were only about 15 true Multi-solution Architects worldwide at Adobe. In agencies, there are likely none.  And with an already steep investment on the platform itself, hiring this rare consultant would break even the largest organization’s implementation budgets.

Computer Futures is one of the leading supplier of Adobe talent in the U.S., with Adobe themselves being one of its largest customers. In their 2017 Adobe Market Report, they state that, “the true multi-solution architect will be the most valuable individual in the marketplace.” Currently, there are an estimated 40 open positions for an Adobe Experience Manager (AEM) developer alone, and even more for an Adobe Campaign developer. An individual with the experience to connect both systems (or even three or more solutions) would be like finding a unicorn. And with new legislation on the table that would effectively double the salary of H1B workers to a minimum of $130,000 per year, the available talent pool to fulfill these roles will decrease as the low-cost developer pool shrinks.

“For the most part, ‘true multi-solution architects’ are working for Adobe directly. This is where they naturally receive the best training and gain the most project exposure year on year. There are some that have flown the proverbial nest or exist outside of this, but they are extremely hard to come by.” -Dave Fox, Computer Futures

It’s important for you to heed the call and extend your AEM practice to multi-solution consulting and execution to align overall solution architecture to digital marketing strategy and goals. This ensures marketing campaigns are fully integrated to deliver a consistent, personalized experience and messaging across channels, and are continually measured and refined through data-driven insights.  Don’t say I didn’t warn you.

Since you won’t likely won’t find an MSA, you have to make one.  If it’s you, how do you get up-to-speed on your multi-solution architecture practice?

The Adobe MSA acts as the facilitator between the business and the individual Subject Matter Experts (SMEs) for each solution, so there are soft skills needed in addition to the nerd stuff. Even the greatest musicians need a conductor. Assuming your organization’s offering is silo’d (like most), it’s the job of the MSA to provide the connective tissue between your web, relationship marketing, social, media, data, and insights teams. Although the technology was created to provide the horizontality across these silos, your antiquated, pre-digital business model and processes will hamper its effectiveness. You are the glue.

Here are a few tips to get you started:

  • Tell a story: “When Dr. X visits our homepage, we identify he is a Cardiologist who has never prescribed our drug. We dynamically show content in the hero space specific to first-time prescribing Cardiologists and a clear call to action to contact a sales rep in his area. When he clicks the button, we take him to a Contact a Rep Form. Blah, blah, blah.”  Notice the story has no Adobe solutions (or any technology solutions, for that matter) listed whatsoever.  You first need to define the what before the how.Your story should always tie back to a measurable business goal. In this case, it is to increase registrations and rep engagement. Now, it might not be your job to actually create the story, it is your job to bring the story to life.
  • Start small. Too often, organizations take the Joe Gunchy approach and choose the largest implementation as their ‘pilot’.

    “Go big or go home.” –Joe Gunchy

    You need quick wins, so start with a short story (not a novel), then map the data, content, and technologies needed to bring your story to life:

    • Homepage (AEM)
    • Doctor speciality data (first and third-party data in Audience Manager)
    • Doctor prescriber data (first and third-party data in Audience Manager)
    • Geolocation data (browser info in AEM Context Hub)
    • Behavioral data (Analytics data shared with Target)
    • Contact a rep form (AEM/Campaign)

When you identify a missing piece in your technology landscape, you need to weigh the value of acquisition/customization.  Is it easier to modify the story or the technology landscape to achieve quick wins while still achieving your business goals?

  • Connect the dots. Study the Adobe Use Cases  found in the Adobe Solution Partner Portal. If you’re not an Adobe Partner, you can register as a Community Partner to access this content. The use cases show how data is exchanged between solutions for a variety of scenarios. Understanding these will give you a foundation for implementing their connectivity.  A multi-solution connected diagram looks like this:Screen Shot 2017-04-04 at 11.44.01 AM.png
  • Follow best practices.  Check out the Build a Digital Foundation using the Adobe Experience Cloud tutorial for tips on how to integrate AEM with other solutions. Also, read the  Integrating with the Adobe Marketing Cloud documentation then actually try some hands-on execution of a small use case. Start by simply personalizing a single piece of content in AEM using the out-of-the-box Context Hub for geolocation or other available trait, then eventually move up to AEM + Target integration, then Analytics to Target to AEM, then AEM to Campaign, etc. Fail fast, and learn.

    “E pluribus unum (Out of many, one)”

  • Out of many, one.  This is the opportunity to organize around your team of internal SMEs to help with the connectivity between solutions to bring your story to life – a journey manager, of sorts.  Do you have to know every detail of every Adobe solution? Nope.”You don’t have to know how to push every button, you just need to know there’s a button to push.”   Let the SME’s do their SME’ing while you retire back to your cubicle knowing you’re the rarest mofo in the org.

    #unicorns4life.

Jumping into Adobe AEM Development

Got a great note from a reader asking advice on whether he should dive in and learn AEM development:

I am a User Interface Designer with minor Front End Developer skills. I was recently hired by a major eye wear company  for the sole purpose of migrating a version of one of their Native Apps over to AEM. I have no real experience with AEM Development, but I am a fast learner and I already have the AEM portal experience mastered (along with creating articles, collections, layouts, etc..)

My question is: Do you think it is viable/worth it for me to dive head first into AEM Development and try to learn the various languages/frameworks necessary to be able to customize an AEM app? Or is it something that would take years to understand and a complete change of my skillset?

Kind of a random question, I know… but your article was great so I thought I would reach out for advice. Thank you Mr. Meehan!

Seemingly Unrelated Story Time…

I grew up in a stereotypical, plain vanilla American suburban neighborhood – complete with station wagons, paper routes, penny loafers, Golden Retrievers, the works. There was even a pool up the street where you could pay 50 cents to swim all day.

I didn’t know how to swim until I was almost 11 years old, and none of my friends knew it. I could have won an Oscar for Best Actor for the work I did in that pool. I had all the individual skills to be a swimmer, but I never put the pieces together. If I held onto the side of the pool with my hands, I could float and kick my legs – no problem. When I was away from the wall, I would just walk with my feet touching the ground and paddle my arms so it looked like I was swimming. But, once I felt the curvature of the floor move towards the deep end, I would turn around and go back the other way because I knew I would be over my head.

Fast forward one muggy Michigan summer…

Somehow my ultra-conservative mom made friends with a backwoods, country bumpkin lady who had just moved to Michigan from a little town in West Virginia. She looked exactly like Willie Nelson in drag. I can’t remember her name, but it was one of those redneck stoner names where two regular stoner names are mashed together to make it even more rednecky, like “Misty Sue” or “Deena Jo”.

One day we were at the pool (or “swimmin’ hole”, as she called it) and she saw me walking in the shallow end, paddling my arms. She knew I couldn’t swim and I knew she was about to expose my secret as soon as she finished the Virginia Slim cigarette dangling from her lips. She paced back and forth along side the pool like a junkyard dog, watching me. I knew I was doomed, so I stayed in the pool until my hands and feet were as pruned as a crocodile’s scrotum. Yeah, I said it.

When I finally got out of the water, she took the last drag from her cigarette, dropped it into a can of warm Shasta soda and shook it.  Ssssssssssst.  She slowly walked over to me, grabbed me, then said, “Ya know what time it is, hound dog? …It’s swimmin‘ time!”

At first,  I thought it was weird that someone just called me, “hound dog”. Then, I was relieved because I thought she was going to say, “Hey, everyone! This kid can’t swim!”  Then, I realized “swimmin‘ time” loosely translated to “throw me in the deep end”.

I tried to scurry away and break her grip, but I couldn’t. She had me a crazy country wrestling hold I called, The Full Willie Nelson.  The more I struggled, the more my sunburned back scraped across the stubble on her leathery legs, until I could take no more. I conceded and wilted onto the scalding concrete.

fullnelson

She lifted me up over her head and threw me into the middle of the diving pool, which was the deepest part of the L-shaped pool. I sunk down about three feet, panicked, and started kicking my legs until I got to the surface of the water. I kept kicking my legs and flailing my arms and realized that the more I kicked and flailed, the more I moved closer to the safety of the wall. “Holy sh*t, I’m swimming!,” I thought.

I spent the rest of the day jumping into the deep end on my own and swimming back to the wall, all while Mrs. Willie Nelson smoked and watched from the edge.

Get to the Point…

Adobe is selling the hell out of AEM right now. Internally, they simply don’t have the capacity to keep up with all of the services opportunities to stand up, develop, and manage the platform, so they’re turning to partners to do the work.  If you’re hiring, you’ll be lucky to find a single AEM developer just sitting on the bench. And, if you do, they won’t be there long.

Time to jump in!

You already have some of the individual skills required to start developing in AEM. Most importantly, you’re already familiar with the tool. If you do this now, you can ride the demand wave for the next four years or so until the market evens out.  By then, you’ll be leading your own team.

The easiest way to learn it is to just jump in and do it.  Learning to code is the easy part. Since Sightly, we’ve enabled most of our front-end developers to create templates and components on their own without much back end coding. Template and component development is a good place to start.

Don’t get over your head!

You don’t need formal training,  but you do need a mentor who can take a look at your design and code to make sure you’re developing using best practices. Most of the clean-up work we do is directly related to a client hiring a development team who oversold their capabilities, didn’t follow any standards, and left the client with a non-scalable platform littered with hundreds of templates and components. Hundreds!  Don’t be that guy.  If you don’t have a mentor, get involved in the Adobe developer forums. There are some incredibly talented men and women on there who were once in your shoes and will answer any question you have.

I’ll leave you with a quote from Helen Hayes, whoever that is…

“The expert at anything was once a beginner.”

-Someone named Helen Hayes

Jump in the pool, hound dog. It’s swimmin’ time.

 

Stone Soup: A Recipe for Personalization Using the Adobe Marketing Cloud

This article is the first in a series I’m devoting to the idea of multi-solution architecture; that is, the ability to understand how (and when) to connect other solutions of the Adobe Marketing Cloud to help drive consistent, personalized experiences across channels and devices.

If you think you’re just going to be an AEM architect in this “digital disruption” age, you’re wrong. Over 70 of my clients own two or more solutions of the Adobe Marketing Cloud and that’s growing quickly.  Clients now expect agencies and system integrators understand how these work together to meet the marketing goals of their business.

Adobe has a specific role within their organization dedicated to the strategy, planning, and implementation of multiple solutions called the “Multi-solution Architect” (MSA).  It’s such a rare skill-set in the marketplace that within the walls of Adobe themselves, there are currently only around 15 MSAs worldwide.  This capacity gap means opportunity for you, if you take advantage of it now.

The job description for the Adobe MSA calls for expertise in at least one solution of the Marketing Cloud and (for starters), and the ability to at least ‘whiteboard’ which solution should be used in conjunction with one another to target and personalize their experience. So, it doesn’t mean you have to know ‘how to push the button’ on every solution – you just have to know there’s a button to push and delegate to your solution experts when appropriate.

Here are a few key characteristics of the MSA from the job description:

  • Leverage your deep knowledge of digital marketing technology to align overall solution architecture to digital marketing strategy.
  • Become a trusted advisor for Customers in planning, implementing and optimizing cross-channel digital marketing initiatives, creating a digital-first culture and mastering digital operational excellence.
  • Lead customers to place a stronger emphasis on targeting and optimization, apply data-driven insights to fine tune planning and improve digital ROI.

I learn best by example, so I’ll use the solutions of the Adobe Marketing Cloud as ingredients in the cupboard to make a recipe for personalization following the theme of an old folktale called, “Stone Soup”. This will help you start to understand the what/where/when the other solutions besides AEM should be used and get you on a path to becoming a Multi-solution Architect.

Stone Soup

Some travelers come to a village, carrying nothing more than an empty cooking pot. Upon their arrival, the villagers are unwilling to share any of their food stores with the hungry travelers. Then the travelers go to a stream and fill the pot with water, drop a large stone in it, and place it over a fire. One of the villagers becomes curious and asks what they are doing. The travelers answer that they are making “stone soup”, which tastes wonderful, although it still needs a little bit of garnish to improve the flavor, which they are missing. The villager does not mind parting with a few carrots to help them out, so that gets added to the soup. Another villager walks by, inquiring about the pot, and the travelers again mention their stone soup which has not reached its full potential yet. The villager hands them a little bit of seasoning to help them out. More and more villagers walk by, each adding another ingredient. Finally, the stone (being inedible) is removed from the pot, and a delicious and nourishing pot of soup is enjoyed by all. Although the travelers have thus tricked the villagers into sharing their food with them, they have successfully transformed it into a tasty and nutritious meal which they share with the donors.

Wikipedia, the source of all truth

Let’s imagine instead that this fantastic Stone Soup we want to create is a fully-personalized, cross-channel marketing ecosystem and the ingredients the villagers supply are solutions from the Adobe Marketing Cloud.  If we add the ingredients one-by-one, what personalization can we do? How could each ingredient make the soup even better? Let’s get cooking…

Adobe Experience Manager (AEM)

Adobe Experience Manager is a comprehensive content management solution for building websites, mobile apps and forms

aem

Our first ingredient we’ll add is Adobe Experience Manager, since this is the one you know best. On it’s own, we can do some basic personalization by leveraging the internal Context Hub, which is the new-and-improved version of the Client Context.  Think of the Context Hub as a place to store key/value pairs of known information about the visitor –  First name: Brad.  Last name: Meehan.  Sex: Sure.  Out-of-the-box we have basic information we can key-off of like geolocation and device data, and you can integrate with other services to populate the Context Hub on your own with other useful, custom data.

Once you have the key/value pairs in the Context Hub, you create Audiences and Offers to display unique content for those segments using the values as ‘traits’.  But, if you want to show content for a specific audience that is not at first identifiable using these values, you would have to ask the user “self-identify” who they are.

By self-identification, I mean asking the user to explicitly select their path for a particular journey, like a Choose Your Own Adventure book.  “Are you a new or existing customer?” or “Would you like to buy or sell a car?”  This works for a small number of audiences, but I’ve seen instances where a client wanted the user to select from a list of over 80 roles to show them different user journeys for each.

Now, if we were cooking in Gordon Ramsey’s kitchen, this is where he would say, “Self-identify? Are you f**king kidding me?!”   But you, our trusted MSA, would say, “There’s another way…”

grady_hellskitchen_post

Key Points to Remember:

  • Create, manage, and publish content specific to their audiences
  • Basic personalization functionality using Context Hub
  • How do I know the audience segment if values in Context Hub aren’t available or useful? The user must self-identify.
  • Licensing determined by number of instances

Adobe Analytics

Analytics is the industry-leading solution for collecting, organizing, analyzing and reporting

aa

What if the user’s behavior could determine their audience instead of asking them explicitly?  If the visitor is reading articles about “How much car can I afford?”, viewing current auto loan rates and trade-in values, and using payment calculators, they are likely a buyer versus a seller.  We can use these behavioral decisions to determine the audience they belong to and use this to drive personalization. We can also identify outliers, or anomalies in what we thought our visitors would do, versus what they actually do on our site and adjust our strategy ad hoc.

The key here is to be nimble. A human’s attention span is now less than that of a goldfish. You must determine their audience segment quickly and show them relevant content, or the user will look elsewhere.   I usually give a site about three clicks to find (or progress to) what I’m looking for before I use bad words in front of my kids and bailout completely.  Don’t judge.

I heard a weird statistic that said, ‘of the Adobe customers that own only one solution, 95% own Analytics.’

Analytics is an essential solution of the Adobe Marketing Cloud. I can use my Analytics data to identify high-performing content or assets, and share that with Adobe Target to show offers in AEM using the native Target/AEM integration.

Key Points to Remember:

  • Use it to learn about the visitor as they browse
  • Display personalized content based on their behaviors
  • Determine user segment quickly or user will bounce
  • You can use this on your existing web properties and mobile apps, regardless of the technology platform you used to build it.
  • Licensing determined by number of server calls per year

Adobe Target

Adobe Target is personalization solution that makes it easy to identify your best content through tests that are easy to execute. So you can deliver the right experience to the right customer.

atAdobe Target is the ingredient we’ll add to our pot to automate personalization using things like click-stream data from Analytics without having to manually manage or create targeting rules.  This fully-automates our behavioral-driven personalization effort using AEM and Analytics alone, solving the goldfish issue. Here’s a video demo of the Automated Personalization feature of Target.  Kinda bad-ass.

AEM 6.2 has native integration with Target and you can use audiences you create in Target to drive Offers authored in AEM.  Conversely, you can use Target (regardless of the presence of AEM) to author experiences using Target’s Visual Experience Composer.

You can also do A/B and Multi-Variate Testing (MVT) to determine and promote the best content for our Offers. Meaning, you can test combinations of copy, images, colors, etc to see which perform best to help drive conversions.

Key Points to Remember:

  • Automate personalization
  • Create “personalized” content using native Target to AEM integration
  • Perform A/B and Multivariate Testing. See what’s working.
  • Promote best performing combinations of content.
  • You can use this with your existing web properties and mobile apps, regardless of the technology platform you used to build it.
  • Licensing determined by page views per year

Adobe Audience Manager

Adobe Audience Manager is a data management platform that helps build unique audience profiles to identify the most valuable segments and use them across any digital channel

aamWhat if instead of driving personalization from learned behaviors, you could instead identify and target an audience before they ever did a single thing on the site?  Or if you could show the visitor a relevant, targeted offer in a search results page? Audience Manager is Adobe’s Data Management Platform that allows you to use first, second, and third-party data to create audiences and do cool things.

First party data is information you already own about your visitor, such as if they are an existing customer or not.  But, unlike data stored in your CRM system, data in Audience Manager is anonymized so there’s no Personally Identifiable Information (PII) to secure, manage, or audit.  But, visitors are still uniquely identifiable and have a single Marketing Cloud ID to share across solutions so we are marketing consistently to the customer regardless of channel.

Second-party data is information you get from your partners (like Facebook or Twitter) who are willing to share (or sell) data about the visitor. You can’t argue with how powerful leveraging data about our visitors from their social channels would be to increase conversions.  Want to sell more IROC-Zs? Pull in an audience of everyone who “likes” Metallica, Zubaz pants, and Oakley Blade sunglasses. Done.

Companies like Axciom and Datalogix have thousands of data points for nearly every person in the United States that you could purchase and use to target offers. This is third-party data. And you can mix and match traits to create very specific audiences you want to target and use them not only on your website, but in targeted ad buys.

Did you know in the Datalogix data set, there are 18,708,763 people who can instantly be identified as “soccer moms”?  This would have significantly helped me on my Match.com profile.

Key Points to Remember:

  • Integrate with anonymized first, second, and third-party data
  • Identify the user before they see the page
  • No PII data to manage
  • Share audiences across solutions
  • Licensing determined by number of impressions

Adobe Campaign

Adobe Campaign is a cross-channel campaign management tool that helps you improve and personalize campaigns across all of your media.

ac

Adobe Campaign is the ingredient we’ll use to nurture our clients and prospects via email and real-time in-app messaging with the ultimate goal of keeping them away from the unsubscribe button.

How many times have you received an email from a brand that had nothing to do with you? Or it wasn’t timely and therefore irrelevant to your needs? Just this week I received a message from a company with shipping tracking information for a product I received over a month ago. That would have been great to have weeks ago.

Messaging should not only be timely, but be relevant and consistent to the recipient depending on where they are in their user journey:

  • Learn more about our Wine of the Month Club!
  • Thank you for joining our Wine of the Month Club!
  • New Wine of the Month Club members only! Buy one get one free!
  • Thank you for your wine order! Your 20 bottles are on the way!
  • Track your shipping!
  • Back so soon?
  • Rough day at the office?

You get the point.

Unlike Audience Manager, Adobe Campaign does contain PII data about our customers, but  you can share anonymized audiences with other solutions of the Adobe Marketing Cloud.

Key Points to Remember:

  • Use first-party CRM data to drive email and in-app messaging.
  • Target and re-target prospects
  • Retain acquired customers
  • Hosted or on-premise options available
  • Licensing determined by number of active emails and number of emails sent per year

Adobe Media Optimizer

Adobe Media Optimizer is a media optimization solution that helps you forecast the best mix of search, display and social ads based on your budget. It also automates the execution of your media plan.

amo

I recently saw a banner ad for my personal bank with a call-to-action to “Open a Checking Account Today!” – even though I’ve had a checking account with them for the past 15 years!  Since I’m  in market for a used car, I’ve searched numerous times for used car loans in Kansas City and never have I seen my bank’s loan offering in a banner ad or paid search. Either they’re the only bank in Kansas City that doesn’t loan money or they missed a great opportunity to place a relevant ad touting their lending products. What ingredient could we add to our Stone Soup to solve this dilemma in the future? Media Optimizer.

Media Optimizer used in combination with the bank’s first-party data could have been used to identify me (and the other 360,000+ existing customers) and change the messaging to suit my needs. They could have bid, purchased, and displayed targeted ads in real-time specific to my needs.  

Key Points to Remember:

  • Bid, purchase, and display target ads in real-time
  • Show media to targeted customers only
  • Licensing determined by spend for display, search and social

Adobe Social

Adobe Social is a social management platform that ties every piece of data to your bottom line. Beyond just the likes and follows, manage the deep relationship between your customers’ sentiments and your business goals.

asCommunication is a two-way street and it is important to understand what people are saying about a brand, not just what the brand is saying to them. Adobe Social is used not only to create and manage social posts on various social channels and listen to the conversations to identify trends or new opportunities. This used with other tools of the Adobe Marketing Cloud could offer countless opportunities to proved relevant offers and content.

Recently a client wanted to know if it was possible to monitor social channels for trending conversations then use the most frequently mentioned keywords to automatically promote related content on their own website.  For example, say the chatter on the web suddenly increased around Volkswagen’s emissions scandal. Your large, reputable auto manufacturing client has numerous articles on their website about recent awards for legitimately having the lowest emission vehicles on the road.  Probably something you’d want to share now!  You could use Social, Analytics, (Target), and AEM to solve this complex, but useful use case.

Key Points to Remember:

  • Manage social engagement
  • Surface trends on Social channels
  • Target content for trending topics

Adobe Primetime

Not a freaking clue.

Key Points to Remember:

I got nothin’.

Conclusion

So, there’s your first taste of Stone Soup. Part two will dive deeper into multi-solution architecture with real world examples of poor digital experiences and how to solve them. Stay tuned.

Please send consulting questions to brad@bradmeehan.com

The Fastest Way to Develop an Adobe AEM Project

We’ll Always Have Paris

A snowstorm was in the forecast so my youngest daughter Sophia and I went to our local Wal-mart to replenish the essentials: bread, milk, and self-esteem.  Since we’d probably be cooped-up in the house for a few days, Sophia suggested we do a jigsaw puzzle together. It sounded like a good way to pass the time and do some father/daughter bonding together, so we headed to the toy department and selected a 1000-piece puzzle of a painting of classic Paris.

If you’ve ever done a jigsaw puzzle, you know a 1000-piece jigsaw puzzle is around 999 pieces too many. So, like any lazy man would do, the first thing I did when we got home was I opened Google and typed, “The Easiest Way to Solve a Jigsaw Puzzle.”  To my surprise, pages of results filled my screen; however, I was too lazy to view more than a few so I visited the first three or four sites that explained the same basic process for solving the puzzle the quickest way:

  1. Study the picture on the box to get a clear understanding of what you’re building
  2. Dump all of the pieces onto a work area and turn them face-up
  3. Sort the pieces into various piles containing the edge pieces and pieces of similar colors
  4. Assemble the edge pieces first to establish the boundaries.
  5. Assemble the larger objects in the picture, or “sub-assemblies” individually
  6. Move the sub-assemblies into their general location within the boundary
  7. Fill in the remaining pieces to connect the sub-assemblies
  8. Drink a beer (I added that one)

After reading the instructions, I dumped the box onto the kitchen table, saw the overwhelming mound of pieces, then jumped directly to step #8, which ultimately resulted in being without a kitchen table for over a month. However, Thanksgiving Day was rapidly approaching and we needed to kick our jigsaw production into high gear so we could actually eat at our family table.

We studied the picture on the box, then flipped the pieces over one-by-one while simultaneously sorting them into their respective piles. We also picked through each pile to find any pieces with lettering or words on them, such as street signs, addresses on buildings, the artist’s signature, etc. Aside from the edge pieces, these are the easiest to identify and assemble.

10632575_10152600463873068_3999875722702870131_n

10476663_10152600463893068_915264458606648346_n

We assembled our boundary with the edge pieces, then quickly assembled all of the signs and things with lettering. Easy money. Then, we did the “divide and conquer method” where I worked on the Eiffel Tower and Sophia worked on the Moulin Rouge sub-assemblies. My son Connor even jumped in to work on the hot air balloon. These were all different colors, sorted into different piles and we could work independently of each other while still working to accomplish the same goal.

10460416_10152600463943068_4326810887503213530_n

Finally, we moved the large sub-assemblies into place and filled-in the remainder of the pieces to connect them together. The sky in the picture actually took the longest – probably because all of the pieces were the same, plain color. Boring. If you get stuck here, go directly to step #8 and call it good.

Solving the AEM Jigsaw Puzzle

If you approach your AEM project like a jigsaw puzzle, you can gain efficiencies by following the same basic steps as above.

  • Study the picture on the box to get a clear understanding of what you’re building  – Study all of the creative, wireframes, business and functional requirements documents and matrices to have a clear understanding of what you’re ultimately creating. If your client is doing an entire digital transformation of multiple properties but starting with one site as a ‘pilot’, it’s important to consider the components, templates, and services of the other web properties to promote true reuse (and less work for you). Adding flexibility to accommodate for future state reduces development time, the number of templates and components, and regression testing effort in the future. Always consider the future state.

“We were recently engaged to consult on the first phase of a multi-site migration. Phase one consisted of only one of the client’s many web properties. The client considered this their ‘pilot’ site that would be a proof-of-concept for future roll-outs of other brands under their umbrella. There was a larger corporate-wide decision to use AEM as the enterprise-wide WCXM platform; however, there was a great disconnect between the individual brand managers who were approached the migration of their brand sites as separate projects entirely. So, separate RFP’s went out to agencies to bid on the work individually and the intercommunication between the brands and IT to standardize on the approach was non-existent at best. So, each RFP response was estimated ‘from scratch’ without any consideration of creating a library of common, reusable templates, etc. I evaluated the other properties to find commonalities and opportunities for standardization resulting in a potential (and realistic) savings of almost 20-30% on subsequent roll-outs by reusing the components, templates, and services. By evaluating and designing for the other web properties first and understanding the ‘big picture’, the pilot site set the groundwork for establishing a true, enterprise-wide system and standard for the subsequent brands to use and follow.”

  • Dump all of the pieces onto a work area and turn them face-up – This is the favorite part of the project for any true nerd (myself included) – that is, the technical discovery process to understand what systems, integration points, and other Adobe products that you’ll be working with. This discovery could take the form of stakeholder interviews or Technical Audit sessions where you uncover all of the existing technology collateral and web properties to determine what’s staying and what’s going away. Ultimately, these pieces will all be connected in the finished product, but it’s this discovery process that gets the technical architect warm and fuzzy.  Your organization should have a technical audit template or discussion guide to use as a basis for the interviews.  I prefer to send the document template to the client before the formal interviews for them to complete as much of it as possible (and to ensure the right people are in the room to answer the questions).  Then, it becomes more of a review of their technology landscape as opposed to an interrogation. Sections in your technology audit document should include:
    • Hosting
    • Platform information for each web property (CMSs, client-side frameworks)
    • Data store requirements and connectivity
    • Web services integration
    • VPN or IP Whitelisting requirements
    • Application and web server configurations
    • Source code repositories
    • Security and performance testing integration
    • Coding standards
    • Analytics platforms
    • Mobile support
    • User-generated content (UGC)
    • Single Sign-On integration
    • e-commerce
    • Search
    • Social channel integration
    • CRM integrations
    • Globalization/Localization
    • Mapping/Geo-location services
    • SEO
    • Accessibility requirements
    • Third-party services or vendors
  • Sort the pieces into various piles containing the edge pieces and pieces of similar colors – At this stage of the project you identify and document the templates, components, and service integration points to build.  You should already have a good idea of the parts you’ll be building if you did a good and granular job of estimating your project in the first place and had a successful technical audit.  Having self-contained blocks of functionality allows you to divvy the work across your development team when development begins. This organization exercise will also help identify commonalities to define a component inheritance model, meaning, establishing base functionality of common components and extending them when the functionality of a component deviates from its parent. The correct place to document this is in your Technical Design Document (or Specification).  Again, I’m not a fan of old school printed documents, so I use Google Docs or a wiki to author this specification. For a more Agile approach, define your components in Jira or a Trello board. Other self-contained pieces include custom widgets and xtypes, custom replication or flush agents, roll-out configurations, site search collections, workflow models, processes and launchers, and campaign and segment definitions for personalization.

“Sometimes when you start a jigsaw puzzle, you find pieces that are already attached.  You may even get lucky and have four or five pieces already connected together. You could break these apart and reconnect them, but why?  It’s already done for you! The same thing happens in a project. There are legacy features and functionality that already exist that someone will want to rewrite for the sake of rewriting, just to have it all in the WCXM system. An example of this is user generated content such as comments, ratings, and reviews of product data. Why reinvent the wheel and recreate that functionality when you can simply find a way to leverage it in its existing state? Rather, spend time fortifying the ability to retrieve and store that data in its existing state.” – Me

  • Assemble the edge pieces first to establish the boundaries – In this case, the “boundaries” are defined as the templates, scaffolding, site and URL structure, navigation components that you’ll ultimately use to build out the pages and content.  In my story above, I also mentioned assembling pieces with words or lettering on them. These equate to simple, content-managed components where an author enter values to input fields to create content. You should build these components before any other components. In my previous article “Develop your AEM Project in this Order“, I explain this approach and the importance of this order in more detail. Check it out.
  • Assemble the larger objects in the picture, or “sub-assemblies” individually – If you were successful in defining self-contained pieces of functionality in your Technical Design Document, these can now be developed independently of other development efforts. Examples of “large”, self-contained pieces of functionality are booking and reservation web services, login and registration features, or anything else that the primary function of the site is dependent upon. Prioritize these at the beginning of the project by their complexity and true importance to launch. These are the critical features of the site that must be completed in phase one.  Of course, you’ll tell the client they’ll get all of it when the site launches, but let’s be completely honest. There are always features that get pushed to a ‘phase two’ because they were either underestimated, managed poorly, pushed aside, had the wrong developer assigned to the work, or just weren’t production ready.  Now, if you had to decide between launching a hotel site with the ability to find a room with a booking search service or the ability to watch a 30-second video of the hotel in a custom video player (when the standard video player would work), which would you/the client rather have at launch?  Exactly.

“First get the car running, then you can wax it.” – Me

  • Move the sub-assemblies into their general location within the boundary – This is where a majority of the JavaScript interaction is integrated. In this step, you’ll connect the components to their corresponding services, connect data sources, etc. If you read and followed my “Develop your AEM Project in this Order” article, you should also have an established user/group base who are able to enter and manage content, manage form submissions, and search at this step. You should also have basic approval workflows configured.
  • Fill in the remaining pieces to connect the sub-assemblies – These are the finishing touches on the site.  The tedious ‘sky’ pieces in my puzzle story equate to the little CSS/style tweaks you do to get it all ‘pixel perfect’.  First impressions are lasting impressions, so give your team time to make these final touches so a customer’s first visit to the site is memorable.
  • Drink a beer – To celebrate your success with your team, not to drown your sorrows in booze.

Here is our finished product which is now framed an hanging on Sophia’s wall. In total, the puzzle took us over a month to complete. But the conversations and laughs we shared at this table will be remembered forever. Au revoir!

10646940_10152600463968068_2063058719046100178_n

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.

20141025_195201

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.

conga_line-gettyimage_0

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.

HM-Chicken-Exit-Med

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.

 

Usability Tip: Use Categories to Prefix Component Names – Part 2

In my last article Usability Tip: Use Categories to Prefix Component Names (LINK), I showed how pre-pending a category name to the beginning of the component name aids in sorting and is a quick way to help find the component you want to use.  After receiving a few questions regarding the post, a follow-up article is due in the form of a Q&A:

Q: “Why not use the componentGroup property?”

A: This is an excellent way to sort components when the content author manages only one site. You can use the componentGroup sort and categorize and restrict access to the components by use of permissions. However, if the content author manages more than one site within the same instance, this approach breaks down. It is possible to have two or more components with the same name but have different functionality.  Joe Gunchy would totally do something like this. My approach uses the site name for the componentGroup property, then further segregates them by adding the category to the name itself.

Q: “Would you be willing to share your macro list of categories for reference?”

A: Yep.  Here is the list of categories I used on my most current implementation:

  • Content – Any straight, content-managed components like Promotion Pods, Rich Text Editors, or anything that a content author uses to fill in the copy, imagery, or other content on the page.
  • Layout – Column controls, tabbed-panes used to divide a page into additional content areas
  • Navigation – Buttons, links, calls-to-action, list of links (footer, side rail, related links), etc. that help the user navigation the site.
  • Search – Components related to search functionality, faceted results, pagination, etc.
  • Social –  Components used to share or display social content such as “Add This”-type features, Twitter, Facebook, Pinterest, YouTube
  • Video – Brightcove, YouTube, or any video player, thumbnail library, carousels, etc.

What other categories can you suggest? Please let me know in the comments and we can add them to our list!