My agile experience


I started my career in 2005, and in my very first project we were told that we will follow “Agile”  methodology. Today after spoiling my self for more 5 years in this industry I thought I should reflect upon the “crimes” people do in the name of Agile. Again this is my perspective and I do not have a definite answer to questions I am raising. Okk –no more introduction ..
Fresh from academic, we had heard of waterfall, iterative and other methods –but Agile –what’s that. We were briefed on what is Agile (No formal tarining):

  • Continuous release i.e. at end of iteration, we would have a working software.
  • Representation from each stake holder -client, developer and testing team.
  • Writing Junits for each of the functionality, something called “Test Driven Development”.
  • We should be ready to incorporate client feedback, no reluctance to rework, scrapping days hard work et all (No one really values a “fresher’s” time )

We did some self study on methodology and yeah – it’s action time, we started:

Continuous delivery

  • This we championed or rather say we “outperformed” –only glitch –it was a manual build process. Development team was responsible for releasing the build in first half of the week  which would be validated by testing team. Commit to SVN was not really necessary as long as the “Lead” developer releases the build.

Tests

  • Started with tests
  • Timeline became tight and we postponed few of the test
  • Client had demos coming up, and he badly needed the feature to outsmart the competitor –ohh other reason we pushed Juints –after all for what is the testing team being paid?
  • After 3 weeks we were quiet out of sync with the Junits –they have become functional and interdependent.

Stakeholder representation

  • Okk, everyone would be present for the meeting, but it turned out to be nothing more than a formality –testing team was testing a release a couple of days old, while dev team would use the status meeting time to brainstorm the new feature implementation pros and cons  — a total waste of time.

Client Feedback

  • It ensured that we got a new build every week ..quality and reliability of software, I am quoting the client “That’s why we have a testing team” and did anybody said bad code cannot pass testing cycle?
  • So much of releases meant we were in constant pressure, and code was being churned out –quality? As long as testing team approved it was fine.
  • We raised a flag about the code maintenance, response, again I would like to quote the client “Give me a release that I can show to prospective buyers –If I can sell I will pay to re write the whole code again”

Lesson learned
Any one who has followed agile would comment where is the “Agility” in above process –ok, I am on the same page. Agility is a mindset, “way of life” which should be adopted and realized by each of the team member –It should never be “forced”. Agility means adaptability to real time circumstances without compromise on quality –teams tend to overlook the later aspect.

  • Project Manager should have guts to take bold decision, if needed questioning clients’ feedback rather than blindly giving in.
  • Every feature which will go in next release should be agreed upon by all the stakeholders and never should be “forced”.
  • Team should come up with alternative if the circumstances are pushing towards compromise on quality.
  • “If I can sell I will pay to re write the whole code again” –This is an unwanted attitude from client –Project manager/team should have boldness to counter this attitude.
  • Status meeting should be just status meeting –scrum master must take a tough call when there is deviation. Why waste others’ time.
  • Never depend on manual build –why? Have you commented a couple of Junits or tweaked a exception block because there is a “forced deadline” –why? Release must go and you have  not slept for 30 hrs? __ I have done this, no prize for guessing that build had to be scrapped but we released it in first place –right?

I am a great fan of agile process, in fact I always wondered how can all the requirements be known in advance, how people could follow waterfall –But if execution itself is faulty, greatest weapons will fail.

Advertisements

About ChandanPandey

Try to come up with a good design as by product of good coding practices

Posted on August 7, 2010, in Agile and tagged , , , . Bookmark the permalink. 1 Comment.

  1. wonderful points altogether, you simply won a emblem new reader. What could you recommend about your submit that you just made a few days in the past? Any certain?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: