Everything you need to know about Agile Methodology
There is a lot of content written on agile methodology and after working for more than 5 years in the I.T. industry I wanted to share some of my thoughts on Agile.
What is an Agile methodology? quite simply, agile is a hype word that the IT industry uses to explain a substitute technique of project management.
Agile is a technique that helps teams provide fast responses to the remarks they receive on their projects. It creates possibilities to evaluate a task’s course throughout the development cycle. Teams assess the project in regular meetings known as sprints or iterations.
An agile is a very empowering technique that helps organizations design and constructs the right product. The management procedure is really useful for information technology companies as it allows them to examine and enhance their product throughout its development. This permits companies to provide a surprisingly perfect product so that they stay on top within the market.
12 Principles of Agile Software Development
- Our highest concern is to fulfill the customer through early and non-stop delivery of valuable software.
- Always welcome changing demands, even late in development. Agile methodology harness change for the client’s competitive benefit.
- Select a timeframe at the start of a project and provide software as the development proceeds, it will surely help you satisfy your client.
- Business people and programmers need to work together every day during the project.
- Build projects around inspired individuals. Provide them the environment and help they need, and trust them to get the job done.
- The most effective and imminent approach of transfer data to and inside a development team is face-to-face communication.
- The properly functioning code is the primary scale to measure the development pace.
- Agile methods promote sustainable development. The sponsors, programmers, and purchasers ought to be ready to maintain a gradual pace indefinitely.
- Continuous attention to technical excellence and appropriate design increases agility.
- Simplicity is a crucial a part of effective agile management.
- Self-prepared programmers build the most effective design, know the needs of clients and styles the product perfectly.
- Just give time to your team, it will produce better results with the passage of time. Believe in your team. It will give you a better result. I bet!
I am not going to discuss the different agile methodologies in detail in this post instead I will now explain what approach worked for us because we at eSketchers use hybrid of two methodologies commonly. Some of the methodologies we use at eSketchers are scrum and DSDM. I am a big fan of TDD but usually client budget does not allow it all the time and it is usually incorporated later when the product starts generating some revenue and it does not happen for all products.
Scrum suits us because of our team structure and helps us define and track our daily goals and DSDM to deliver the complete product.
Some people think that Scrum is a methodology; however, one should know that it as a framework for managing a method. Not a methodology itself.
Scrum has three roles: Product Owner, Scrum Master, and Team.
The Product Owner should be a person with vision, authority, and availability. The Product Owner is answerable for ongoing communication the vision and priorities to the programming team.
The scrum master:
The Scrum Master acts as a facilitator for the Product Owner and the team. The Scrum Master doesn’t manage the team. As said by the Scrum’s founder, “the team is completely self-managing.” programming team is liable for self-organizing to complete work.
A typical team includes a combination of software system engineers, architects, programmers, analysts, quality assurance experts, software testers, and user interface designers. Each sprint, the team is accountable for deciding how it’ll accomplish the work to be completed. The team has autonomy and responsibility to fulfill the goals of the sprint.
Team meets every day to give progress updates. It usually consists of what I did yesterday and what I am going to do today. Scrum master asks everyone in the team one by one and it must not be longer than 5 to 10 minutes.
Dynamic Systems Development Method (DSDM)
DSDM is vendor-independent, covers the complete lifecycle of a project and provides the best solutions advice for on-time, in-budget delivery of projects, with tested scalability to deal with projects of all sizes.
The eight Principles of DSDM are:
- Focus on the business need
- Deliver on time
- Never compromise quality
- Build incrementally from firm foundations
- Develop iteratively
- Communicate continuously and clearly
- Demonstrate control
Agile isn’t the answer to everything!
Do not get me wrong: I’m a big fan of agile. I’ve thankfully embraced it for years, and that I experience running in agile environments. But it’s time we stop the tyranny of agile and understand that it’s simply any other device within the toolbox and stop blaming the methodology for lack of structure and necessary documentation and means to bleed money from customers through lack of defining a deliverable product.