Almost every software development agency today is focusing on practicing Agile methodology or is at least influenced by it. So, what exactly is Agile software development methodology? Not Sure? No worries, you are on the right page! Today our team of software development specialist is going to discuss about Agile software development methodology and how it can cohesively fit in with UX design to ensure faster development of an innovative, feature-rich application. In this post we are going to cover the following points:
- What is Agile software development methodology?
- Introduction to a few popular Agile frameworks
- Roles on Agile software development teams
- Infusing UX design approach to Agile development methodologies
- Challenges to UX–Agile symbiosis
- Doing user testing on an Agile project
Want a faster translation of your idea into a viable app?
Go Agile with our software development specialists!
What is Agile software development methodology?
The Agile software development methodology is a collective term for many iterative and incremental methodologies or processes that basically encompass iteration and continuous feedback in order to constantly fine-tune and deliver a software system. Some of the popular Agile methodologies are Scrum, Extreme Programming, Lean software development, Dynamic Systems Development Method, Crystal and Feature-Driven Development. Although these methodologies are unique in their specific approach, they all focus on facilitating collaboration as well as faster and effective decision-making.
Introduction to a few popular Agile frameworks
Now, let’s briefly introduce you to some of the widely used Agile development processes:
This Agile project management methodology is so far the most popular because it comprises of a few common sense practices applicable in many situations. This methodology, created by Ken Schwaber and Jeff Sutherland, focuses on timeboxed periods better known as sprints wherein working features are added to a software after small iterations by self-organizing teams. Scrum in itself is never enough and hence software development teams rope in other methods to complement it.
Extreme Programming (XP)
This Agile software development methodology, created by Kent Beck, is a set of programming best practices of which a few are taken to an “extreme level”. Like other Agile methods, XP too considers ongoing changes to software as a desirable and much needed aspect of software development. When it comes to selection of practices, XP leans towards the routine software development activities of developers. This Agile method also helps to fill most of the loopholes left by Scrum, hence is regarded as complementary to Scrum.
Lean Software Development
This Agile project management framework is translated from “lean manufacturing”, practiced by the Toyota product development system, to the software development space. This methodology, promoted by Mary Poppendieck and Tom Poppendieck, is said to form perfect match with Agile concepts.
Dynamic Systems Development Method (DSDM)
Created and maintained by the UK-based DSDM Consortium, this Agile management methodology was originally based on the concepts of Rapid Application Development. DSDM is similar to Scrum in terms of the practices for management of software development, i.e., it also lists a few practices and leaves the product development part to the development teams.
Developed by Alistair Cockburn, one of the original signatories of the Agile Manifesto, Crystal methods are a group of very flexible software development methodologies. Crystal focuses on six key aspects – people, interaction, community, communication, skills and talents while process is regarded as secondary. Higher possibility of success in Crystal is indicated by the seven common properties in its methods including easy access to expert users, reflective improvement, osmotic communication and frequent delivery.
Feature Driven Development (FDD)
Jeff De Luca introduced this Agile development framework that comprises of five basic activities as follows:
- Develop an overall model
- Build a features list
- Plan by feature
- Design by feature
- Design by nature
- Build by feature
The last three activities are short processes and are iterative in nature. Since, every project will have its own feature list due to its own unique model, each feature is built within two weeks. In case any feature is taking longer then it will be broken down into still smaller features.
Want to deliver high quality apps within a fixed timeline?
Leverage Agile methodology with our software development specialists!
Roles on Agile software development teams
Since the software market moves today with unprecedented pace, Agile teams work with a sense of urgency to match that speed. Using adaptive planning, each role on an Agile team contributes towards the formation of a cohesive whole. Common roles in an Agile team include the following:
Scrum master (Scrum) or Project lead
The scrum master role acts as the leader responsible for providing guidance to the team facilitating them with resources when required and also removing hindrances from their path to goal.
This role mostly encompasses the soft skills and knowledge required for project management rather than technical skills which are usually left to the overall team. This role is responsible for the creation of software or product and its on-time delivery. Depending on the project, the team members usually comprise of developers, QA engineers, designers, database engineers, designers and analysts. They are mainly responsible for planning, design, testing, documentation and project delivery.
Product owner (Scrum), On-site customer (XP)
This role represents the voice of the customer including internal stakeholders and is responsible for defining the vision and realizing it by working with the team members. Product owner refines all the ideas, insights, and feedback to define a product vision normally short and simple. The vision details around who the customer is, what values are being addressed and a strategy describing the action plan to address them. To simplify the vision for the development team, it is broken down into a series of user stories which explicitly explain who the target user is, what the problem is, how it is solved and why it is important for the user. The team members then review these user stories, prioritized by the product owner, to make sure that they are on the same page.
This role represents a broad category of people who are impacted by the deliverables of the project. For instance, users, managers of users, operational support teams, technical support teams, executive teams, investors, and more. In case, your Agile team members do not have domain expertise for certain specialized skills then some extended cast members would be called upon to assist the team.
Infusing UX design approach to Agile development methodologies
Wondering why are we integrating UX in Agile? Or why should you consider about UX design in Agile software development? UX as we all know is about how people feel when they use a product or service, mostly a website or an application. Thus, UX puts emphasis on the usage which is necessary for the Agile roles to achieve their goals. Moreover, UX enables them to identify what behaviour the product or software should have. Therefore, our software development experts believe that UX is critical to the success of Agile software development teams. According to Peter Morville, a pioneer in the UX field, there are seven factors that best describe UX which is depicted in the “UX honeycomb” tool below:
Let’s dive deeper to find out how these seven factors influence overall user experience:
- Useful: If a product is not useful, or has no purpose then it will be unable to compete for user attention alongside other useful apps. However, you must know that it’s only the sole power of a user to deem your app as useful.
- Usable: A product is usable if it enables users to achieve their end objective effectively and efficiently.
- Findable: The product must be easy to find and in case of a website or app, the content within it must be easy to find as time is precious for most users.
- Credible: Your app must be endowed with the capacity to generate trust among your users that the information you app provides is accurate and genuine.
- Desirable: Your product or app must be able to create desire in users through image, branding, aesthetics, identity and emotional design.
- Accessible: Your product must deliver an experience to users who are disabled in some respect, such as vision, motion, learning or hearing impaired.
- Valuable: Your product or app must be able to deliver value to your target audience and create value for the business which created it.
Getting a glimpse of design thinking
What is design thinking now? Well, it’s obvious for you to get this question here! Interaction Design Foundation defines design thinking as follows:
Design thinking involves different phases and there are different variants of design thinking process in use today. We will focus on the five-phase model proposed by Stanford d.school as shown in the image (courtesy: CITL, Illinois) below:
You must take a note here that these phases are not sequential always and you need not follow any specific order as shown in the image. The good thing is that these stages can occur in parallel and you can repeat them iteratively.
Amalgamating design thinking in Agile methodology
Although design thinking and Agile are two entirely different concepts but they can certainly complement each other and create synergy to boost innovation. Sounds like a fairy tale? Alas! In reality it’s not. Even though the two concepts can be complementary, they cannot connect seamlessly. A custom software development company putting both the concepts in combination into software development should be ready to witness a culture shift. The team members would need a proper understanding of how each concept work and also require the ability to adapt effectively.
Challenges to UX–Agile symbiosis
Let’s take a look into the challenges that we need to overcome so that the two concepts work together effectively. Overcoming these issues will also ensure that we do not end up with a product in which usability is amiss because of pursuing speedy programming. These challenges are as follows:
- The practitioners of each concept might focus on different goals ignoring the problems solved by the other.
- With Agile focusing on stakeholders and delivering working software at the earliest, UX might push you to focus on user needs and surface with an overall plan for user interface before implementation. Thus, the varying approach might not help to form a cohesive whole.
- Agile teams are collaborative and self-organizing while UX demands the centre stage to provide the required practices and tools. An organization with management hierarchy might pose challenges to both the camps.
- The mismatch in pace of each group might impede the smooth running of Agile and UX teams in cohesion.
- Failing to incorporate the insights of UX practitioners in the design decision can be roadblock for UX to sustain in the Agile world despite collaborative approach of Agile.
Doing user testing on an Agile project
User testing is in itself a comprehensive field, however, for this article we are going to discuss the following three relevant types:
1. Usability testing
To the utter frustration of UX practitioners, usability testing is considered optional in Agile. However, our project managers believe that usability testing must be done regularly throughout development. Usability testing using paper prototypes must be conducted on user interface even before it is designed and developed. Members of development team must observe and interpret users’ interactions and take notes without fixing the paper prototypes.
2. Acceptance testing
This user testing method in which the product is tested for acceptability is popular among Agile teams. This test is used to evaluate whether the software system is compliant with the business requirements and if it is ready for delivery. Considering the importance of acceptance testing, automated tools such as Fit have been built. So, Agile teams usually run these automated tests daily at least and the defect reports are put on requirement stack so that they are addressed in the near future.
3. Usage testing
This user testing technique can be used to test the logic captured within your design even before you implement it. And guess what? You can involve your stakeholders and just monitor them using your solution and interpret your observations to validate the logic of your user interface prototype.
With enterprises harnessing the benefits of Agile, this software development methodology will continue to gain momentum. If you are keen on creating great user experience in a compressed timeline then UX designers must plan activities ahead of the sprint by being proactive. Besides, Agile must consider including user research and prevent us from going awry because of cognitive bias. Want to create an app in a fixed timeline with great user experience? Get in touch with our Agile software development team and give wings to your ideas. You can also let us know about your thoughts about doing UX in the Agile space by leaving your comments below.