Acceptance Criteria conveys the intent of the request. This is the place to make the business requirements clear. The function requested is addressed here not the detailed design.
Acceptance Test Driven Development
Acceptance Test Driven Development involves team members with different perspectives (customer, development, testing) collaborating to write acceptance tests in advance of implementing the corresponding functionality.
An acceptance test is a formal description of the behavior of a software product, generally expressed as an example or a usage scenario. A number of different notations and approaches have been proposed for such examples or scenarios. In many cases, the aim is that it should be possible to automate the execution of such tests by a software tool, either ad-hoc to the development team or off the shelf.
Regarding responsive web applications and mobile development, an input is considered active when it responds with windows, a keyboard, date pickers etc.
Antipatterns are common solutions to common problems where the solution is ineffective and may result in undesired consequences.
In the context of software development, build refers to the process that converts files and other assets under the developers’ responsibility into a software product in its final or consumable form. The build is automated when these steps are repeatable, require no direct human intervention, and can be performed at any time with no information other than what is stored in the source code control repository.
A backlog is an ordered list of items representing everything that may be needed to deliver a specific outcome. There are different types of backlogs depending on the type of item they contain and the approach being used.
Backlog grooming is when the product owner and some, or all, of the rest of the team, refine the backlog on a regular basis to ensure the backlog contains the appropriate items, that they are prioritized, and that the items at the top of the backlog are ready for delivery.
Behavior Driven Development (BDD)
BDD is a practice where members of the team discuss the expected behavior of a system in order to build a shared understanding of expected functionality.
Burndown charts and burnup charts track the amount of output (in terms of hours, story points, or backlog items) a team has completed across an iteration or a project.
Business agility is the ability of an organization to sense changes internally or externally and respond accordingly in order to deliver value to its customers.
Collective code ownership is the explicit convention that every team member can make changes to any code file as necessary: either to complete a development task, to repair a defect, or to improve the code’s overall structure.
This is a general term for a slide out or other window action.
This is another name for the hamburger menu slide out.
Continuous deployment aims to reduce the time elapsed between writing a line of code and making that code available to users in production. To achieve continuous deployment, the team relies on infrastructure that automates and instruments the various steps leading up to deployment, so that after each integration successfully meeting these release criteria, the live application is updated with new code.
Continuous Integration is the practice of merging code changes into a shared repository several times a day in order to release a product version at any moment. This requires an integration procedure which is reproducible and automated.
Class Responsibility Collaborator (CRC) Cards are an object-oriented design technique teams can use to discuss what a class should know and do and what other classes it interacts with.
Customer development is a four-step framework that provides a way to use a scientific approach to validate assumptions about your product and business. (learn more)
The daily meeting is one of the most commonly practiced Agile techniques and presents an opportunity for a team to get together on a regular basis to coordinate their activities.
Definition of Done
The definition of done is an agreed upon list of the activities deemed necessary to get a product increment, usually represented by a user story, to a done state by the end of a sprint.
Definition of Ready
Definition of Ready involves creating clear criteria that a user story must meet before being accepted into an upcoming iteration. This is typically based on the INVEST matrix.
An epic is a large user story. Multiple user stories are in one epic.
Error handling refers to the response and recovery procedures from error conditions present in a software application.
In software development, an “estimate” is the evaluation of the effort necessary to carry out a given development task; this is most often expressed in terms of duration.
Exploratory testing is, more than strictly speaking a “practice,” a style or approach to testing software which is often contrasted to “scripted testing.”
ETL (Extract Transfer Load)
The process of extracting data from source systems, transforming the data and bringing it into a data repository.
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
A facilitator is a person who chooses or is given the explicit role of conducting a meeting.
An Agile team frequently releases its product into the hands of end users, listening to feedback, whether critical or appreciative.
Given When Then
The Given-When-Then formula is a template intended to guide the writing of acceptance tests for a User Story: (Given) some context, (When) some action is carried out, (Then) a particular set of observable consequences should obtain.
Or hamburger icon is the menu icon that hides the traditional File menu. Alternatively referred to as the three-line menu
The team meets regularly to reflect on the most significant events that occurred since the previous such meeting and identify opportunities for improvement.
In an Agile context, Incremental Development is when each successive version of a product is usable, and each builds upon the previous version by adding user-visible functionality.
An index is a copy of selected columns of data from a table that can be searched efficiently that also includes a low-level disk block address or direct link to the complete row of data it was copied from. Some databases extend the power of indexing by letting developers create indexes on functions or expressions.
Indexing is a way to optimize the performance of a database by minimizing the number of disk accesses required when a query is processed. An index or database index is a data structure, which is used to quickly locate and access the data in a database table. Indexes are created using the first column is the Search key that contains a copy of the primary key. The second column is the Data Reference which contains a set of pointers holding the address of the disk block where that particular key value can be found.
“Information radiator” is the term for any of a number of visual displays which a team places in a highly visible location so that all team members can see the latest information at a glance.
“Integration” (or “integrating”) refers to any efforts still required for a project team to deliver a product suitable for release as a functional whole.
The acronym INVEST stands for a set of criteria used to assess the quality of a user story. If the story fails to meet one of these criteria, the team may want to reword it.
An iteration is a timebox during which development takes place. The duration may vary from project to project and is usually fixed.
Agile projects are iterative insofar as they intentionally allow for “repeating” software development activities, and for potentially “revisiting” the same work products (the phrase “planned rework” is sometimes used; refactoring is a good example).
The Kanban Method is a means to design, manage and improve flow for knowledge work and allows teams to start where they are to drive evolutionary change.
A Kanban Board is a visual workflow tool consisting of multiple columns. Each column represents a different stage in the workflow process.
Lead Time is the time between a customer order and delivery. In software development, it can also be the time between a requirement made and its fulfillment.
Excel macros save you time and headaches by automating repetitive tasks. You can code it in Visual Basic Applications (VBA) or record your keystrokes.
Means that your app is made up of lots of smaller, independent applications capable of running in their own memory space and scaling independently from each other across potentially many separate machines.
A Milestone Retrospective is a team’s detailed analysis of the project’s significant events after a set period of time or at the project’s end.
Minimum Marketable Feature (MMF)
A Minimum Marketable Feature is a small, self-contained feature that can be developed quickly and that delivers significant value to the user.
Minimum Viable Product (MVP)
A Minimum Viable Product is, as Eric Ries said, the “version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.”
Mob Programming is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer.
A screen that is a window on top of the current screen where the current screen in greyed out.
Mock Objects (commonly used in the context of crafting automated unit tests) consist of instantiating a test-specific version of a software component.
Means that your app is written as one cohesive unit of code whose components are designed to work together, sharing the same memory space and resources.
A Niko-niko Calendar is updated daily with each team member’s mood for that day. Over time the calendar reveals patterns of change in the moods of the team, or of individual members.
Pair programming consists of two programmers sharing a single workstation (one screen, keyboard, and mouse among the pair).
Pagination is the process of separating digital content into discrete pages or with lazy loading/ infinite scroll pagination. If you have a website with large lists of information you want to display, you may wish to add some sort of pagination to each page.
An example of basic pagination at the bottom of the page is below:
1 2 3 4 5
Infinite Scroll Pagination: loads from an API 10 records at a time. Often you see this on news feeds. Some great examples are Facebook, LinkedIn, Pinterest etc.
This is a JSON-formatted text that is transferred with a web serves/ API. The Payload is either posted (via an HTTP POST) to a web service when a user creates a resource or returned from a web service (via an HTTP GET) when a user requests a resource(s).
Personas are synthetic biographies of fictitious users of the future product.
A pivot table is a table that summarizes data in another table.
An approach to estimation used by Agile teams. Each team member “plays” a card bearing a numerical value corresponding to a point estimation for a user story.
Points (estimates in)
Agile teams generally prefer to express estimates in units other than the time-honored “man-hours.” Possibly the most widespread unit is “story points.”
The product owner is a role created by the Scrum Framework responsible for making sure the team delivers the desired outcome.
A high-level summary of the project’s key success factors displayed on one wall of the team room as a flipchart-sized sheet of paper.
Quick Design Session
When “simple design” choices have far-reaching consequences, two or more developers meet for a quick design session at a whiteboard.
Refactoring consists of improving the internal structure of an existing program’s source code while preserving its external behavior.
Relative estimation consists of estimating tasks or user stories by comparison or by a grouping of items of equivalent difficulty.
Responsive Break Points: The point is to design for the amount of screen space available to your app (the app’s window). As a general thumb Microsoft recommends these sizes: small (640px and smaller), medium (641px to 1007px), and large (1008px and larger). The Pixels are the CSS width. Commonly you will see CSS width ranges that need to be accounted for.
The “role-feature-reason” template is one of the most commonly recommended aids to write user stories: As a … I want … So that …
Rule of Simplicity
Rules of Simplicity is a set of criteria, in priority order, proposed by Kent Beck to judge whether some source code is “simple enough.”
Scrum is a process framework used to manage product development and other knowledge work.
The scrum master is responsible for ensuring the team lives agile values and principles and follows the practices that the team agreed they would use.
Scrum of Scrums
A technique to scale Scrum up to large groups (over a dozen people), consisting of dividing the groups into Agile teams of 5-10.
Sign Up for Tasks
Members of an Agile development team normally choose which tasks to work on, rather than being assigned work by a manager.
A team adopting the “simple design” practice bases its software design strategy on a set of “simple design” principles.
The slide out content panel can be used for various purposes such as hidden menus that can be revealed to us by clicking on or hovering over an icon.
Smoke Testing (Build verification testing) – is a type of software testing that comprises of a non-exhaustive set of tests that aim at ensuring that the most important functions work. The results of this testing are used to decide if a build is stable enough to proceed with further testing.
Stored Procedure/ Cron Job
Stored procedures are a batch of SQL statements or scripts that can be executed in a couple of ways. They perform DDL and DML statements to transform and move information across systems.
Story mapping consists of ordering user stories along two independent dimensions.
Splitting consists of breaking up one user story into smaller ones, while preserving the property that each user story separately has measurable business value.
The team aims for a work pace that they would be able to sustain indefinitely.
The most basic form of a task board is divided into three columns labeled “To Do,” “In Progress,” and “Done.” Cards are placed in the columns to reflect the current status of that task.
Test Driven Development (TDD)
“Test-driven development” is a style of programming in which three activities are tightly interwoven: coding, testing (in the form of writing unit tests) and design (in the form of refactoring).
A “team” in the Agile sense is a small group of people, assigned to the same project or effort, nearly all of them on a full-time basis.
The team (ideally the whole team, including the product owner or domain expert) has the use of a dedicated space for the duration of the project, set apart from other groups’ activities.
“Card, Conversation, Confirmation” is a formula that captures the components of a User Story.
Three amigos refer to the primary perspectives to examine an increment of work before, during, and after development. Those perspectives are Business, Development, and Testing.
The daily meeting is structured around some variant of the following three questions: What have you completed? What will you do next? What is getting in your way?
A timebox is a previously agreed period of time during which a person or a team work steadily towards completion of some goal.
Striving to use the vocabulary of a given business domain, not only in discussions about the requirements for a software product but in discussions of design as well and all the way into “the product’s source code itself.”
A unit test is a short program fragment written and maintained by the developers on the product team, which exercises some narrow part of the product’s source code and checks the results.
Usability testing is an empirical, exploratory technique to answer questions such as “how would an end user respond to our software under realistic conditions?”
In consultation with the customer or product owner, the team divides up the work to be done into functional increments called “user stories.”
At the end of each iteration, the team adds up effort estimates associated with user stories that were completed during that iteration. This total is called velocity.
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later
This is like a SQL join in excel because it joins information with a unique identifier.
=VLOOKUP(Value you want to look up, the range where you want to lookup the value, the column number in the range containing the return value, Exact Match or Approximate Match – indicated as 0/FALSE or 1/TRUE).
Wire Framing/ Mockups
A page schematic or screen blueprint is a visual guide that represents the skeletal framework of a website. We recommend the following tools:
Adobe XD: https://www.adobe.com/products/xd.html