November 3rd, 2010
Software development is all about incremental functional development.
However we find a great impedance mismatch between development and testing synchronization. Though we talk about continuous integration and verification, most of the user stories come for verification only at the end of sprint which pose a major challenge in front of the testers just because of mismatch between the time available and amount of work to test.
To this point, developers may argue that they cannot give unfinished feature to the testers as they broke their work (user-story) according to technical subtasks. So for a developer Controller class has been written but Service still needs to be written. So tester may not be able test the technical tasks. Tester is more interested towards functional part completion instead of unit tests. This results in a impedance mismatch between developers and testers.
Read more »
May 10th, 2010
These days there is good amount of debate on the efficacy of the automated acceptance tests. Many have started believing that current way of acceptance testing is a waste as it doesn't provide you the relevant ROI as you'd expect from it. People have provided some alternatives also, but to me they look very subjective where you'll always prompt with - "it depends". In this post, I am not going to talk about yet another alternative of automated acceptance testing, but rather will put some practical facts based on our project experience that worked for us.
Read more »
December 3rd, 2009
After hearing a lot of good things about upcoming Maven 3 but not getting any stable release, I thought I should give it a try with its early snapshot. So I downloaded it from its svn repo. As I was a bit impatient, without looking at instructions I built it using ANT. Later I realized that I could also do it using existing version of maven. After building it, I thought I should give it a try on my existing project and here are a few observations.
- Maven 3 has been designed to be backward compatible and it worked nicely for my project with minor hicups.
- Initially I thought it's my misconception, but guys, here's a good news - it's much faster than Maven 2.
- It's more verbose (for better) and provides information (relevant plugin and associated goal) on each step being executed
- It doesn't seem to like to redundant information anymore. I had duplicate dependency in my pom.xml which used to work in Maven 2. Maven 3 doesn't allow it.
- While working with it, I simply loved its feature of restartability. In Maven 2, if your test case fails, you have to start all over again. In Maven 3, you can restart from where you left after fixing the test which (I know you already figured out) is a great time saver. Here is an example:
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :elmar-import-incr
June 2nd, 2009
One of the key USPs of pair-programming is - it provides value which is more than simple typing. That includes ACTIVE participation in code-review, knowledge sharing on continual basis, frequent design discussions with minimal distractions etc. If you primarily focus on knowledge sharing, pair-programming essentially provides true form of knowledge sharing as instead of looking at some bulky heartless documents you sit together with a person who has already worked on the subject and can have conversations and design discussions.
Read more »
May 21st, 2009
World is becoming a global village especially in form of communication and the dissemination of information. In context of current economic turmoil and lack of enough trained software professionals locally, distributed Agile is becoming a norm for software project execution.
Earlier, most of the times, entire distributed software project used to be executed completely at offshore because of time-zone differences and communication issues. Now because of communication revolution, you see a new trend where software companies like to extend their teams (augmented Agile teams) with different vendors. Recently while working in such a project from a distributed location, we realized the need of local retrospective.
Read more »