Page 2 of Agile Concepts

Life Cycle of Test Driven Approach

  Test Driven Development is a methodology which proclaims incremental steps: designing a unit test case, developing a functional module for the unit test case, making the test case pass, and re-factor the code. TDD recommends initiating the process by creating a unit test case. TDD assumes an automated unit test is available during its implementation. The test written should be initially failed as there is no corresponding functional modules been developed. Functional code will be developed in this phase for the test cases which are written in step1. The functional module developed may or may not be fit in the existing unit test case design. A good functional module only addresses the test case which was developed in step1, but no further functionality is predicted. After successful implementation of functionality, developers need to perform periodic refactoring of the code for easy maintenance of software.

  Advantage of Test Driven Approach

  Test Driven development provides following advantages:

  Better and simple design resulted because of test driven approach.

  Test driven approach generally reduces complexity of the design.

  As development is based on unit test cases, functionality is developed in small intervals and incremental nature.

  Test driven approach can yields a better communication flow among the team.

  Project velocity can be calculated based on the consideration of number of test cases succeeded.

  Test driven development approach relies on continuous execution of unit test cases, this facilitates constant regression.

  TDD encourages better understanding of requirements and better analysis by the developers.

  What is a standup meeting?

  Standup meeting are encouraged in XP practice. Standup meeting reduces the disadvantages of regular long meetings, helps to make team focus on the target, and makes everyone acquaintance with overall scope of the project. Communication flow is the basic purpose of the meeting. The scope of the meeting is to communicate problems, make team focus on solutions, discuss about failed acceptance test cases, unfinished tasks, check for application dependencies and re-factor the requirements if needed.

  CRC Cards

  CRC cards are descriptive representations of objects. CRC cards deals with class, responsibilities and collaboration. CRC cards are used in system design. CRC cards are designed using object technology. CRC represent an object with responsibilities described towards left and collaborations towards right. Though there is a comment that CRC way of representations lacks conventional design document, graphical representation makes design obvious.

  Key Players of Extreme Programming

  There are different players playing active role while implementing Extreme programming. Some of them are Programmers, Customers, testers, trackers, coaches, customers, business owners, consultant and managers.

  Who is this coach? What does he do?

  Coach plays a vital role in XP. He is responsible for complete process. His duty is to have a thorough understanding of the complete process and he should be in a situation to guide the team members.

  Who is this Tracker? What does he do?

  Trackers play a key role in implementing XP. His duty is track the difference between estimation and implementation. He traces the team players estimation and provides periodic feedback to team members about the task status. He also evaluates project status by tracing the progress of every iteration.

  What is Scrum?

  Scrum is an innovative software agile methodology which has gained significant importance in information technology (Gorakavi, Build your project using Scrum, 2009). The term Scrum originally derives from a strategy in rugby, “getting an out of play ball back into the game”. Takeuchi and Nonaka (Takeuchi & Nonaka, 1986)were the first one to discuss about Scrum methodology and its variants in product development with small teams. Scrum is a disciplined methodology which implements controlled system development. This methodology facilitates higher flexibility to marketing, better adaptability, higher resource productivity, and efficient team environment. Scrum basically underlines on the concept of ‘on-demand delivery’. Scrum methodology reduces re-factoring cost, prototype-cost and efficiency-leak cost.

  Life Cycle of Scrum

  Scrum methodology can be implemented in three phases: Pre-Game, Game and Post-Game. The first phase relies on planning. In this phase, Scrum players decide on the list of deliverables targeted for the Sprint. In development phase, Scrum team gets the prioritized tasks after sprint planning meeting, players break down the higher level tasks into detail tasks and formulate them in a detailed task list called Burn down charts .Once the product achieved necessary maturity, there will be a scenario where there are no new user stories from the business or product owners and existing product reaches 100 percent stability, then we can conclude that cycle is in closure or post-game phase.

  Life Cycle of Scrum – Pre Game

  In this phase, Scrum players decide on the list of deliverables targeted for the Sprint. Effort estimation is performed at a higher level in Scrum planning meeting. Effort estimation is iterative in nature. Sprint size, resource availability, dependency with other Scrum teams, risk factors are considered in planning phase, which is also called as pre-game phase. Various environmental variables like resource availability, technological challenges, system stability, expertise, and any other dependent factors must be considered during Sprint commitment. After initial planning phase is completed, Scrum players had a detailed outline about Scrum cycle term, tasks to be accomplished, resources performing on various tasks and other deadlines. Scrum cycle is also called as Sprint, which is usually varies between 3-8 weeks. Development phase is iterative in nature.

  Life Cycle of Scrum –Game

  In development phase, Scrum team gets the prioritized tasks after sprint planning meeting, players break down the higher level tasks into detail tasks and formulate them in a detailed task list called Burn down charts. Burn down charts has all necessary details about tasks, estimated hours, daily updates, load factor, and project velocity. Daily status meeting, also called as stand-up meeting was organized every day to track day-to-day status. Tasks update are been tracked in burn down chart. Unlike conventional software development lifecycle methodology, Architecture and design are part of this development phase. A product can be developed in multi sprints or by multi teams based on the complexity of the project. Development phase is iterative in nature, any show stoppers faced during the sprint cycle has to be discussed among different scrum players: Scrum master, Team leads, business owners, marketing folks, and customer support folks.

 
Pavan Gorakavi's Novels