Wednesday, May 9, 2012

RESTFul Webservices

I liked the concept of RESTful webservices and at the same time worried how easily one can develop a not so RESTful webservices.

I am not sure, if I can label it little loose in terms of specification, as the usage of POST and PUT is little confusing as it might differ based on the implementation. A developer, can do either create or update in either of the methods.

The only rule I am trying to burn in my head is that PUT is idempotent.

Recently, I presented the following presentation in our company.

I like the JerseyTest as it helped me a lot in writing test cases and I think one should always pick a framework which is easy to unit test.

Unit testing shouldn't be an after thought, it should be designed!!!

Friday, October 7, 2011

Agile Beyond Iterations - Agile development

Agile adoption is not successful just by working under the umbrella of  iterations.

I have seen many teams work in iterations but are not agile.To be agile, the teams should self-organize and commit to the sprint goals.

  • Teams should continuously deliver working software every iteration.
  • The team should ensure that a testable features/stories are developed within every iteration

  • Developers should understand the concept of evolving software Architecture.  
  • Developers should keep in mind that the code written will be revisited to re-factor - to enhance the functionality as well as the architecture.
  • Automated Unit testing is not optional, it is mandatory to be successful.

  • As the features are developed iteratively, QA should emphasize on automation to support the incremental and continuous functionality testing. 

Product owners:
  • The stories should be written properly and clear acceptance criteria should be defined.

Scrum Masters:
  • Inspect and Adapt- Retrospection meetings should be facilitated for continuous improvement.

  • Team goals should be given significant weightage while defining individual objectives.

Tuesday, August 9, 2011

Agile rollout issues

As an Agile coach, I noticed few issues which are common across the various teams I helped with Scrum adoption.

Initially looked like most of the team members, team leaders and managers are enthusiastic about the scrum rollout, however, as usual, some are reluctant for the change. 

Eventually after lot of presentations and one-on-one discussions, most of the questions were answered and the agile rollout got initiated and by the way, it had the blessings of executive leaders. Without the executive leadership belief in agile it is difficult to adopt.

Initial sprints are rough and later seemed as if the teams got hang of it. However, after 5-6 sprints[2-week], scrum principles are diluted and Scrum masters are getting into the comfortable state and reluctant to stand-up and work with the team and management to follow the proper guidelines. 

Common themes which needs special attention:

  1. Lack of Test automation: Test automation is consistently given a last priority and in spite of its presence in the the 'Definition of Done'. Team is  preferring the old habits of manual testing and not understanding the importance of automation in agile world.
  2. Not completing a story within a sprint: 
  3. Shared resources instead of dedicated team members
  4. Production support issues: development teams are interrupted a lot for the production issues and I believe a dedicated and well trained production support team should be helpful.
  5. Lack of automated unit testing

I personally feel that there is a chicken and egg situation here :-)

Teams tend to give high priority for customer commits, defects, and high priority and keep the automation at the low end of the stack. Which comes first, the automation or the defects/production issues.