Tuesday, June 9, 2009

eXtreme on the Roll

Not something I have done but I plan to if they give me time, because this isn't something that I can wrap in business value terms;-) to make the customers understand but my view is when it falls in place it will speak for it self.

Over the past months I have been working on adding Selenium RC based tests that can run through the site ( we have well a mix and mash of JQuery, Velcoity, XHTML, and DWR in logic that belts out pages, or well page regions), automated load test scripts running on a combination of ruby, ant and JMeter, and tweaking deploy scripts to use the dynamics that good Mr. Hudson can provide all in an attempt to ease out things for me and cut down time taken in a release.

So, we have three weeks sprint, and here's what I think is worth wasting hours on

1)Check before you commit - (stop the production line types)
I don't like code reviews , and nor do I trust myself doing it seriously for anyone
Now just in case you are thinking of what happens to code quality? I add checkstyle/PMD config in all my developers' eclipse and block a checkin if there is a coding error or coding style error.

2)Keep Deploying
It does not stop at it: each build is followed by the deploy, and each deploy is to be followed a whole suite of automated functional/regression tests and then automated load tests(thanks again to Selenium and JMeter). the idea is that I should be the first one to know when the site starts cranking due that new story I did (better than anyone else finding it out a few weeks later)

3)Tests, more tests and even more tests
not just unit tests here; I go by the philosophy that you should have a test written also for that new feature/functionality/layout change on the site. (I stumbled upon JSUnit so you can test first Java Scripts as well and keep adding to the test base) befoe you change a feature on the presentation tier, and run all of those as a suite which is 'reliable'.

4)Do you need a release cycle then?
I can just pick it up from my maven repo and deploy it to production. If not production at-least integration and leave it to the releavnt owner of enviroment beyond to follow their processes , but yeah, I might be throwing in another one to integration before they manage taking the first one to production :-).

Om tatsat!!!

No comments: