Principles of Agile Software Development Methodologies

With software development companies taking the agile route, a common question that surfaces is whether this is a set of guidelines or a methodology? The term ‘Agile’ is an umbrella term that includes numerous methodologies that are rigorous in their own identity and are used to plan, create structure and control the entire procedure of building an information system. The software development methodologies that come under ‘Agile’ practices are SCRUM, DSDM, XP, Crystal, and FDD; each of which follows standard practices and processes of software development. Each Agile methodology mentioned here takes in the principles and values of Agile software development methodologies while developing various software. Thus, the spirit of Agile is reflected in its principles, while the implementation of these stands for the methodology. So, Agile development methodologies are both a methodology as well as guideline.

This takes us to the 12 principles of Agile Manifesto that lies at the base of these methodologies. First, these practices aim to satisfy customers through quick and continuous delivery of useful and efficient software. Second, depending on the requirement and preference, say from a few weeks to a few months, working software are to be frequently delivered. Third, the agile development methodologies are capable of adapting changes in any stages of development of software in order to lend competitive advantage to the customer. Fourth, involving motivated individuals for building projects, and ensuring that they get necessary support, trust and environment to do the job. Fifth, throughout the execution of the project, developers and business people need to work closely to bring precision to their requirements.

Sixth, the chief yardstick for measurement of progress is working software. Seventh, face-to-face communication is the ideal and most effective method for passing of information within or to a development team. Eighth, developers have to lend continued attention to good design and technical excellence to achieve enhanced agility. Ninth, agile practices stand for continuous development to which developers, sponsors and users are expected to keep up. Tenth, self-organizing teams are known for coming up with the best designs, architectures capable of matching requirements. Eleventh, a well-organized team is expected to reflect at regular intervals on how to become more efficient. On finding suitable growth trends, they are expected to tune and adjust themselves to adapt to the changes accordingly. Twelfth, simplicity is crucial.

It is based on these principles; the real agility of the methodology you select can be assessed. Since agile stands for being lively and flexible, often developers try picking the practices of their choice and combine them. For instance, taking Domain Analysis, scrum meetings, Just In time, Backlog list, Just do it, Continuous Integration and etc., the developers can create processes that meet the requirements and suit the purpose of Agility in totality. In this way, one can take care of implementing both elements of management and engineering, like combining XP that focuses on engineering with SCRUM that focuses on Management, and such similar combinations that bring out the true mission of Agile development.

Since creativity is a natural aspect of being human, innovation is a facet everyone tries to achieve. To meet the innovative requirements of users, agile development methodologies allow creation of new combinations. It is not always necessary to start anything from scratch; often by customizing it to adapt to the local needs and knowledge is the key to achieve a new feature. Thus, being agile is a culture that if adapted by any organization will bring a complete change to their processes. It is not just a simple development thing; it is an entire change in the way of working, where the principles and values of agility need to be reflected and adapted regularly.

More at http://www.qaitdevlabs.com/AgilePractices.html

Advertisements

Leave a comment

Filed under Uncategorized

Agile Environment

      What are the latest tools and techniques for requirements gathering in an Agile environment? Do you see any emerging trends? 

In Agile frequent delivery is required and scope of documentation is very less.
In Agile development module, the benefits of getting “continuous” feedback from client came into process. This leads to organizations to recognize the opportunity to continue gathering requirements throughout the process — refining, clarifying, and discovering new requirements.
But as in Agile changes are so frequent we need to keep track of all this. Due to this tools helps us a lot.
Tool:
Arbiter is a requirements gathering and verification tool for web projects. Its aim is to sharpen the communication between stakeholders and developers.
Technique:
A JAD(Joint Application Design) is a facilitated and highly structured meeting that has specific roles of leader, speaker, facilitator, participant and observer.  JADs have defined rules of behaviour including when to speak, and typically use a round or U-shaped table. Motive is to distribute a appropriate agenda and an information package which everyone is expected.  MOM(Minutes of Meeting) are written and distributed after a meeting, including a list of action items assigned during the JAD that the facilitator is responsible for ensuring are actually performed.Image

Leave a comment

Filed under Uncategorized

Agile Software Development Methodologies

Let’s have Project Managers share their opinion: Does test-driven development fall into project manager duties? 

With any project whatever methodology we may use like agile (XP, scrum…) or traditional (waterfall, spiral…) they all almost have same goal/target and phases.  Goal of providing guidelines/discipline for better, manageable software development; all methodologies have feasibility, planning, requirements, risk analysis,  closing of a project apart from design, development and testing phases but it’s just the way how they are implemented/maintained or outlined by that particular methodology. Planning, requirements, risk analysis, closing come under the umbrella of roles/responsibilities of project manager; he is the bridge between clients, company and people working on a project. TDD is one of the agile practices that facilitates robust, manageable and testable code upfront though it have its challenges,  even in TDD all the aspects of project management are present which cannot be neglected.Image

Leave a comment

Filed under Uncategorized

Agile Development

At QAIT DevLabs, we follow Agile development methodologies in all our software engineering efforts. We have adapted our agile practices in a way that best suits building products from scratch as well re-building or sustaining existing software products. Read further to know how our practices bring into play the below principles from the Agile Manifesto.

For more details, please log on to: – http://www.qaitdevlabs.com/AgilePractices.html

1 Comment

Filed under Uncategorized

Agile Software Development Methodologies

Agile software development methodologies are almost the same but they are different in terms of their terminology, practices, tactics and implementation standpoint. Agile methodologies follow lean and flexible approach as per the requirement. The various kind of methodologies being used are Scrum, lean and kanban software development, Extreme Programming(XP), Crystal, DSDM, FDD etc. To know more about these methodologies log on to:

http://www.qaitdevlabs.com/AgilePractices.html

Leave a comment

Filed under Agile Software Development Methodologies

Agile Software Development At QAIT DevLabs

At QAIT DevLabs, we follow Agile development methodologies in all our software engineering efforts. We have adapted our agile practices in a way that best suits building products from scratch as well re-building or sustaining existing software products. Read further to know how our practices bring into play the below principles from the Agile Manifesto.

Implementing Agile Manifesto

“Satisfy the customer through early and continuous delivery of valuable Software. Deliver working Software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale”

Every project starts with a master planning that determines high level features for the product, best estimates and mapping/splitting them into small releasable chunks. These chunks are short development/QA efforts labeled as a Sprint. Typically we prefer a 2 week Sprint schedule. Every Sprint starts with a planning meeting that outlines a clear path to achieve the deliverables over the duration of the Sprint. Meticulous planning taking into account backlogs, and expecting unknowns along with daily tracking ensures that we never deviate from the plan.

Leave a comment

Filed under Agile Software Development Methodologies