Agile Software Development Monitor Progress Project Progress By: Najam All about Agile Methdology
What is AGILE?
Pre-Agile Methodologies
AGILE-Iterative and Incremental development Image Source: Wikipedia PHASES
AGILE-Manifesto
AGILE Principles
AGILE- Methods(Putting Agile to Practice)
AGILE-SCRUM
AGILE – Effective User Story Contents A user story s hould contain the following main items Title : <a name for the user story> As a <user or persona> I want to <take this action> So that <I get this benefit> The story should also include validation steps — steps to take to validate that the working requirement for the user story is correct When I <take this action> , this happens <description of action > Optional Information that a story can contain An ID: A Unique identifier for the story. The value and effort estimate: Value is how beneficial a user story is to the organization creating that product. Effort is the ease or difficulty in creating that user story. The person who created the user story: Anyone on the project team can create a user story. For user stories that are too large to be completed in a single iteration or sprint, some teams use Epics. Epics are basically a higher-level story that’s fulfilled by a group of related user stories.
AGILE –Extreme Programming(XP)-Values
AGILE –Extreme Programming(XP )-Rules
AGILE- XP Practices Coding standard: Team members should follow established and adopted coding guidelines and standards. Collective ownership: Team members may view and edit other team members’ code or any other project artifact. Collective ownership encourages transparency and accountability for work quality. Continuous integration: Team members should check in changes to their code frequently, integrating the system to ensure that their changes work, so the rest of the team is always working with the latest version of the system. Automated CI should be considered using tools like Test-Driven Development (TDD): In TDD the first step is to quickly code a new test basically just enough code for the test to fail. This test could either be high-level acceptance or a more detailed developer test. Functional code is then updated to make it pass the new test Customer tests: Detailed requirements are captured just-in-time (JIT) in the form of acceptance tests (also called story tests). Refactoring: Refactoring is a small change to something, such as source code, database schema, or user interface, to improve its design and make it easier to understand and modify. Pair programming: T wo programmers work together on the same artifact at the same time. One programmer types the code while the other programmer looks at the bigger picture and provides real-time code review. Planning game: This includes high-level release planning to think through and monitor the big issues throughout the project as well as detailed JIT iteration/sprint planning. Simple design: Programmers should seek the simplest way to write their code while still implementing the appropriate functionality. Small releases: Frequent deployment of valuable, working software into production is encouraged. Sustainable pace: The team should be able to sustain an energized approach to work at a constant and gradually improving velocity. Whole team: Team members should collectively have all the skills required to deliver the solution. Stakeholders or their representatives should be available to answer questions and make decisions in a timely manner .
AGILE -Kanban Stop starting and start finishing! Basic Principles Start with what you do now Agree to pursue incremental, evolutionary change Respect the current process, roles, responsibilities & titles Encourage acts of leadership at all levels Core Properties Visualize the workflow Limit WIP(Work in Progress) Manage flow Make Process Policies Explicit Improve Collaboratively (using models & the scientific method) The Theory of Constraints (the study of bottlenecks) The System of Profound Knowledge (a study of variation and how it affects processes) Lean Economic Model (based on the concepts of “waste” ) http://www.everydaykanban.com/what-is-kanban/
AGILE –Agile Modeling(AM) With an Agile Model Driven Development (AMDD) approach, typically just enough high-level modeling at the beginning of a project is done to understand the scope and potential architecture of the system. During construction iterations modeling is done as part of your iteration planning activities and then take a JIT model storming approach where modeling is done for several minutes as a precursor to several hours of coding. AMDD recommends that practitioners take a test-driven approach.
AGILE-AMDD continued……
AGILE -Tools JIRA and it add-ins like GreenHopper , Confluence (Collaboration), Bamboo (Continuous Integration) and Crucible (Code Review) VersionOne Rally and its add-in like AccuBridge Mingle VSTS with Scrum Templates and its add-ins and templates like UrbanTurtle , Conchango etc. Excel and template from Jeff Sutherland PivotalTracker Scrumworks Hudson (Continuous Integration) Scrumpad TargetProcess Agilo BrightGreen Outsystems Redmine ScrumDesk Tinypm Trac Zen CruseControl (Continuous Integration) GoogleDocs spreadsheet template (and also collaboration) SharePoint (Collaboration) SVN - Subversion (Version Control )