The false security of Notifications


it’s like jumping into my car and every time i see the dashboard every light in there is brightly lighted up – to the point that one day i stop caring. eventually, someday something will fail – i just hope it’s not the day when I am driving to someplace in an emergency.

Most of our Notifications and alerting strategy is more than a brightly lit Dashboard. We cant any more tell what’s gonna fail when.

It’s a false hope we live with.

This part of my life is called “Chasing Quality”


We will see how this goes. But, for now the 5 rules for quality for me stand even today are:

– Deliver an artifact and ensure no one can find a defect;
– I can refactor the code knowing it won’t break anything;
– Code commits work like a charm and i can deliver code in environments quickly and with certainly;
– When I send this application to my dear friends in operation, they don’t hate and curse me;
– Quality meant, once my work is done it’s done

(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.

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.

Host projects on Maven Central


Recently, when I decided to make my projects available to the Java Community under Open Source license, I did a lot of things like Hosting my code on Google Code, using Maven to build and test the code and also making sure that I have a project site up and running. However, even after all […]

Unit Testing Framework: EAMSteps


EAMSteps is a framework that makes Unit Testing easier because of its following principles: – External data store for test data like excel spreadsheet – Automated assertions using co-related inputs and outputs – Minimal lines of code to get started It all started in 2009, when I decided that in long term I would need […]

TestNG or JUnit


For many years now, I have always found myself going back to TestNG whenever it comes to doing Unit Testing with Java Code. Everytime, I picked up TestNG, people have asked me why do I go over to TestNG especially with JUnit is provided by the default development environment like Eclipse or Maven. Continuing the […]