![]() There wasn’t a consistent way of describing these different ways to develop software until a group of 17 people thought, “We’re all doing these different approaches to developing software. People borrowed the original frameworks and tweaked them with different practices to make them appropriate for their own contexts. The spread of the ideas at this time was very organic, and all of those different approaches started to grow in a very grassroots manner. This is where frameworks such as Scrum, Extreme Programming, Feature-Driven Development (FDD), and Dynamic Systems Development Method (DSDM), among others, started to appear. The people who created those methodologies figured that others might be interested in getting some of the same benefits they were experiencing, so they created frameworks to spread the ideas to other teams in other organizations and contexts. These methodologies emphasized close collaboration between the development team and business stakeholders frequent delivery of business value, tight, self-organizing teams and smart ways to craft, confirm, and deliver code. These software developers started mixing old and new ideas, and when they found a combination that worked, they created a methodology for their team to help them remember the combination of ideas that worked in a given situation. We’ve got to come up with something different.” Starting in the mid-nineties, there were various practitioners, either people working inside organizations developing software products or consultants helping organizations build software who thought, “You know what? The way we’ve been building software just isn’t working for us. However, people started working in an Agile fashion before that 2001 meeting. Many people peg the start of Agile software development, and to some extent Agile in general, to a meeting that occurred in 2001 when the term Agile software development was coined. ![]() Pre 2001 – Practices and Methods Develop Independently through Experience Those technical practices are essential and something you shouldn’t overlook. However, another key set of practices that are not as frequently followed but should be are specific technical practices that directly deal with developing software in a way that helps your team deal with uncertainty. When most teams and organizations start doing Agile development, they focus on the practices that help with collaboration and organizing the work, which is great. Managers mostly step back and let their team figure out how they are going to deliver products, but they step in when the teams try but are unable to resolve issues. Managers provide the environment that allows the team to be successful. Managers make sure team members have, or obtain, the right skill sets. Those teams don’t have to have specific roles involved so much as that when you get the team together, you make sure that you have all the right skill sets on the team. ![]() It means that those teams are cross-functional. It means that teams have the ability to figure out how they’re going to approach things on their own. That doesn’t mean that there aren’t managers. ![]() There’s a big focus in the Agile software development community on collaboration and the self-organizing team. ![]() Solutions evolve through collaboration between self-organizing cross-functional teams utilizing the appropriate practices for their context. One thing that separates Agile from other approaches to software development is the focus on the people doing the work and how they work together. When you approach software development in a particular manner, it’s generally good to live by these values and principles and use them to help figure out the right things to do given your particular context. What is Agile Software Development?Īgile software development is more than frameworks such as Scrum, Extreme Programming, or Feature-Driven Development (FDD).Īgile software development is more than practices such as pair programming, test-driven development, stand-ups, planning sessions, and sprints.Īgile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it. It’s really about thinking through how you can understand what’s going on in the environment that you’re in today, identify what uncertainty you’re facing, and figure out how you can adapt to that as you go along. The authors of the Agile Manifesto chose “Agile” as the label for this whole idea because that word represented the adaptiveness and response to change which was so important to their approach. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment. Agile is the ability to create and respond to change. ![]()
0 Comments
Leave a Reply. |