Tuesday, September 6, 2011

Agile Observation

Many Organizations now started adapting to Agile Methodology. For software person who doesn’t know what is Agile? I would say Agile is an Iterative & Incremental Approach to develop Software. I don’t want to dig deep in to this, but I could say some basic values of Agile which will make you to better understand Agile, this is only my view/perception about Agile.

Many Software Development Methodology uses the concept of Dis-Integrate a Task and Re-Integrate the tasks. Yes Agile also does the same but in short iterations. At the start of the project agile team would create a “Project View - how we are going to deliver the software”. Following are some of the factors that influences creating a project view

- Client Priority (based on business criticality)

- Infrastructure

- Skill Set

- Communication Channel

- Resource Availability

- Quality Factors

- Delivery Cycle

- Understandability of Business/Requirements ….

The challenge here is the view may change at anytime based on the past (what we have delivered) and the future (the client priority and pending Delivery tasks). That’s the reason working in an Agile Project is interesting.

The created view always having many assumptions/perceptions, one of the main tasks of the team is to explore the assumption and find the truth or Actual Requirement (The Truth is the requirement can change at any time). Many projects went to critical situations (w.r.t delivery)/failed because of having false assumptions and perceptions created on business. One learning from agile project is Agile Delivery is the Team Delivery as all the delivered tasks are based on the team’s perceptions/assumptions.

The Agile Practice “Client Showcase” exists to avoid the assumptions and perceptions the team has is correct or wrong J . So that we can correct ourselves swiftly without proceeding to the further delivery/iteration cycle.

Most of the Agile Practices are to avoid the perceptions about the business and to have early planning/preventive planning/Feasibility of Delivery/self understandability, that’s the reason all agile practices are repeatable.

One of the fundamental of Agile is Practices will not change but the process may change. The process is based on the context (current situation of the project) , and also based on the two important values

- Sequence of the tasks/Delivery Cycle

- Bringing Synchronization between (team-client, peer-peer,Dev-Dev,Dev-QA,Dev-BA,BA-QA,BA-Client)

The behavioral aspect of the Agile Team is to treat every member as a client , QA should treat Dev as client and QA also should treat BA as client. The reason for this approach is we always need to be careful on understanding what others doing within the team and how their change/task is going to affect our team. Though this looks defensive the fundamental here is team will be having better understandability.

The reason for having the practices like “StandUp” , “FeedBack” and “Retrospective” are to bring better understandability and we can prepare ourselves/clarify what other team members think about us.

Agile project needs resources who are Self Initiative and Self Driven, based on the feedback received everyone should tune themselves. Agile projects also doesn’t maintain any resource dependency as the practices are framed such a way that anyone can work at any situation/time frame of the project. Agile Project requires skilled resources not mind workers.

No comments:

Post a Comment