Crude Java and Agile thoughts
Category Archives: Extreme Programming
I recently did an experiment by designing using CRC cards. I did with my team and found it quiet useful and comfortable. The design outcome of this process was also the team’s design rather than one person’s design. Also, as everyone participated in the designing the design was better than a single person’s design. Please read the complete blog on my official blog site and share your thoughts.
Recently I experimented with pair programming by using two keyboards, one for driver and another for navigator. I was amazed by its out comings. It made programming fun and the code quality, design as well as the productivity increased. I have written the complete blog on my official blog site. Looking at the comments I got on that blog, I assume that people using two keyboards really like this technique. I think its high time we should change the definition of pair programming by adding a clause of using two keyboards. Referring to one of the comments I got on the blog “Pair programming was evolved much before the evolution of usb drives, so using two keyboards was not an option at that time”. Please read the complete blog and share your thoughts. Thank you.
My tryst with TDD (Test Driven Development) started around 2 years back, when my tech lead told me to try to code this way. The first feeling was of shock. I admired my lead a lot due to his immense technical capability. So, this process centric stuff didn’t suited his style of work. Most of the time he gave us all freedom to do a job. So, he specifying a process to write code looked a bit confusing to me.
However, I tried to follow his advice (guideline ;)), at least few times, but never found anything fruitful from it. Those days I was using Agile but not Extreme Programming. So, the tryst with TDD didn’t lasted long as I was never able to utilize it judiciously. The end result of following this practice was not coming clear to me.
Later, I changed my company. The new (present) company was a veteran in Agile and Extreme Programming methodologies/practices. So, I learned to pair program. Learned to re factor. Learned to not do the complete designing at once. Learned to do upfront designing.
Here the emphasis on junit test writing was enormous . So, I sharpened my skills on junit test writing and after a while, I was able to write junit tests pretty easily.