Agile methodology promotes a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages team work, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Girmiti Software’s team composition for a project that follows agile methodology is usually cross-functional and self-organizing without any consideration for existing corporate hierarchy or the corporate roles of each team member. Team members will take responsibility for tasks that deliver the functionality of iteration.
Concepts Brief Research Understand Brainstorm Flexibility Implement Launch CreativeSome of the principles those drive and govern Girmiti Software’s Agile manifesto are:
Achieve customer satisfaction by rapid, continuous delivery of useful software
Deliver working software more frequently (in weeks rather than in months)
The working software is principal measure of progress for the team
Even late changes in requirements are welcomed
Strict adherence to cooperation amongst business people and developers, on daily basis
Face-to-face interactions is the best form of communication (Co-location)
Projects are built around motivated individuals, who should be trusted
Continuous attention to technical excellence and good design
Simplicity in approach
Self-motivated and Self-organizing teams
Regular adaptation to changing circumstances, new technologies, etc.
Agile methodology is a combination of different methods, as listed below and we adopt the one that is suitable to meet the project and the customer requirement:
Extreme Programming XP
Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
Feature Driven Development (FDD)
Agile Unified Process (AUP)
The following are the representations of various processes involved in Agile Methodology:.
The underlined goal behind Scrum methodology is to dramatically improve productivity in teams previously paralyzed by heavier, process-laden methodologies. Its intended use is for management of software development projects as well as a wrapper to other software development methodologies such as Extreme Programming.
Teams in such an environment prefer highly visible communication and coordination tools that reinforce collaboration. However, most complex development environments contain too many variables for small team, manual agile techniques to work effectively. As team members increase, the attributes that make manual agile so effective in small teams don’t hold up. In fact, they actually become impediments in large-scale installations. So how do team members uphold Scrum’s tenets of communication and collaboration when they’re spread across offices, buildings, or even continents? And how they replicate manual agile in this context? Facing the challenges of scaling teams usually requires an agile tooling solution.
Scrum methodology is characterized by:
A backlog of prioritized work to be done.
Completion of largely fixed set of backlog items in a series of short iterations or sprints
A brief daily meeting (scrum), during which progress is explained, upcoming work is described, and obstacles are raised
A brief planning session during which backlog items for the sprint are defined/p>
A brief heartbeat retrospective, during which all team members reflect about the past sprint.
Scrum is facilitated by a scrum master; whose primary job is to remove impediments to the ability of the team to deliver the sprint goal. The scrum master is not the leader of the team (as they are self-organizing) but acts as a productivity buffer between the team and any destabilizing influences.
Scrum facilitates the creation of self-organizing teams by encouraging verbal communication across all team members and across all disciplines that are involved in the project.
The Girmiti team is quite familiar with Scrum Methodology as it uses the same in quite a few of the projects that they are currently working on or have in the past.