DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. The buzzword glossary

The buzzword glossary

Giorgio Sironi user avatar by
Giorgio Sironi
·
Aug. 11, 10 · Interview
Like (4)
Save
Tweet
Share
17.86K Views

Join the DZone community and get the full member experience.

Join For Free

You keep using that word. I do not think it means what you think it means.  -- Inigo Montoya

In one of my previous articles, Death by buzzwords, I described the problem of overloading words and locutions with many different meanings. Non-technical terms are casually borrowed into software development, and they assume at least the original meaning along with the technical one (or ones). The confusion is easy, especially when the terms are not treated as proper nouns: when I read about Continuos Integration, I know instantly is a precise term which I should look up if I did not know; when I read continuos integration, I just keep on reading.

I hope that this little glossary can help you understand these generic English words which assume a particular meaning in the field of software development. There are some which I won't even try to define, like analysis and component, because they have so many meanings that they actually have none. Keep in mind that outside of our field, these words may transmit a very different idea.

Agile: software development methodologies usually based on incremental and iterative development, and that adopt the Agile Manifesto values: Individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, responding to change over following a plan. Probably the decision to responding to change instead of fixing the requirements in stone-based documents is what characterizes more agile methodologies.

Backlog: in Agile methodologies, the list of feature which should be added to a product. It can be related to different scopes: a release, an iteration or the entire product life.

Business Logic: the core algorithms contained in an application, which relate to the domain model more than to the infrastructure. Not allowing further replies on a closed discussion is part of the business logic; Contrast with Presentation Logic.

Cloud computing: computational or storage power on demand, usually with the aid of virtualization. Cloud computing aims to provide hardware and software resources like they were utilities such as electricity and water.

Domain: the field which an application is used in. For example, enterprise application can be oriented to the chemical domain, or the accounting one. Domain-related code is typically the least reusable part of an application.

Enterprise (software): software that is sold to enterprises instead of private users. This kind of software is usually custom-made, or part of it is.

Framework: subset of software libraries which provide common infrastructure elements like default behavior and  architecture. Using a framework is more restrictive than using a library: the flow of the application and the management are dictated by the framework, along with many other design choices.

Infrastructure: the part of an application which do not directly model the domain. Databases and caches and are typical examples of infrastructure.

Kanban: in Agile development, a scheduling system which do not proceed in iterations (like Scrum) but by pulling ready elements from the earlier stages of development and applying a limit to the item which are currently in each stage (Work In Progress). For example, a Kanban system can establish a limit of implementing no more than three stories at the time.

Methodology: a description of a software development process. Waterfall is the eldest methodology; Scrum is an Agile methodology. There are more complex examples, like IBM's Rational Unified Process, or the Clean Room approach, based on formal methods.

Model: an abstraction which represents a particular domain. There are gazillions types of models in software development, from the more abstract ones (UML and E/R) to the programmatic, executable models like the domain models written in a programming language.

Paradigm: basic structure of thought in programming languages. Functional and object-oriented are different paradigms.

Presentation Logic: the algorithms of an application which exist due to a presence of a user interface. Formatting dates and times is presentation logic. Contrast with Business Logic.

Process: the technical term represents a single independent program execution, but the buzzword refers to a collection of activities that serve a particular goal. Every software house has its own software development process, which adopts a particular methodology and gives (hopefully) working software as its output, given that it takes resources such as people, time and money as its input.

The term is very generic. Other examples of processes are marketing, recruitment, and technical support. In the last years modelling business processes like these has become very fashioned, probably for the goal of automating parts of them or providing software that aids the execution of the process itself.

Product Owner: in the Scrum methodology, the representant of the client and other stakeholders. Prioritizes the product backlog and commits to not introducing or changing new requirements in the middle of iterations.

Role: in a methodology, a team-wide title that a particular person should adopt while implementing a methodology. For example, every Scrum team should have a Product Owner and a Scrum Master: two people should take these roles.

Scrum: one of the oldest and more diffused Agile methodologies. Its major traits are the presence of timeboxed iterations (sprints), where a subset of the features present in the product backlog has to be completed.

Scrum Master: the project manager of a Scrum team. His role is not to tell the team what to do, but to remove the obstacles they encounter during development and making sure they do not drift away from the Scrum values.

Service-Oriented Architecture (SOA): architecture which involves the use of decoupled services to compose an application. Its most common implementation involves using web services and mashup web applications.

Web 2.0: revolution of the web which transitioned its basic entities from documents to applications. Socially, the term Web 2.0 characterizes interactive web sites which involve the user in content creation and facilitate interactions. Social networks and Wikipedia are examples of Web 2.0.

scrum agile Software development application

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • How to Submit a Post to DZone
  • HTTP vs Messaging for Microservices Communications
  • How To Handle Secrets in Docker
  • The Path From APIs to Containers

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: