Alpha releases are done to test functionality for early feedback Alpha releases do not run for 6 months Alpha releases are not exposed such that consumers are able to consume and create content Telling your users, that your software is in Alpha after 5 months of launch is a lame way of telling people that…
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.
The idea is to use our experience of things and make it better, Do It Differently. We often time forget that and what we end up doing is exactly what we did last time – the same good things, the same mistakes.
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
When you have to spend hours and hours and mostly on night, weekends and your anniversaries you ask yourself what could I have done better during development to make this all go easy on me.
Thread Dumps are you best friend when a production application (Java) crashes and if you can enable it to tell you something about the application then thats something. Here I have explained how and have included a bunch of Java Code you can reuse.
Use Annotations to anything is is core to the application and defines the core structure of the application. Anything that would need a code change is okay to sit as an annotation. Rest everything else should be XML.
The journey was nothing but painful all along the way. It took me 5 hours to do what should have been a few minutes job. The Site developer had the code up and running in a HTML file in a browser and all I had to do was to make it work “as is” within CQ. It seemed like the Force of Nature were working against me and everything I did, had a problem in it. I finally got it up and running (the designs done match off as is still), but it was excruciating pain.
This is a key step, and unless you get all those dependencies and if your project is brand new your project will not compile. If you are using an existing project it may just work if you have added those dependencies, but from experience as we dont compile JSPs those dependencies will not kick in. The code still works on CQ server because those dependencies are available at runtime.
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.
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.
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…
A set of utilities and classes that I have found useful over the years with features like Improved Loggers, Database Setup and many more.
I came across this very interesting article and the author’s views where programming started way back.
To kick it off, I have attached the tools that I am going to use in the development environment. This is not an exhaustive list, and I may add more things to it as I go about development.
What I intent out of this project is not to save the world, but to build a sandbox that can be used by myself and any other developer to try out bigger things like Performance, Analysis, Design, Testing, POCs on new technologies.
I have been running around many things, but I have realized that this time has now come for me to start something; something that I can be proud of. I am no Bill Gates or Einstein and I need to pick up things that I can do for the community. I have all those ideas where I want to do something.
Eclipse Market place – The experience of working on the marketplace was simply wonderful, something that I am not familiar in the Java world of development. Kudos to the Eclipse team to get this one going.
I will let you do the math, but what made me fell out of my chair was the fact that everyone in the room was accepting the fact that even before we were developing the application we would have 66% of the time spent in fixing defects. Not even once did anyone asked, how can we ensure that we do not have so many defects in the application. Now even once did anyone asked if we already have Unit testing how come we still have these many number of defects.
While working on enahncements on a project already in production, I had a very interesting conversation. Let me give a brief background – the core architecture is all in place and we need to build in new functionality. Of course, refactoring is being done along the road. In a specific scenario, I got into a…
Unit testing is a way of testing a small unit of functionality. A unit is the smallest testable unit of program usually referred by a function, procedure etc which is a part of a class. Ideally, a unit test is independent of any other unit tests. Benefits The primary goal of a unit test is to…