Application Architecture
Top Stories
-
Tip
30 Jul 2026
Automated testing is not a magic bullet
Test automation rarely serves as a shortcut to faster testing. Its greatest value lies in improving software quality, expanding coverage and enabling testers to focus on high-value work. Continue Reading
By- Gerie Owen, Roobrik
-
Tip
28 Jul 2026
Rethink how you screen senior developers to produce better mentors
Traditional coding tests often miss the qualities that matter most in senior developers. Explore a hiring approach focused on code review, mentoring and practical problem solving. Continue Reading
By
-
News
14 Jul 2025
AWS Kiro coding agents highlight spec-driven development
AWS Kiro, a project developed by a 'small, opinionated team within AWS,' prioritizes spec-driven development in the workflows of coding agents. Continue Reading
By- Beth Pariseau, Senior News Writer
-
News
10 Jul 2025
'Docker Compose up' now includes AI agents
Docker is expanding the Docker Compose spec to accommodate AI agents in an effort to bring AI development closer to existing software development workflows. Continue Reading
By- Beth Pariseau, Senior News Writer
-
News
26 Jun 2025
Vibe coding with AI sparks debate, reshapes developer jobs
The 'vibe coding' catchphrase shows that GenAI is transforming software developer jobs -- but just how much change is coming? It depends on who you ask. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Definition
26 Jun 2025
What are beans in Java and Spring?
In 1996, Sun Microsystems introduced its JavaBeans application programming interface for writing a Java component. Continuing with its coffee analogy, Sun called that component a bean. Continue Reading
By- Scott Robinson, New Era Technology
-
Tip
26 Jun 2025
10 refactoring best practices: When and how to refactor code
Developers only have so much time available. Here's how to prioritize code refactoring to get the most value from the amount of effort expended. Continue Reading
By- Stephen J. Bigelow, Senior Technology Editor
-
News
25 Jun 2025
Google touts free tier for multimodal AI terminal
Google intends to differentiate Gemini CLI with multimodal support, including video, and an expansive free tier for individual users. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Tip
20 Jun 2025
8 best practices for creating architecture decision records
An ADR is only as good as the record quality. Follow these best practices to establish a dependable ADR creation and maintenance process. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
Answer
10 Jun 2025
How to choose coding standards: Development best practices
Learn how coding standards enhance quality and efficiency in software projects. Follow coding conventions and standards to achieve the five pillars of code quality. Continue Reading
By- Damon Garn, Cogspinner Coaction
-
Tip
10 Jun 2025
Refactor vs. rewrite: Deciding how to fix problem software
At some point, all developers must decide whether to refactor code or rewrite it. Base this choice on factors such as architectural soundness, time, money and goals. Continue Reading
By- Matt Heusser, Excelon Development
-
Tip
09 Jun 2025
Understanding API proxy vs. API gateway capabilities
API proxies and gateways help APIs talk to applications, but it can be tricky to understand vendor language around different tools' functionalities. Continue Reading
By -
Definition
06 Jun 2025
What is a cookie?
A cookie is a text file carrying some information that a website places on a user's computer. Continue Reading
-
Tip
30 May 2025
Why use Rust? Explore the benefits of Rust development
Rust continues a meteoric rise in popularity following a 2024 White House endorsement. But what are the benefits of Rust that make it such an alluring choice? Continue Reading
By -
Tip
29 May 2025
How to choose the best Markdown editor: A 9-tool comparison
A dedicated authoring tool helps writers take full advantage of Markdown. Find one that supports your development projects, documentation tasks or even daily writing objectives. Continue Reading
By- Damon Garn, Cogspinner Coaction
-
Tip
29 May 2025
11 tools that facilitate developer productivity
Development teams have a better experience when they use tools that integrate well together and facilitate collaboration. Continue Reading
By -
Tip
29 May 2025
Comparing low-code vs. traditional development
The lines between low-code and traditional development aren't always clear. Compare the pros and cons of each approach to judge which makes sense for your organization. Continue Reading
By- Gerie Owen, Roobrik
- Chris Tozzi
-
Tip
28 May 2025
6 essential refactoring techniques to know
Refactoring helps optimize the codebase and combat technical debt. Use these six code refactoring techniques to improve code structure, maintainability and overall quality. Continue Reading
By- Matt Grasberger, Red Guava
-
Feature
28 May 2025
Product vs. project mindset in software development
Agile and DevOps highlight the differences between project and product approaches to software development. Establish these roles and principles to deliver business value. Continue Reading
-
Definition
22 May 2025
What is an object in programming?
In object-oriented programming (OOP), an object is a reusable unit of code that can perform certain actions and interact with other objects in a program. Continue Reading
By- Rahul Awati
- Peter Loshin, Former Senior Technology Editor
-
Tip
20 May 2025
Benchmarking LLMs: A guide to AI model evaluation
LLM benchmarks provide a starting point for evaluating generative AI models across a range of different tasks. Learn where these benchmarks can be useful, and where they're lacking. Continue Reading
By- Matt Heusser, Excelon Development
-
Tip
20 May 2025
How to fix flaky tests: A practical approach for QA teams
Flaky tests can be frustrating and tempting to ignore. In many cases, you shouldn't. Use this guide to learn which flaky tests to prioritize and how to fix them. Continue Reading
By- Gerie Owen, Roobrik
-
News
19 May 2025
New GitHub Copilot agent edges into DevOps
The GitHub Copilot coding agent can take on toilsome tasks such as bug fixes and code reviews with its own GitHub Actions pull requests. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Tip
16 May 2025
3 software testing sample test cases, with templates
A good test case is easy to trace, reusable and relevant to user needs. Learn how to write an effective test case with these examples and free templates. Continue Reading
By -
Tip
12 May 2025
Verification vs. validation in software testing
Verification and validation are at the heart of all software testing efforts. Together, they check that software fulfills both user expectations and technical requirements. Continue Reading
By- Gerie Owen, Roobrik
-
Tip
09 May 2025
Iterative vs. incremental development: What's the difference?
Iterative and incremental development refine software differently: one focuses on early feedback, one on complete components. Together, they balance flexibility and stability. Continue Reading
By -
Feature
07 May 2025
18 ways to improve developer productivity
One of the most important factors of dev productivity is a good developer experience. Give developers a productivity boost with these concrete strategies. Continue Reading
By- Ben Lutkevich, Site Editor
- Ryan Black, Former Assistant Site Editor
-
Tip
02 May 2025
The rubber duck method of debugging explained
Ever feel like a quack when trying to debug software? When you're stuck, sometimes it just helps to hear yourself talk -- even if you're just talking to a rubber duck. Continue Reading
By- Ben Lutkevich, Site Editor
-
Tip
01 May 2025
How to measure developer productivity
Measuring only the hard numbers of dev activity can have deleterious effects on developer experience, productivity and even retention. Try measuring dev productivity holistically. Continue Reading
-
Tip
30 Apr 2025
10 best API testing tools to know
API testing tools are essential for ensuring reliable, high-performing APIs in modern software development. Choose API testing tools that suit your tech stack and workflow. Continue Reading
By- Matt Heusser, Excelon Development
-
News
22 Apr 2025
Docker plans Model Context Protocol security boost
Docker said it plans new tools integrating the emerging agentic AI standard protocol into existing workflows, including security controls. Continue Reading
By- Beth Pariseau, Senior News Writer
-
News
17 Apr 2025
JetBrains, GitHub add coding agents to IDEs
Coding agents that can take on whole tasks with a natural language prompt are now tied in with widely used IDEs, including a JetBrains free tier. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Definition
16 Apr 2025
What is a data type?
In software programming, a data type refers to the type of value a variable has and what type of mathematical, relational or logical operations can be applied on it without causing an error. Continue Reading
By -
Tip
16 Apr 2025
4 pseudocode examples: Python, Java, JavaScript and C++
Successful pseudocode conversion goes beyond simply making the code work. It's about creating implementations that respect each language's conventions. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
Tip
14 Apr 2025
How to create API automation framework for testing
With an increasing need for API testing, having an efficient test strategy is a big concern for testers. Learn about building a test framework and some alternative approaches. Continue Reading
By- Matt Heusser, Excelon Development
-
Tip
10 Apr 2025
Using AI and machine learning for APM
Discover how organizations can streamline operations and improve operational analytics by using AI and machine learning in their application performance monitoring environments. Continue Reading
By -
Opinion
07 Apr 2025
My first attempt at vibe coding
Can you teach an old programming dog a new trick? Continue Reading
By- Tyler Shields, Omdia
-
Omdia
Intelligence and advice powered by decades of global expertise and comprehensive coverage of the tech markets.
-
Tip
07 Apr 2025
How to handle root cause analysis of software defects
Root cause analysis plays a significant role in helping software teams fix defects in applications. Here's how to employ it to get the most out of the RCA process. Continue Reading
By- Stephen J. Bigelow, Senior Technology Editor
-
Tip
04 Apr 2025
Distributed tracing vs. logging: Uses and how they differ
Distributed tracing and logging help IT teams identify performance issues in systems in different ways. But they also complement each other to pinpoint problems. Continue Reading
By- Donald Farmer, TreeHive Strategy
-
Tip
03 Apr 2025
16 REST API design best practices and guidelines
Common guidelines for API design lead to better functionality and flexibility. Follow these REST API design best practices to help you tend to your burgeoning API garden. Continue Reading
By- Matt Heusser, Excelon Development
-
Feature
03 Apr 2025
Low code vs. BPM: Differences and similarities
Low-code development and business process management help digitize and optimize business operations. Learn how each works and how together they enable digital transformation. Continue Reading
-
Definition
03 Apr 2025
What is regression testing?
Regression testing is a type of software test that assesses if changes to an application, or other related software components, introduce defects. Continue Reading
By- Ryan Black, Former Assistant Site Editor
-
Feature
02 Apr 2025
Explore these 7 popular API gateway tools
Plenty of vendors have jumped on the API gateway trend, which can make it difficult to choose the right one for you. We examine the key features of seven popular gateway tools. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
Definition
01 Apr 2025
What is synthetic monitoring?
Synthetic monitoring is a proactive monitoring approach that uses scripted simulations of user interactions to assess the performance and availability of websites, applications and services. Continue Reading
By- Kinza Yasar, Technical Writer
- Chris Tozzi
-
Tip
28 Mar 2025
How to write pseudocode: A guided tutorial
Writing pseudocode might feel like an extra step, but its value becomes clear in complex projects. Focus on the logic without getting tangled in language-specific syntax. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
Tip
28 Mar 2025
The benefits and limitations of headless browser testing
Headless browsers offer efficient web UI testing but lack the visual debugging capabilities of traditional browsers, making assessing the app's state upon test failure challenging. Continue Reading
By- Matt Grasberger, Red Guava
-
Tip
27 Mar 2025
APM vs. observability: Key differences explained
If you're debating using application performance monitoring or observability to gather data and improve the user experience, consider these differences between them. Continue Reading
By -
Tip
25 Mar 2025
What is the strangler fig pattern, and how does it work?
Imagine owning a motorcycle that needs fixing up. Instead of disassembling it and spending months rebuilding, what-if you replaced one part at a time so you could keep using it? Continue Reading
By- Matt Heusser, Excelon Development
-
Video
21 Mar 2025
Introduction to JavaFX tutorial for beginners
Did you think desktop development in Java was dead? Far from it. Here's how JavaFX has brought desktop programming in Java back to life. Continue Reading
By- Cameron McKenzie, TechTarget
-
Tip
21 Mar 2025
Understanding code smells and how refactoring can help
It works, but does it pass the sniff test? Code smells can be the canary in the coal mine for poor coding, which calls for refactoring. Explore how to identify and deodorize code smells. Continue Reading
By- Joydip Kanjilal
- Matt Grasberger, Red Guava
-
Tip
20 Mar 2025
13 API security best practices to protect your business
APIs are the backbone of most modern applications, and companies must build in API security from the start. Follow these guidelines to design, deploy and protect your APIs. Continue Reading
By- Dave Shackleford, Voodoo Security
- Michael Cobb
-
Feature
20 Mar 2025
8 benefits of APM for businesses
Application performance monitoring helps development teams identify and resolve performance problems, which leads to various business benefits for organizations. Continue Reading
By- Zachary Flower, Freelance web developer and writer
-
Tip
19 Mar 2025
Key considerations for data-intensive architectures
A shift toward data-driven decision-making amplifies the need for scalable systems that deliver real-time business insights supported by quality data. Continue Reading
By- Priyank Gupta, Sahaj Software
-
Tip
18 Mar 2025
APM vs. distributed tracing: How they differ
Application performance monitoring and distributed tracing help IT teams identify performance problems in different but complementary ways, as explained here. Continue Reading
By- Donald Farmer, TreeHive Strategy
-
News
18 Mar 2025
Prompt engineering takes shape for devs as agentic AI dawns
Real-world best practices are emerging at companies such as LinkedIn, Oracle and AWS, and agentic AI is poised to fundamentally alter the day-to-day work of software engineers. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Tip
17 Mar 2025
5 fundamental strategies for REST API authentication
Implementing an effective REST API authentication strategy can help protect users and their data while maintaining a seamless data exchange across boundaries. Continue Reading
By- Priyank Gupta, Sahaj Software
-
Tip
14 Mar 2025
APM best practices: 9 strategies to adopt
Teams responsible for APM must develop a clear strategy to identify performance risks, reduce APM costs and secure sensitive data collected as part of their initiatives. Continue Reading
By -
Tip
13 Mar 2025
Application performance monitoring vs. management
Explore the nuances between application performance monitoring and application performance management, especially in enhancing application efficiency and the user experience. Continue Reading
By -
Tip
07 Mar 2025
Implementing webhooks: Benefits and best practices
Webhooks are a simple technology, so make the implementation strategy simple, too. Start by designing an intuitive workflow that plans for the unexpected and prioritizes security. Continue Reading
By- Matt Heusser, Excelon Development
-
Tip
04 Mar 2025
Difference between a statement vs. expression in programming
The decision between statement-centric and expression-oriented languages can influence an individual's programming style and the code's length, complexity and security. Continue Reading
By -
Tip
03 Mar 2025
Best practices for writing clean code comments
Well-written code comments are a great tool to explain code intent. Use these tips to ensure your comments are adding value to source code, not cluttering it up. Continue Reading
By- Matt Grasberger, Red Guava
-
Tip
26 Feb 2025
How to fix software bugs: Guide and best practices
'An ounce of prevention is worth a pound of cure.' -- Benjamin Franklin, 1736. The original quote pertained to fire safety, but it still applies to software bug prevention today. Continue Reading
By -
Tip
24 Feb 2025
The basics of working with pseudocode
Writing pseudocode is a great way to practice problem-solving skills, a crucial aspect in programming. It helps developers conceptualize and communicate their ideas. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
Tip
19 Feb 2025
The 5 essential HTTP methods in RESTful API development
While HTTP methods aren't inherently complex, developers still need to understand the core RESTful API HTTP methods and why they matter. Continue Reading
By- Tom Nolle, Andover Intel
-
News
13 Feb 2025
Users eye LaunchDarkly experiments boost with Houseware buy
LaunchDarkly customers envision fresh opportunities for app development and business alignment with a new data warehouse option on the back end. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Tip
13 Feb 2025
17 common QA interview questions and answers
Use these typical QA interview questions -- broken into basic, intermediate and advanced -- to progress from the screening interview to the final stages and land the job. Continue Reading
By- Gerie Owen, Roobrik
-
News
12 Feb 2025
Docker Inc. CEO swap has analysts anticipating a sale
Industry watchers see the takeover by a former Oracle exec as the precursor to merging with a broader software development portfolio at a larger company. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Definition
11 Feb 2025
What is application lifecycle management?
Application lifecycle management (ALM) is the process of managing a software lifecycle from creation to its end of life. Continue Reading
By- Alexander S. Gillis, Technical Writer and Editor
- Ed Tittel
- Kate Brush
-
News
10 Feb 2025
DevSecOps platform tucks in API security as AI apps heat up
Harness merges with its sister company, Traceable, for API security, which has broadening appeal as organizations develop generative and agentic AI applications. Continue Reading
By- Beth Pariseau, Senior News Writer
-
News
05 Feb 2025
Dynatrace drops dev observability gauntlet for Datadog
Dynatrace and Datadog both plan to ship live debugging tools as they vie for developer attention in the observability market. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Tip
30 Jan 2025
What are story points? Agile estimation explained
Complex variables and unknown factors can obscure time-based work estimates for development projects. Story points help teams account for change through relative estimation. Continue Reading
By -
Definition
27 Jan 2025
What is the spiral model and how is it used?
The spiral model is a systems development lifecycle (SDLC) method used for risk management that combines the iterative development process model with elements of the Waterfall model. Continue Reading
By- Cameron Hashemi-Pour, Former Site Editor
-
Tip
22 Jan 2025
A guide to software design documentation and specifications
Software design documents still rank as important SDLC components -- even in the age of DevOps. Learn why they are important, how to write one and who should contribute. Continue Reading
By -
Tip
16 Jan 2025
The pros and cons of using generative AI for API testing
GenAI has the potential to reduce the API testing effort and improve the coverage and quality of testing. But finding the right patterns and workflows is critical to performance. Continue Reading
By- Priyank Gupta, Sahaj Software
-
Definition
16 Jan 2025
What is lazy loading?
Lazy loading is a design pattern in web development that only loads necessary code components immediately, deferring nonessential components. Continue Reading
By- Ben Lutkevich, Site Editor
-
Tip
14 Jan 2025
Harnessing space-based architecture for high performance
Space-based architecture offers the modularity of a distributed microservices architecture but with submillisecond data access times. Unsurprisingly, it comes with tradeoffs. Continue Reading
By- Priyank Gupta, Sahaj Software
-
Tip
13 Jan 2025
34 must-know Agile terms
Agile is the cornerstone of countless development efforts today. Use this definitive glossary as a quick reference for Agile terminology and concepts. Continue Reading
By- Ben Lutkevich, Site Editor
-
Tip
09 Jan 2025
Reverse proxy vs. load balancer: How do they compare?
If reverse proxies were plantains, load balancers would be bananas. Despite surface similarities, the two services work in different ways and support varying use cases. Continue Reading
By -
Opinion
27 Dec 2024
Level up with these 10 soft skills for software developers
Standing out in today's competitive market requires more than just exceptional technical skills. Review topical advice for building must-have soft skills for software developers. Continue Reading
By- Matt Heusser, Excelon Development
-
Definition
23 Dec 2024
What is quality assurance (QA)?
Quality assurance (QA) is any systematic process of determining whether a product or service meets specified requirements. Continue Reading
By- Cameron Hashemi-Pour, Former Site Editor
- Alexander S. Gillis, Technical Writer and Editor
-
Tip
23 Dec 2024
What are the types of APIs and their differences?
Enterprises increasingly rely on APIs to interact with customers and partners. It all starts with knowing which type of API is right for your needs. Continue Reading
By- Stephen J. Bigelow, Senior Technology Editor
-
Tip
20 Dec 2024
Exploring cell-based architecture vs. microservices
Cell-based architecture takes fundamental concepts related to microservices and applies them across the entire software environment to make more fault-tolerant, scalable systems. Continue Reading
By- Matt Heusser, Excelon Development
-
Definition
19 Dec 2024
What is a test case?
A test case is a set of actions performed on a system to determine if it satisfies software requirements and functions correctly. Continue Reading
By- Cameron Hashemi-Pour, Former Site Editor
- Kate Brush
-
Tip
18 Dec 2024
13 must-know Markdown tips and tricks
Use these tips to improve your Markdown-based documentation, streamline your approach and structure your documents. Continue Reading
By- Damon Garn, Cogspinner Coaction
-
Quiz
17 Dec 2024
Professional Scrum Developer exam questions and answers
Professional Scrum Developer is a highly respected certification, but it's not easy to get. Take this sample PSD exam to test yourself and see how prepared you are for the exam. Continue Reading
By- Darcy DeClute, Scrumtuous Inc.
-
Tip
13 Dec 2024
7 Scrum certifications and career paths to pursue
Learn about the various Scrum certifications for Scrum masters, product owners and developers. Discover career paths that map to those certifications. Continue Reading
By- Darcy DeClute, Scrumtuous Inc.
-
Tip
12 Dec 2024
Django vs. Flask: Comparing Python web frameworks
Django's batteries-included approach might be excessive for small projects. Flask is lightweight, but a lack of built-in tools can add to development time. Analyze the tradeoffs. Continue Reading
By -
News
11 Dec 2024
Devs get first look at next Google Gemini model
Google Gemini 2.0 Flash makes its first appearance in Google developer tools, boasting updated multimodal features and fresh training for agentic workflows. Continue Reading
By- Beth Pariseau, Senior News Writer
-
Tip
10 Dec 2024
Webhook security: Risks and best practices for mitigation
Webhook security is an ongoing process, with responsibility shared between providers and consumers to protect against threats and ensure a secure webhook ecosystem. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
News
05 Dec 2024
Salesforce revamps Heroku PaaS for Kubernetes, .NET
Thought Heroku was a 2010s artifact? Think again. Continue Reading
By- Don Fluckinger, Senior News Writer
-
Tip
02 Dec 2024
Webhook vs. API: Which mechanism is better?
Moving data in one direction? Choose a webhook. Need applications to communicate with each other? Use an API. But first, compare both methods in function, cost, security and more. Continue Reading
By -
Tip
02 Dec 2024
What's next for APIs? 4 API trends for 2025 and beyond
As businesses navigate tightening budgets and resources, the API marketplace will continue to play a vital role in integrating services, applications and cloud environments. Continue Reading
By- Twain Taylor, Twain Taylor Consulting
-
Tip
27 Nov 2024
The 5 Scrum events explained
Scrum consists of four formal events for inspection and adaptation within one containing event -- the sprint. Learn how to execute each event in this framework. Continue Reading
By- Gerie Owen, Roobrik
-
Definition
27 Nov 2024
What is a software requirements specification (SRS)?
A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development. Continue Reading
By- Nick Barney, Technology Writer
- Linda Rosencrance
-
Tip
25 Nov 2024
13 application performance metrics and how to measure them
You've deployed your application, now what? Keep your application performing well by tracking metrics. Take a look at these 13 critical KPIs. Continue Reading
-
Definition
25 Nov 2024
What is web application (web apps) and its benefits?
A web application (web app) is an application program that is stored on a remote server and delivered over the internet through a browser interface. Continue Reading
By- Kinza Yasar, Technical Writer
-
Definition
22 Nov 2024
What is an application architecture?
An application architecture is a structural map of how a software application is assembled and how applications interact with each other to meet business or user requirements. Continue Reading
-
Tip
19 Nov 2024
Ansible vs. Docker: Differences and similarities explained
Ansible and Docker play specific roles, but when used together, Ansible's playbooks and Docker's Dockerfiles provide greater control and configurability over servers. Continue Reading
By- Matt Grasberger, Red Guava
-
Tip
18 Nov 2024
Scrum master responsibilities: What does a Scrum master do?
While the title may sound authoritative, Scrum masters have little control over their team. So, what exactly does a Scrum master do? The answer might surprise you. Continue Reading
By- Darcy DeClute, Scrumtuous Inc.
-
Definition
15 Nov 2024
What is a Waterfall model? Definition and guide
The Waterfall model is a linear, sequential approach to the software development lifecycle (SDLC) that is popular in software engineering and product development. Continue Reading
By- Paul Kirvan
- Ben Lutkevich, Site Editor
- Sarah Lewis
-
Tip
08 Nov 2024
Webhooks explained simply, with examples
Webhooks make significant use of basic API call mechanisms and set event triggers in a few clicks of a button -- all without the overhead of heavy request-response structures. Continue Reading
By- Matt Heusser, Excelon Development
-
Tip
07 Nov 2024
Ultimate Markdown guide: 5 rules to know
Markdown is crucial to documentation writers. Learn the vendor-based variations and several basic formatting rules to get started with this potent markup language. Continue Reading
By- Damon Garn, Cogspinner Coaction