Agile Software Development
What is Agile methodology?
With Agile development, teams build software and systems incrementally. This is accomplished by working in short time boxes called iterations of 1-4 weeks. At the end of the iteration the team produces a shippable product increment that has been designed, developed, tested and demonstrated during the iteration. There are many freeware tools that support Agile methodology development; there are some that offer tools for x amount of free users. To name the example, I worked in Agile environment using Rally software, which is Project management, test/defect management, requirements management, product management and development management tool.
Agile Release planning
Agile teams deliver new product features to the customer in just a few months, as compared to a year or more with traditional waterfall processes. Releases are series of iterations
Iteration Planning
Iteration is time box in which a delivery team plans, delivers and receives feedback on a product increment. Goal of the iteration is to deliver working product increment in 1 to 4 weeks. Each iteration focuses on completing tasks deriving from requirements
Agile estimating
Agile uses Points to estimate story size. During estimates the team uses their capacity to determine how much work they can take on as individuals during the iteration. Each member adds their availability in hours for the iteration so that when they self assign tasks, they can see if they are exceeding their capacity. Team can adjust the amount of points for time they had originally allocated based upon past velocity for the iteration.
After iteration scheduling is done, team adds tasks to each story, estimate the effort required to complete each task and assign owners.
Agile quality
In Agile environment everyone is responsible for quality. Agile teams are cross-functional and share a common goal of delivering a high quality product that drives business value. Programmers, testers, product owners and managers work together towards this common goal.
Agile Programmers
Agile teams usually adopt to Test Driven Development (TDD – or Test driven Design) practices. TDD design approaches as opposed to the traditional validation functions of testing. They are more useful producing higher quality and more reusable and maintainable code. With TDD, programmers write code for tiny bit of functionality, if fails, write the code that makes it pass. And then moves to next tiny bit of the functionality.
Agile programmers are responsible for Unit Testing. Unit tests are smallest pieces of testable code isolated from the rest of the system and determined if the results are as expected. With unit testing, the code that reaches testing phase is much higher quality.
Agile testing
Agile teams deliver working, fully tested software every 1 to 4 weeks. Testing in the iteration starts with the requirements. Every requirement has acceptance criteria. Testers ask questions that elicit examples and clarification. Acceptance criteria are business oriented tests that tell if implementation meets client expectations.
Testing and coding occurs same time in the iterations. While Programmers are coding, testers preparing acceptance tests. Also, Testers work on defining test data, designing test approaches and scenarios, evaluating risks, etc. Testers, programmers and product owners continue to clarify story requirements, brainstorm testability approaches and collaborate as a team. Tester starts exploratory testing once tiny bit of code is developed.
Automation
Automation shortens the time between implementation and feedback. Unit test serve as the base of the regression suite. Quality unit tests free testers to do exploratory testing, instead they help automate acceptance test and test nun-functional requirements. It lowers cost of change.
Functional testing
There are lots of commercial, open source tools that integrate with agile development. GUI test tools are used to do smoke tests that validate the basic functionality of the system. They explore the system from end to end, they are not as exhaustive as manual tests, but are capable to find major problems.
Agile Reports
Agile tools provide standard agile development reports such as iteration and release burndown, burnup flow diagrams and capabilities to track teams’ progress. Reports and metrics can be easily shared with all stakeholders using email and common electronic formats.
If you want to see the quick demo on Scrum, refer to my other post HERE.
The Best 10 Sites for Free Premium WP Themes
extremely functional and effective templates for the site Thanks for the...
20 Websites I Follow on Web Design and Development
Thanks for sharing this list You can also check this site...
Using Social Bookmarks
Kewl you sohlud come up with that Excellent...