Table of Content
- Why Choose Agile Development?
- Principles and Values of Agile Development Process
- The Agile Development Process for Mobile Apps
- Agile Development Methodologies and Practices
- The Agile Development Process in Practice
- Scrum Development Process
- Measuring the Agile Development Process—Execution Predictability
- Tools for Agile Development
- Scaling Agile and DevOps
Agile Development began during the software industry boom in the 1990s, accelerating the pace of innovation and competitiveness, forcing companies to react by adopting more flexible processes and considerations.
Market forces pushed for more innovative applications that require lightweight, agile development processes as opposed to waterfall methods with strict linear processes and a high emphasis on planning and documentation. User desires and preferences evolve continually, forcing applications to adapt by putting users at the center of the design (user-centered design) and relying on customer feedback and collaboration.
The agile development process provides a solution to the increase in uncertainty and unpredictability within the industry by promoting faster delivery of well-designed products with self-organizing teams.
Why Choose Agile Development?
- Suitable for unpredictable and uncertain environments
- Open to change and incorporates changes throughout the development cycle
- Flexible with project processes repeated during the lifecycle (iterative), allowing fast adaptation to changes
- Focus on processes and people (streamlining processes)
- Feedback received early and often (Feedback Loop)
- Frequent releases and early feedback promote learning and refinement
- Focus on delivering value (waste is reduced)
- Self-organized teams promote increased collaboration
- Requirements expected to change and prioritized through iterations
- Changes made before proceeding with requirements and new iterations
- Processes require less documentation and more human interaction
Principles and Values of Agile Development Process
- Communication and Collaboration: During the agile development process, we emphasize communication and collaboration through teams working together to accomplish the best outcomes, valuing creativity and perspectives. As a result, teams develop an agile mindset and choose the right tools and processes to achieve superior outcomes.
- Focus on Project Delivery: Our teams stress the importance of creating value by working on deliverables (as opposed to wasting time in documentation and reviewing), thereby avoiding entangled processes to reach deliverables.
- Customer and User Feedback: Our company believes that customer satisfaction and high-quality products must be the teams’ priority. These are achieved by collaborating early and often to adapt to changes according to feedback. Understanding that change is inevitable, our teams’ attitude is that changes should be continuously added and plans adapted throughout the agile development cycle, from initial user experience (UX) research to final product launch.
The Agile Development Process for Mobile Apps
Agile development practices are usually the preferred approach for mobile app development due to the high level of complexity and uncertainty involved in most projects. Our teams have expertise working with agile development processes, tools, and systems, and we provide frameworks adapted to your needs. These also help to mitigate risks, volatility, and uncertainties.
Once the product owner has decided and knows what solution to build and what problems it will solve, our development teams will begin to figure out how to build the solution. A project manager or scrum master will be responsible for delivering the product quickly.
UI/UX Design. Digital products are constantly adapting to user preferences. Our UX researchers analyze the needs of a product, choose concrete methods that are suitable to your product, and help predict user needs by gathering insights, developing artifacts, and performing usability testing to validate the solution. Krasamo uses lean-agile methods and a system to refine the application according to user feedback (feedback loop).
- Requirement gathering
- Analysis and path
- UX research methodology
- UX/UI artifacts and prototypes
- Usability testing
- User interface
- Handoff to developers
- Programming (code the solution)
- Quality assurance (code testing)
- Continuous delivery
Agile Development Methodologies and Practices
At Krasamo, we help customers design a project delivery process by blending practices that best suit the company, examining the conditions and environment of the products we build, and assigning the most suitable teams, always keeping a flexible approach, mindset, and consistency.
- Scrum: Our teams work with Scrum, a popular agile methodology in which a team completes work in short cycles and delivers frequently. The team meets daily and discusses the subsequent iterations. A product backlog is managed throughout the agile development cycle to discuss ideas, tasks, features, deliverables, and interrelated factors to address during the following iteration cycle (sprints). Krasamo provides teams with a Scrum master, product owner, UX teams, and development teams who live out under the Scrum principles and values.
- Scaled Agile Framework (SAFe): Scaled Agile Framework (SAFe) is a Lean-Agile framework that creates value streams of work and teams, also called “Agile Release Trains,” that synchronize the planning and execution of activities across the organization. SAFe blends concepts of Scrum, Kanban, DevOps, Extreme Programming (XP), and Design Thinking with multiple workstreams.
- Kanban (Scrum Board): Krasamo uses the Kanban methodology and digital boards to improve and scale projects by implementing visualization and tracking tools for work-in-progress (WIP), administration of tasks, and workflows to maximize efficiency. Teams define workflow states and cycles and work iteratively adjusting WIP limits and flow.
- Lean: Our teams incorporate lean-agile methods to make sure we focus on customer needs, create a value stream, eliminate waste throughout the agile development process, and ensure a smooth process with iterations that include incremental values and deliveries.
- Extreme Programming (XP): Extreme Programming (XP) is an agile methodology used to improve digital products and make changes quickly by testing features before building them. It promotes design and development in short cycles and frequent releases. XP emphasizes clear instructions to meet requirements and functionality. Product features are built starting with the most basic, with concise programming (code) and early testing. The goal is to keep customer requirements aligned with the product and user experience. Our developers adopt XP practices during the agile development process, such as refactoring, pair programming, test-driven development (TDD), unit testing, test plans, and continuous integration.
The Agile Development Process in Practice
Krasamo’s team integrates with the customer’s product owner to design the workflows and systems adapted to specific cases to perform successfully during the agile development process. Together with product owners, we maintain a roadmap to track progress and encourage continuous improvements. In addition, we strive to adapt the agile development process to customer preferences and goals.
The agile development process works in iterations, or time boxes, called sprints. The processes are repeated in cycles, moving in increments, dividing work into smaller parts that build on each other. The increments, or instances, allow teams to check in frequently and track how the work is being done. This method of working in increments allows teams to work progressively on complex issues and incorporate variables of unpredictability and uncertainty. As the process advances, knowledge from experience and learning dictates the next decisions to explore and experiment with in order to continue to improve the project.
At Krasamo, our teams are small, productive, and transparent. Work is constantly being done, inspected, and reviewed to improve and adapt early in the process. This way, our teams avoid repeating mistakes. In addition, the project manager keeps the team motivated to focus on the project goals by facilitating activities and tasks on a daily basis.
An Agile team must be cross-functional to solve complex adaptative problems, work together with flexibility, and be self-organized.
Get started with an established Krasamo team or set up a new team to implement the Scrum framework to sustain your products.
- Product Backlog (features, requirements, activities)
- Sprint Backlog
- Scrum Master
- Product Owner
- Development Team
- Sprints (1–4 weeks timebox; iterations)
- Sprint Planning (backlog refinement)
- Daily Scrums (15-minute standup)
- Sprint Review
- Sprint Retrospective (2–3 hours)
- Open-minded (mindset)
- Adaptable (self-organizing)
- Continuous Learning
- Follow Process and Practices
- Build Trust and Transparency
- 3 to 9 members
An Agile process and technical excellence—along with innovative, quality design—are required for delivering high-value products.
Scrum Development Process
The product backlog (agile backlog) is the central guide or source of items for a team to work with in regard to project goals, features, requirements, ideas, and activities related to the deliverables. It is managed by the product owner. One of the most important items in the agile backlog are user stories, which describe the product features (deliverables) from the users’ perspective, to keep the design centered around the user (user-centered design). Then the team develops descriptive figures of the users—called user personas—which are imaginary users and stories about how they will use the product. User stories in agile are validated by design teams and development teams to fit the acceptance criteria. User stories have automated acceptance tests at the features level, and unit tests are performed on the code.
Agile epics (groups of all the user stories considered) are organized into sections. These help in backlog refinement, which means regularly estimating and prioritizing efforts (backlog prioritization) in the backlog for successful sprint outcomes. Techniques and strategies for estimating effort can vary depending on the project’s particular characteristics. For example, stories are prioritized by value and size, broken into bite-sized pieces, and workloads are assessed with popular techniques such as story points, affinity mapping, and t-shirt sizes.
Sprint planning gathers the team in a meeting to discuss the capacity and decide on which backlog items (sprint backlog) to work on in the next sprint. Sprints run from two to four weeks (depending on the sprint goals) and set the pace and rhythm of the project. During the sprint, workloads are balanced; teams agree upon user stories to complete, the expected time for developers to finish the items (capacity), the frequency of changes, the testing requirements, the historical velocity (scrum velocity), and other considerations.
Teams communicate face to face frequently during the daily standups or daily scrum, creating helpful visibility and removing blockers.
Once the sprint is finished, the sprint review event (two to four hours) takes place to explore items and inspect (verify) the product demo to determine which items have been accomplished. The product increment is revealed during this meeting, and feedback and adjustments are considered. The product increment may result in a releasable version or minimum viable product (MVP) that the end-user can use. Minimum viable products may take more than one sprint to develop and provide user value, feedback, and learning.
The sprint retrospective is a meeting or workshop to reflect on the project and discuss improvements to make on future sprints. In addition, leaders continuously balance workloads to avoid overloading teams.
Measuring the Agile Development Process—Execution Predictability
Measuring if teams are progressing is vital for the agile development process. At Krasamo, we like to use agile burndown charts and the velocity points method (using average historical performance). We must oversee the completion of tasks and items in the product backlog and measure against the sprint goals. Once our teams synchronize cadences and we learn about their pace (velocity) and calibrate them, we can predict how much work they can accomplish in a sprint and learn about the team’s velocity, particularly for the context.
The agile development process is continuously refined relying on automated testing and continuous integration.
Tools for Agile Development
- Asana: a web and mobile work management platform designed to help teams organize, track, and manage their work.
- Trello: web-based, Kanban-style, list-making application.
- Slack: brings team communication and collaboration into one place so you can get more work done, whether you belong to a large enterprise or a small business.
- Jira: that allows bug tracking and agile project management.
- Redmine: is a flexible open-source project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.
- GitHub: is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git. Its issues feature provides reate issues, break them into tasks, track relationships, add custom fields, and have conversations. Visualize large projects as spreadsheets or boards, and automate everything with code.
Scaling Agile and DevOps
Krasamo’s agile development process supports customer goals by delivering valuable software. Designing and building innovative products with the right features—keeping user experience goals in mind—is the key to delivering value to both customers and their users.
Building a value roadmap following agile values and principles to map out the strategies, vision, and release plans is key to the agile development process. Expected product features, milestones, and timelines are part of the roadmap to build the right thing.
Product roadmaps and release plans that are aligned with a team’s capacity and velocity work to provide sustainability. Krasamo teams review release plans before sprint planning sessions to make sure they are on track.
Agile DevOps practices combine development and operations to increase velocity, reliability, and shared ownership as well as reduce the development cycle and keep a continuous delivery of software. As a result, DevOps improves reliability and scalability rapidly, giving companies a competitive advantage.
Combining agile sprints with DevOps optimizes the app development lifecycle and delivery, as well as the maintenance of large-scale software systems. Learn more about the convergence of Scrum and DevOps here.
Through the design of interesting and innovative mobile apps, Krasamo’s agile development process can create a business advantage for your enterprise, delivering value to users and increasing company performance. Krasamo provides sustainable user-centered design and development services with Agile methodologies.