For the UX Beginner
What is Agile Methodology?
It’s a set of project management methods and practices based on values and principles like collaboration, self-organization, and cross functionality of teams. Agile methodology originated in the 70s in Japan, Toyota is well known as one of the founding companies of agile practices. Known as Kanban, the process was further improved and renamed in the 90’s by Jeff Sutherland.
The agile approach includes 4 values:
1. Observe people and interactions with processes and tools
2. Provide software that works with comprehensive documentation
3. Customer collaboration through contractual concessions
4. Respond to changes rather than follow the plan
And 12 principles:
1. The greatest concern is to quickly satisfy the customer and provide valuable software
2. Welcome changing requirements and proceed smoothly
3. Have businessmen and developers work together everyday
4. Partially deliver software in combinations of weeks to months
5. Build projects around motivated individuals
6. The most structured and efficient wat to communicate information to the development team is face to face conversation
7. Working software is the primary measure of progress
8. Agile processes promote sustainable development
9. Increase agility by focusing on technical excellence and good intention
11. The best architecture, requirements, and design come from within the team
12. The team must periodically review and adjust their expectations on how to be successful
The agile methodology emphasizes working software, face-to-face collaboration, and flexibility as a means to an end. There are a few different sub divisions of agile methodology. Extreme Programming (XP) is the most well known and most used agile method. It employs location-based practices such as client placement and satisfaction. Scrum is also a very popular agile method. It’s an iterative process that focusses on peer work to make the framework of the project adaptable. Feature driven development is the third sub division. It’s considered more of a software extension process where the main goal is to deliver tangible and functional software in a timely and repeatable manner. There is also Dynamic System Development Method, Product Backlog, and Crystal Methodologies to explore.
Another methodology to know about: Waterfall
The waterfall methodology is a scale-based approach to development. It’s based on an analysis of the needs, design, implementation, test, and maintenance of a product. An easy way to distinguish waterfall from agile, is that tasks are always chronological when using waterfall methodology. There also tends to be a lot of control through written documentation, formal reviews, and user approval throughout the process.
What causes Agile to fail?
There are several identified factors that can disrupt agile software development projects. The more obvious ones include lack of training and support, managerial indifference, and organizational resistance. On a lower level, ambiguous design and code, unclear customer requirements, lack of developer collaboration, and more can also contribute to the failures of the project.
There are many technical ways to avoid such failings. For example, it’s important to:
· Pursue straightforward design
· Rigorous refactoring activities
· Keep an adequate quantity of documentation
· Keep software updated
· Provide priority to tasks
· Correct integration tests
· Give technical coaching to the team
All in all, Agile Methodology is a project management activity. While it’s good to be aware of how it works starting out, unless you’re a senior designer, don’t worry about it too much.
If you’d like to read more about agile development practices please check out:
· International Journal of Innovation Research in Applied Sciences and Engineering
· The Beginner’s Guide to Scrum & Agile Project Management