Glossary
Enterprise Agility
Agile Delivery
Agile delivery is a software development and delivery methodology that prioritizes flexibility, collaboration, and customer demand. It involves dividing a project into smaller, manageable parts called iterations or sprints, typically lasting from one to four weeks. Each iteration consists of a cycle of planning, executing, and reviewing, allowing teams to swiftly respond to changes and continuously enhance their processes and products.
Agile methodology
The various agile scrum methodologies share much of the same philosophy, as well as many of the same characteristics and practices. But from an implementation standpoint, each has its own recipe of practices, terminology, and tactics. Here we have summarized a few of the main agile software development methodology contenders.
Agile feature estimation
The different methodologies use different terminology to refer to features. It is up to the team to decide which methodology or terminology to use
Agile project management
Whether you have just wondered about agile project management, or actually dipped a toe in, you would probably agree: the role of the project manager can seem impossible. Customers expect quality software on time and on budget. But wait! The requirements just changed. Again.
Agile release planning
What is a release plan? Planning and estimating in the agile world depend on a single key metric: the development team's velocity, which describes how much work the team can get done per iteration. Given a team's known velocity for its last project (if it is known), a release plan represents how much scope that team intends to deliver by a given deadline.
Agile software development benefits
Agile methods grew out of the real-life project experiences of leading software professionals who had experienced the challenges and limitations of traditional waterfall development on project after project. The approach promoted by agile development is in direct response to the issue associated with traditional software development both in terms of overall philosophy as well as specific processes.
Agile sprint planning
The iteration or sprint planning meeting is for team members to plan and agree on the stories or backlog items they are confident they can complete during the sprint and identify the detailed tasks and tests for delivery and acceptance.
Iteration lengths typically range between one and four weeks. The team holds a planning meeting at the beginning of each iteration to break down each of the features scheduled for the iteration into specific technical tasks. Iteration or agile sprint planning meetings generally last from two to four hours - any more than that and you may be spending too much time in unnecessary planning; less time than that and you may not be doing enough planning and collaborating.
Agile velocity
Agile velocity is an extremely simple, powerful method for accurately measuring the rate at which scrum development teams consistently deliver business value. To calculate velocity of your agile team, simply add up the estimates of the features, user stories, requirements, or backlog items successfully delivered in an iteration.
Agile vs DevOps: Key Differences and How they Work Together
Agile DevOps represents the fusion of Agile methodologies and DevOps practices, designed to enhance collaboration between development and operations teams, streamline workflows, and accelerate software delivery. By integrating continuous feedback, automation, and iterative development, Agile DevOps aims to improve both the speed and quality of software releases.
Characteristics of Agile Development Success
Agile software development represents a paradigm shift in building and delivering software. It answers the need for adaptability and flexibility in a world where business requirements and customer preferences continuously change. This guide explores the agile software development process in depth, offering insights into its key concepts, methodologies, tools, team dynamics, challenges, and current trends.
Code refactoring
Code refactoring is the process of clarifying and simplifying the design of existing code, without changing its behavior. Agile teams are maintaining and extending their code a lot from iteration to iteration, and without continuous refactoring, this is hard to do. This is because un-refactored code tends to rot. Rot takes several forms: unhealthy dependencies between classes or packages, bad allocation of class responsibilities, way too many responsibilities per method or class, duplicate code, and many other varieties of confusion and clutter.
Common agile terms
See our list of common agile scrum terms.
Common codebase
A common codebase is, simply, shared by as many programmers on the team as possible. This is only practical if the team is using test-first programming, refactoring, continuous integration, and a single coding standard. It is also greatly assisted by agile pair programming.
Flow Metrics in Agile Development
This comprehensive flow metrics guide outlines their significance, implementation, and best practices, enriched with insights from Digital.ai to optimize your agile processes.
Kanban methodology
Kanban is a method for managing the creation of products with an emphasis on continual delivery while not overburdening the development team. Like scrum, kanban is a process designed to help teams work together more effectively.
Pair programming
Agile teams committed to frequent, regular, high-quality production find themselves striving to find ways to keep short-term and long-term productivity as high as possible. Proponents of pair programming ("pairing") claim that it boosts long-term productivity by substantially improving the quality of the code. But it is fair to say that for a number of reasons, pairing is by far the most controversial and least universally-embraced of the agile programmer practices.
Scaled Agile Framework (SAFe®) Principles
The Scaled Agile Framework (SAFe®) is a set of organizational and workflow patterns intended to guide enterprises in scaling lean and agile practices. It offers a structured approach to scaling agile across the organization, fostering alignment, collaboration, and rapid delivery of value to customers.
Test driven development
Agile teams often find that the closer the unit test coverage of their code is to some optimal number (somewhere between 75% and 85%, many teams find), the more agile their code is. Which is to say, it is easier for them to keep the defects in the code to very low levels, and therefore easier for them to add features, make changes, and still deliver very low-defect code every iteration. After experimenting with different ways to keep test coverage up at those optimal levels, agile teams hit upon the practice of test-first programming.
What are Agile Story Points and How to Estimate Them?
Agile story points are a unit of measure used in Agile project management to estimate the effort required to complete a user story or task. They help teams assess the complexity, risk, and effort involved, providing a more abstract way of planning and tracking progress compared to traditional methods.
What’s an Agile Workflow: Benefits and Implementation
Moving quickly and efficiently while maintaining quality is crucial for success in the rapidly evolving product development landscape. Agile workflow has emerged as a highly effective methodology for improving productivity, delivering value faster, and quickly adapting to changes in requirements. Familiarizing oneself with its principles, components, and implementation strategies can lead to better project outcomes.
What is Agile SDLC (Software Development Life Cycle)
Agile Software Development Life Cycle (SDLC) is a modern approach to software development that emphasizes flexibility, iterative progress, and continuous improvement. Unlike traditional models that rely on a linear sequence of phases, Agile SDLC integrates planning, development, and testing in a cyclic, interactive process. This approach allows teams to adapt to changes quickly and efficiently, ensuring that the final product meets the evolving needs of users and stakeholders.
What is Agile Sprint Tracking or Iteration Tracking?
As teams progress through an iteration, it is important to understand the state of the iteration. As dozens or even hundreds of tasks are worked on within the iteration, measuring progress and remaining effort (or, "to do") become critical. This is especially true on larger projects.
Within an iteration, the remaining effort represents the true state of an iteration at any given time. As the iteration progresses, the remaining effort required to complete the iteration's tasks should obviously be decreasing. Not all tasks will necessarily be identified during iteration planning. Some may only be identified as current tasks are progressed and completed. By consistently managing the total remaining effort of all the tasks, a very clear picture of the overall iteration's status is understood. If at any given point during the iteration it appears that the work is not approaching zero by the end of the iteration, then the team and/or management may elect to take appropriate measures, such as reducing scope.
What is Scrum Project Management?
Use scrum project management to deliver working products with more business value. Scrum project management is a methodology for managing software delivery that comes under the broader umbrella of agile project management. It provides a lightweight process framework that embraces iterative and incremental practices, helping organizations deliver working software more frequently. Scum project management provides project progress via a series of iterations called sprints; at the end of each sprint the team produces a potentially deliverable product increment.
What is the Scrum Methodology for Project Management?
Scrum is widely used by software development teams. In fact, it’s the most popular agile methodology. According to the 12th annual State of Agile report, 70% of software teams use scrum or a scrum hybrid.
App Management
Android & iOS app signing
Both Android and iOS require developers to “sign” their apps before they can be distributed and installed. An app is signed with a certificate identifying a developer as the author of that app and verifying the app has not been modified since it was last signed. Apps are self-signed with private certification keys.
Continuous integration
Traditional software development methods don't dictate how frequently or regularly you integrate all of the source on a project. Programmers can work separately for hours, days, or even weeks on the same source without realizing how many conflicts (and perhaps bugs) they are generating. Agile teams, because they are producing robust code each iteration, typically find that they are slowed down by the long diff-resolution and debugging sessions that often occur at the end of long integration cycles. The more programmers are sharing the code, the more problematic this is. For these reasons, agile teams often choose to use continuous integration.
Enterprise app distribution
An Enterprise App Distribution platform allows organizations to securely deploy and manage policy-enabled mobile apps through a variety of distribution methods, including direct links to users, a corporate portal, a private app store, or MDM/EMM systems.
Enterprise app store
An Enterprise App Store is an HTML or native iOS, Android, or Windows private app catalog for mobile workers in the extended enterprise to discover and download corporate-sanctioned and secured mobile apps. A best-of-breed enterprise app store is custom-branded, solicits feedback and ratings from users, does not require device management, and sits on top of an easy-to-use admin console that secures any app and supports the full app lifecycle.
Mobile app wrapping
Mobile app wrapping is a method for applying business or security logic to individual apps that have already been compiled.
Mobile application management
Mobile application management (MAM®) refers to the workflow for security, governance, and distribution of mobile apps in the enterprise. Best-of-breed app management provides app-level security for any app, deploys apps to every user in the extended enterprise because it is device management agnostic, manages the complete app lifecycle, and enables multiple app distribution methods, including an intuitive, custom-brandable enterprise app store.
Mobile Application Testing
Mobile application testing is an essential process and part of the software delivery lifecycle that ensures the quality, functionality, accessibility, and performance of mobile apps before they are released to the public. In the ever growing mobile app marketplace, rigorous testing is essential to deliver a positive user experience and achieve business goals.
Software Testing Tools: Choosing the Best Tools for Your Team
In today’s digital age, where businesses thrive on seamless user experiences and robust applications, ensuring software quality is a necessity. However, achieving this level of quality often goes unnoticed. Behind the scenes, software testing tools play a vital role. These silent partners in the development process act as the quality assurance guardians, meticulously examining applications to identify and eliminate bugs before they impact users. This comprehensive guide will empower readers to understand the significance of software testing tools, navigate the diverse landscape of available options, and ultimately select the perfect tool for their specific project needs.
Mobile authentication
Mobile authentication establishes user authentication for the enterprise app store and for the mobile apps themselves without maintaining an entirely separate set of user credentials.
Understanding the Importance of Accessibility Testing
Master accessibility testing to create inclusive websites. Learn WCAG principles, explore testing tools & techniques for success.
What are Testing Automation Frameworks?
Test automation frameworks offer a powerful approach to improving software quality and development efficiency. Choosing the right tools and following best practices allows organizations to overcome challenges like initial setup costs and maintenance overhead.
What are Automated Testing Tools?
Automated testing tools are software applications designed to streamline and expedite the software testing process by automatically executing tests. They help eliminate the need for manual test execution, which can be time-consuming, error-prone, and repetitive. Automated testing tools are vital for modern software development, ensuring the quality, functionality, and performance of applications across various platforms (web, mobile, desktop).
What are Performance Testing Tools?
Boost app performance & identify bottlenecks. Learn about key types & stages of performance testing and explore best practices for choosing the right tools.
What are Test Management Tools?
Test management tools offer a multitude of functionalities that empower testing teams to be more proactive and efficient in their approach. This includes the ability to define clear testing objectives, meticulously design comprehensive test cases that cover all critical functionalities, and efficiently execute those tests either manually or through automation.
What is Automated Testing?
Master automated testing for faster, more reliable software. Learn key concepts and best practices for efficient & maintainable tests.
What is Cross Browser Testing?
Cross-browser testing (cross browser testing, Cross-Browser Testing) is an important process in web development. It safeguards the flawless operation and visual consistency of websites across a vast multitude of browsers. The mobile world is fragmented especially from an Android perspective where device models, and OS versions vary wildly. Cross-browser testing embodies the concept of ensuring a smooth and satisfying experience for all users, regardless of their browser or device.
DevOps
Android app testing
Android dominates the mobile device market and your mobile app must be able to support the majority of Android devices actively in use and provide an exceptional UX. Android app testing is a complex task due to the existence of multiple device manufacturers, device models, Android OS versions, screen sizes, and network conditions. Start testing your app today on hundreds of real devices and run Android test automation to meet tight Android app delivery timelines with Digital.ai Continuous Testing, formerly Experitest.
Application Deployment Process and Strategies
Application deployment is critical to software development, marking the transition from development to production. It involves making software packages available for installation and execution in target environments, ensuring smooth and efficient delivery to end-users. This comprehensive guide delves into the intricacies of application deployment, covering its definition, importance, process overview, deployment strategies, automation, manual deployment, deployment environments, best practices, and troubleshooting.
Application performance monitoring
Implement application performance testing early and continuously as part of your CI pipeline. Shift left performance testing (SLPT) tools can speed delivery of higher-quality software, decrease costs of fixing issues, and improve the customer’s experience.
Common DevOps terms
See our list of common DevOps terms.
Defining DORA Metrics
In DevOps, metrics play a pivotal role in assessing performance and guiding improvement efforts. Among the most renowned sets of metrics are DORA (DevOps Research and Assessment) metrics. These metrics provide invaluable insights into the efficiency and effectiveness of DevOps practices within an organization.
Guide: Comprehensive List of DevOps Tools You’ll Need
DevOps has emerged as a crucial methodology for streamlining workflows, enhancing collaboration, and accelerating the delivery of high-quality software. This comprehensive guide aims to provide an in-depth exploration of DevOps tools, from defining DevOps itself to key phases, implementation strategies, common challenges, and the process of choosing the right tools to suit specific needs.
iOS app testing on real Apple devices
Apple devices have a significant share of the mobile device market — yet developing, debugging, and testing on them can be a challenge. Numerous iPhone and iPad models, different screen resolutions, and frequent iOS version releases create a large matrix that needs to be addressed. The Digital.ai Continuous Testing platform helps you to ensure your application meets users’ expectations and App Store’s strict review guidelines. Perform rapid, end-to-end, online iOS app testing on a huge matrix of real Apple devices and versions to accelerate your release cycles.
Release orchestration
Release orchestration is the process of orchestrating the activities required to deliver an application from code commit to production, enabling organizations to manage and optimize the flow of value across the DevOps value stream. Release orchestration automates many tasks that are often done manually by release management. With release orchestration, DevOps teams are able to model software delivery pipelines, coordinate automated tasks with manual work, integrate a variety of tools for building, testing, and deploying software, and use data to identify bottlenecks and areas for potential areas for improvement. Release orchestration is also known as application release orchestration (ARO), application release automation (ARA) or continuous delivery and release automation (CDRA).
Release pipeline
A release pipeline is made up of the manual and automated steps needed to move a code change from development, through build and test activities, to deployment in production. Manual steps can be executed by technical team members or business stakeholders and include both release processes and approval gates. Automated steps are executed by the tools within the DevOps landscape.
Understanding CI/CD
In software development, CI/CD has become an indispensable practice for ensuring efficiency, reliability, and quality in the development lifecycle. This glossary page will break down the fundamental concepts, processes, tools, and best practices surrounding CI/CD, empowering practitioners to harness its potential for streamlined software delivery.
What is a CI/CD Pipeline? | Automating Software Delivery
In the rapidly evolving landscape of software development, Continuous Integration and Continuous Deployment (CI/CD) pipelines have become essential. They enable teams to deliver high-quality software quickly and reliably.
What is Application Delivery?
Explore application delivery’s importance, solutions, components, benefits, challenges, and modern trends for enhanced performance.
What is Cloud Migration?
Master cloud migration for your applications. Explore cost-saving strategies, security considerations, & best practices for a successful cloud migration strategy.
What is DevSecOps?: Best Practices and Methodology
Building secure software is essential in a world where cyber threats are becoming more sophisticated. DevSecOps, an evolution of the DevOps philosophy that integrates security into every aspect of the software development lifecycle, is pivotal in achieving this goal. In this comprehensive guide, we will explore the essence of DevSecOps, its importance, integration in software development, tools, technologies, best practices, and the challenges and solutions associated with its implementation.
What is Release Management?
Release management is a crucial aspect of software development, ensuring smooth and efficient delivery of software products or updates into production environments. This glossary page delves into the intricacies of release management, covering its process, tools, best practices, and challenges.
App Security
Application attacks
An application attack is a technique a threat actor uses to exploit a vulnerability (vuln) in a web, desktop, or mobile executable. Vulnerabilities are generally characterized as either “known” or “zero day”. In addition to known and zero day vulns, vulnerabilities can include unprotected or unobfuscated decompiled code, a lack of anti-tamper protections, and inability to provide Runtime Application Self-Protection.
Runtime application self-protection
Runtime Application Self-Protection (RASP) is the ability for an executable to take defensive action when and if it is tampered with or run in a suspicious environment. Examples of tampering include changes to code, and examples of suspicious environment can be a rooted or jailbroken mobile device, a debugger, or an emulator, or a dynamic instrumentation toolkit such as FRIDA.
What is Anti-Tamper?
“Anti-Tamper” security refers to the measures and technologies implemented to safeguard software applications against unauthorized modifications or tampering attempts, particularly in environments where the integrity of the application might be compromised.
What is Application Hardening?
Application hardening, also known as “Application Shielding” and “In-app Protection” is a means of protecting applications from reverse engineering by applying obfuscation and anti-tamper techniques to the application post build and pre-production. Application Hardening can also encompass application monitoring and RASP (Runtime application Self Protection).
What is Code Obfuscation and How it Works
Code obfuscation is a process that makes the applications that you create for use outside of your firewall more difficult to understand after they have been decompiled or reverse engineered.
What is OWASP?
The Open Worldwide Application Security Project (OWASP) is a non-profit software security community that works to improve the security of mobile and web applications. Established in 2001, OWASP provides a vast array of free resources, methodologies, and tools for developers, security professionals, and organizations worldwide.
What is Threat Monitoring and the Role of Threat Intelligence
Threat monitoring is essential for maintaining the security and integrity of information systems in an era where cyber threats are increasingly sophisticated and pervasive. This proactive security measure allows organizations to detect and respond to potential security incidents.
What is Web Application Security?
Web application security focuses on safeguarding the parts of a web application that run directly in the user’s browser. This includes HTML, CSS, JavaScript, and any other resources that the browser downloads and executes to render the web application.
Understanding Jailbreaking: What is it? How is it Done?
A comprehensive exploration of the risks and security implications of jailbreaking mobile devices and how to protect apps from being run in jailbroken devices.
Value Stream
What is VSM or Value Stream Mapping?
Value stream mapping is a Lean-Agile management tool that helps organizations visualize the process steps needed to take a product from creation through delivery to end users. Value stream mapping helps you understand your business better so you can eliminate waste and improve process efficiency.