Glossary

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.

READ MORE


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

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


Agile development success

Projects that exhibit agile development success seem to share several key characteristics that are summarized below. For some methodologies these correspond exactly with individual practices, whereas for other methodologies there is a looser correspondence.

READ MORE


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.

READ MORE


Common agile terms

See our list of common agile scrum terms.

READ MORE


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, refactoringcontinuous integration, and a single coding standard. It is also greatly assisted by agile pair programming.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE

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.

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE


Mobile app wrapping

Mobile app wrapping is a method for applying business or security logic to individual apps that have already been compiled.

READ MORE


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.

READ MORE


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.

READ MORE


What is Automated Testing?

Master automated testing for faster, more reliable software. Learn key concepts and best practices for efficient & maintainable tests.

READ MORE

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.

READ MORE


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.

READ MORE


Common DevOps terms

See our list of common DevOps terms.

READ MORE


Cross browser testing

Test your sites and web applications across +1,000 real desktop browsers in the cloud. Say goodbye to your local machines and VMs.

READ MORE


DevOps

What is DevOps? DevOps has become an overloaded buzzword that means a lot of different things to a lot of people. That's a challenge when you are trying to understand what DevOps is or define DevOps. Instead of trying to define DevOps, we are going to describe the foundational concepts that different people associate with DevOps and the history of how the DevOps movement evolved to help you get a holistic view. Here are the eight foundational concepts you have to know.

READ MORE


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.

READ MORE


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).

READ MORE


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.

READ MORE


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.

READ MORE


What is Cloud Migration?

Master cloud migration for your applications. Explore cost-saving strategies, security considerations, & best practices for a successful cloud migration strategy.

READ MORE


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.

READ MORE

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.

READ MORE


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.

READ MORE


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).

READ MORE


What is Code Obfuscation

Code obfuscation is transforming a software program into code that’s difficult to disassemble and understand yet maintains its original functionality. In this way, the software remains completely functional but extremely resistant to reverse engineering and tampering attacks.

READ MORE

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.

READ MORE