Category Archives: Engineering

AEM Development Workflow – Part 2 (finding the problem)

The AEM workflow problem is not really an inefficiency in the handover of HTMLs to CQ developers but how we should have been writing the code to begin with. We start here by seeing where the problem starts and how the code has been written. Unfortunately, we do see the OOTB Code in AEM as provided by Adobe itself are not coded to solve the problem. When I speak with Adobe they make it clear that these are reference sites and are to used as “Self-learning” but little did they know at the time that people will take this a practice and convert this into a culture.

AEM Development Workflow – Part 1 (introduction)

What I want to do here is to compare 3 workflows and see what each one has to offer and what’s the best possible way to remove this inefficiency or improve productivity.
1. Follow the current set of technologies JSP-Java but change the way of working aka different set of tools, trainings and processes
2. Use Sightly ~ the new templating language pushed by AEM
3. Use other templating languages like handlebars or angular which are more platform agnostic and goes beyond just CMS and AEM (old school application development also fits)

(Unit Testing) – Cost vs. Benefit

In the current world of marketing, where we have clients who want to run campaigns in next 2 weeks, we can’t be slow in how soon we release code. You can only be relevant in the industry if you can move quickly, achieve the Continuous Delivery or at least reach a point when you can get releases out in production with a reasonable speed. Those days where releases used to happen once every 6 months are gone; or at least gone in the environment/market I am operating.

We have to have Self Testing Code, We have to Unit Test, We have to have feedback loops and We have to have feedback loop as soon as possible. There is no avoidance; let’s understand and embrace Or be extinct in a few years.

Unit Testing – Why not?

Not doing Unit Testing (again not saying “automated”), is like someone telling me – Kapil, you are driving to go to your wedding and you are late and now you have to drive faster. But, instead of putting in a few more airbags and giving you better set of wheels, better brakes; We are going to take the 1 Air Bag you have today and also replace your wheels with an older set. Now, go drive else you will not get married. What do you think I would do – Drive faster and risk my life or start driving even slower because I hope that my would be wife loves enough to know that I had no option but to drive slowly. Well you get the point – While I may get married, She is going to stay mad at me for a very long time for ruining her perfect day.

Squares pegs in Round holes

This is a part 2 of a series of articles I have just started to write. I spoke about Think Clients (SPA) and CMS and what sort of problems do we have. World Wide Web had a boost back in 2000s and then more recently there has been a huge surge on web frameworks and more […]
Read More »

Thick Clients and CMS

Can a technology like Angular be used in the world of a CMS to solve the process problems where it just takes too long to get HTMLs from Site Developers into CQ’s templates and that too with a degree of quality that we are expected to deliver. This article lays down the foundation of what the challenges are and how it has started to impact our day to day life. The answer is not that simple, but at the looks of it, it seems we are using a technology to solve for a problem which is actually a people or a process problem. You can of course introduce a new component in the mix, but I still believe until people are ready to change, this new component wont do shit.

Caching Architecture (Adobe AEM)

If you ever have designed or want to design a platform/site that needs to support some steep non-functional requirements like 1 Billion hits, then you have to revert to using cache as a key part of the framework. Cache as we have known it back in the days is not longer just plugging in a library and start writing to it. There is a lot more to it when we talk in context of a Digital Media platform and how you deal with very high loads. This article will talk about principles that will help you design for Performance, Scale and Availability. This article focuses on Adobe AEM however, the principle discussed are applicable in context of Digital Platform as well.

A POV on Slice (a Adobe CQ Framework)

To sum it up in plain english – Not a lot of rope to hang off of; very little use cases to use and not exciting me as much.

For anything that is enterprise or platform(ish), I won’t go for this. The technical overhead that this framework and what it solves for is not worth the ROI of managing another framework. If I’d come across strongly types content-types, I would consider to use this. The ultimate tie breaker would be how how many of the content-types need to be displayed “as-is”. If all i had to show are several compositions of data (search or what have you) maybe not. But, definitely something to consider

Modeling Content in CQ54

CQ54 is not a a typical RDBMS where I can model a set of relationships in table and soon a pretty picture starts to present itself. CQ54 stores everything in its content repository (CRX) as nodes which follow an entirely different data model i.e. Hierarchical Structure. My experience with hierarchical databases has been with day […]
Read More »

Java EE 6 vs. Spring Framework: A technology decision making process

I came across this article which I just want to share with others – I found this a good read. Java EE 6 vs. Spring Framework: A technology decision making process.