Friday, 19 June 2009

Product Development and Agile

Let us consider a product that has been released in the market and has won accolades for its UI. The next version, minor or major, of the product would obviously benefit from the appreciation but what if the product owners decide to tweak the UI more and settle for the menu’s look, feel and location.

Let us say that the below image represents the current menu look – the traditional drop-down menu. Imagine the plight of a designer who cannot see the changed look of his text.

And the below image is the proposed, new look for the same feature. This not only complies with the Mac and Windows Vista themes, it is also space saving that icons pop-up and reveal functionality as and when necessary and the menu itself can appear at the corners of the screen just like a rotating dial!

Great feature! So, what is the best way of developing this new feature?

There are many ways of developing software but the Agile way fits in on all counts due to its very nature of composition. Below are the reasons that the Agile way is a tailor-fit development method for products.

New Product/Feature plan and scope of Agile in it

Agile was formulated to suit scenarios where frequent or dynamic changes in requirements are present. And for a product’s lifecycle, these are the greatest impediments to the products’ success. Constant vigil on competition, growing technology and market demands make Agile the best suited way of software development for products.

There are lots of similarities in the nature and make-up of Agile teams and Product teams.

Both consist of talented, passionate and committed members. Both the teams are self-driven, self-motivated and innovative. Both teams are constantly looking for ways to improve the existing software towards “better software”.

The below table shows a comparison in the make-up of both the teams:

The best way, recommended, for UI implementations is to make sure that the designers and developers do a “Stand-up” meeting every day. This removes all ambiguities in what the designers envision and what the developers develop. The presence of QE (Quality Engineering) or QA, as is more popular called,  is also a great help as the scenarios become known to them and testing can happen in parallel.

Have a collaborative workspace.

Product development insists on innovation and creativity.

A collaborative workspace, where a team working on the same component/story when placed inside the same workspace will find better shared understanding and clarity than seated away in different cubicles or rooms.

Avoid cubicles, separate rooms and insist on a dining room kind of a layout with people sitting face to face on either side of the table.

Use LCD monitors that are compact and slim in shape; make sure the lighting is pleasant and well-ventilated.

The whole room is meant to be a complete workspace for the whole team and so have sufficient mediums of communications like a Video Conferencing facility, white boards, flip charts etc.

The stand-ups, video conferencing, telecoms and discussions are artifacts of an Agile method that increase the agility in the team and therefore, if you conduct all such meetings in separate places it would only lead to more loss of time, which will decrease the agility in the team.

No comments: