Friends of OpenJDK Today

SKP’s Agile Cheatsheet: Part 01

October 28, 2021

Author(s)

  • Sumith Kumar Puri
    Sumith Puri

    Software Professional from India at Level of a [Principal Java/J2EE Architect]. [Intro] https://bit.ly/skp-tech-author

SKP's Agile Cheatsheet is a three part series of articles focused on daily agile terminology, ideal to be printed out and pinned up near your workstation.

Acceptance Testing. An acceptance test is a formal description of the behavior of a software product, generally expressed as an example or a usage scenario. Several 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. [Type – Software Testing / Product Management]

Affinity Diagram. An affinity diagram is a method used to organize many ideas into groups with common themes or relationships. Affinity diagrams are tools for analysing large amounts of data and discovering relationships that allow a design direction to be established based on the associations. [Type – Brainstorming, Agile Process, Sprint Retrospective]

 

Fig.1: Real-World Affinity Diagram (Affinity Mapping) from a Sprint Retrospective (kbp.media)

 

Agile C4Model. C4 Model documents the architecture of a software system, by showing multiple points of view that explain the decomposition of a system into containers and components, the relationship between these elements, and, where appropriate, the relation with its users. The viewpoints are organized according to their hierarchical level: Context Diagrams, Container Diagrams, Component Diagrams, Code Diagrams. [Type – Agile Modelling, Agile Architecture, System Design]

 

  

 Fig.2: Hierarchical C4 Model for Viewpoints of a Software System (c4model.com)

Agile Unified Process. Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP) developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques including Test-Driven Development (TDD), Agile Modeling (AM), Agile Change Management, and Database Refactoring to Improve Productivity. [Type – Agile Variant / Development Process]

Anti-Pattern. Antipatterns are common solutions to common problems where the solution is ineffective and may result in undesired consequences. An antipattern is different from bad practice under certain circumstances. [Type – Patterns in Problem Solving]

Architectural Spike. An Architectural Spike is a technical risk-reduction technique popularized by Extreme Programming (XP) where you write just enough code to explore the use of a technology or technique that you're unfamiliar with. [Type – Agile Stories / Prototyping]

Burn Down Charts. The team displays, somewhere on a wall of the project room, a large graph relating the quantity of work remaining (on the vertical axis) and the time elapsed since the start of the project (on the horizontal, showing future as well as past). This constitutes an “Information Radiator“, provided it is updated regularly. Two variants exist, depending on whether the amount graphed is for the work remaining in the iteration (“Sprint Burndown”) or more commonly the entire project (“Product Burndown”). [Type – Agile Project Management]

 

Fig.3: Burn Down vs. Burn Up Charts (publications.axelos.com) 

Capacity. Capacity is how much availability the team has for the sprint. This may vary based on team members being on vacation, ill, etc. The team should consider capacity in determining how many product backlog items to plan for a sprint. [Type – Agile Project Management / Agile Estimation]

Fig.4: Typical Capacity Calculation (targetprocess.com)

Continuous Delivery. Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. Our goal is to make deployments—whether of a large-scale distributed system, a complex production environment, an embedded system, or an app—predictable, routine affairs that can be performed on demand. We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes daily. We thus eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes. [Type – Agile Development / Agile Releases]

Continuous Deployment. 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. [Type – Agile Development / Agile DevOps]

Continuous Development. Continuous development, “like agile, began as a software development methodology. Rather than improving software in one large batch, updates are made continuously, piece-by-piece, enabling software code to be delivered to customers as soon as it is completed and tested.Companies that can successfully implement Continuous Development throughout their organization often find dramatic strategic benefits,” as described in the Harvard Business Review. [Type – Agile Development / Agile Releases]

Continuous Integration. Continuous Integration is the practice of merging code changes into a shared repository several times a day to release a product version at any moment. This requires an integration procedure which is reproducible and automated. [Type – Agile Development / Agile Change Management]

Cumulative Flow Diagram. The Cumulative Flow Diagram (also known as CFD) is one of the most advanced Kanban and Agile analytics charts. It provides a concise visualization of the three most important metrics of your flow: Cycle Time, Throughput, Work in Progress. Its main purpose is to show you how stable your flow is and help you understand where you need to focus on making your process more predictable. It gives you quantitative and qualitative insight into past and existing problems and can visualize massive amounts of data. [Type – Agile Project Management]

Fig.5: Typical Cumulative Flow Diagram in Agile (kanbanize.com) 

Definition of Done (DoD). 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. [Type – Agile Management]

Demo. Demo or Sprint Demo or Sprint Review or Agile Demo (Terms with only few Subtle Differences) : [1] An activity of a sprint review where the completed (done) product backlog items are demonstrated with the goal of promoting an information-rich discussion between the Scrum team and other sprint review participants. [2.] A term that is frequently used synonymously to refer to the entire sprint review. [Type – Agile Development]

Disciplined Agile Delivery (DAD). Disciplined agile delivery (DAD) is the software development portion of the Disciplined Agile Toolkit. DAD enables teams to make simplified process decisions around incremental and iterative solution delivery. DAD builds on the many practices espoused by advocates of Agile Software Development, including Scrum, Agile Modeling, Lean Software Development, and Others. The primary reference for disciplined agile delivery is the book Choose Your WoW! written by Scott Ambler and Mark Lines. [Type – Agile Variant]

Dreyfus Model. The Dreyfus Model is based on the idea that different people, no matter their profession, can be divided into 5 categories - from novice to expert. In addition, each category has a specific set of skills and, most importantly, different approaches to solving problems. Newbie (Novice) or Beginner, Advanced Beginner, Competent, Proficient, Expert. It can be used in Agile for Scaling People. [Type – Agile Project Management]

Earned Value Management. Earned Value Management (EVM) is a project management technique that measures the technical performance, cost and schedule of a project against planned objectives. The result is a simple set of metrics that provides early warnings of performance issues, allowing for timely and appropriate adjustments. EVM also improves the definition of project scope and provides valuable metrics for communicating progress to stakeholders. To implement EVM, you need to measure some basic metrics like a valuation of planned work, called planned value (PV). Agile EVM is a lightweight and easy to use adaptation of the traditional Earned Value Management technique which provides the benefits of traditional Earned Value Management for Scrum. [Type – Agile Project Management / Agile Analysis]

Fig.6: Typical S-Curve showing EV, AC, PV, SV, CV in Agile (mpug.com) 

More coming soon!

Topics:

Related Articles

View All

Author(s)

  • Sumith Kumar Puri
    Sumith Puri

    Software Professional from India at Level of a [Principal Java/J2EE Architect]. [Intro] https://bit.ly/skp-tech-author

Comments (0)

Your email address will not be published. Required fields are marked *

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard