|
| 1 | + |
| 2 | +<!DOCTYPE html> |
| 3 | +<html lang="en"> |
| 4 | + |
| 5 | +<head> |
| 6 | + <meta charset="utf-8"> |
| 7 | + <meta content="width=device-width, initial-scale=1.0" name="viewport"> |
| 8 | + |
| 9 | + <title>Introducing the Kuadrant Roadmap and Process</title> |
| 10 | + <meta content="" name="description"> |
| 11 | + <meta content="" name="keywords"> |
| 12 | + |
| 13 | + <!-- Favicons --> |
| 14 | + <link href="/static/img/favicon.png" rel="icon"> |
| 15 | + <link href="/static/img/apple-touch-icon.png" rel="apple-touch-icon"> |
| 16 | + |
| 17 | + <!-- Google Fonts --> |
| 18 | + <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Jost:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet"> |
| 19 | + |
| 20 | + <!-- Vendor CSS Files --> |
| 21 | + <link href="/static/vendor/aos/aos.css" rel="stylesheet"> |
| 22 | + <link href="/static/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> |
| 23 | + <link href="/static/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet"> |
| 24 | + <link href="/static/vendor/boxicons/css/boxicons.min.css" rel="stylesheet"> |
| 25 | + <link href="/static/vendor/glightbox/css/glightbox.min.css" rel="stylesheet"> |
| 26 | + <link href="/static/vendor/remixicon/remixicon.css" rel="stylesheet"> |
| 27 | + <link href="/static/vendor/swiper/swiper-bundle.min.css" rel="stylesheet"> |
| 28 | + |
| 29 | + <!-- Template Main CSS File --> |
| 30 | + <link href="/static/css/style.css" rel="stylesheet"> |
| 31 | +</head> |
| 32 | + |
| 33 | +<body> |
| 34 | + |
| 35 | + <!-- ======= Header ======= --> |
| 36 | + <header id="header" class="fixed-top "> |
| 37 | + <div class="container d-flex align-items-center"> |
| 38 | + |
| 39 | + <!-- <h1 class="logo me-auto"><a href="index.html">Kuadrant</a></h1> --> |
| 40 | + <!-- Uncomment below if you prefer to use an image logo --> |
| 41 | + <a href="/" class="logo me-auto"><img src="/static/img/kuadrant_logo_horizontal_reverse_rgb_600px.png" alt="" class="img-fluid"></a> |
| 42 | + |
| 43 | + <nav id="navbar" class="navbar"> |
| 44 | + <ul> |
| 45 | + <li><a class="nav-link " href="/"><i class="bx bx-home"></i> Home</a></li> |
| 46 | + |
| 47 | + <li> |
| 48 | + <a class="nav-link " href="/blog/"><i class="bx bx-notepad"></i> Blog</a> |
| 49 | + </li> |
| 50 | + <li> |
| 51 | + <a class="nav-link " href="/community/"><i class="bx bx-user-circle"></i> Community</a> |
| 52 | + </li> |
| 53 | + <li> |
| 54 | + <a class="nav-link " href="/contributing/"><i class="bx bx-user-plus"></i> Contributing</a> |
| 55 | + </li> |
| 56 | + <li><a class="nav-link btn-get-started" href="https://docs.kuadrant.io"><i class="bx bx-book"></i> Documentation</a></li> |
| 57 | + <li><a class="nav-link btn-get-started" href="https://github.com/Kuadrant/"><i class="bx bxl-github"></i> GitHub</a></li> |
| 58 | + </ul> |
| 59 | + <i class="bi bi-list mobile-nav-toggle"></i> |
| 60 | + </nav><!-- .navbar --> |
| 61 | + |
| 62 | + </div> |
| 63 | + </header><!-- End Header --> |
| 64 | + |
| 65 | + <main id="main" class="other-page"> |
| 66 | + |
| 67 | + |
| 68 | + <div class="container"> |
| 69 | + <h1>Introducing the Kuadrant Roadmap and Process</h1> |
| 70 | +<h4> |
| 71 | +<ul class="post-metadata"> |
| 72 | + <li>By: Craig Brookes, David Martin | <time datetime="2024-08-20">20 August 2024</time></li> |
| 73 | +</ul> |
| 74 | +</h4> |
| 75 | +<p><strong>Disclaimer:</strong> This is not intended to be a perfect system but just an evolution and iteration. It can and should be improved over time.</p> |
| 76 | +<p>The <a href="https://github.com/orgs/Kuadrant/projects/18/views/22">Kuadrant Backlog</a> gives us a sorted view of all backlog items across the different repositories, areas, and features. These terms are explained in detail below.<br> |
| 77 | +Here's an example of what the backlog looks like:</p> |
| 78 | +<p><picture><source type="image/avif" srcset="/img/H1n-om3YRW-900.avif 900w"><source type="image/webp" srcset="/img/H1n-om3YRW-900.webp 900w"><img alt="Kuadrant backlog view in github" loading="lazy" decoding="async" src="/img/H1n-om3YRW-900.png" width="900" height="383"></picture></p> |
| 79 | +<p>For releases, like the <a href="https://github.com/orgs/Kuadrant/projects/18/views/23">Kuadrant v1 milestone release</a>, a board view, grouped by area is available.<br> |
| 80 | +Here's what that looks like:</p> |
| 81 | +<p><picture><source type="image/avif" srcset="/img/R9LqI-CVIi-900.avif 900w"><source type="image/webp" srcset="/img/R9LqI-CVIi-900.webp 900w"><img alt="Kuadrant release view in github" loading="lazy" decoding="async" src="/img/R9LqI-CVIi-900.png" width="900" height="402"></picture></p> |
| 82 | +<h2 id="key-concepts" tabindex="-1"><a class="header-anchor" href="#key-concepts">Key Concepts</a></h2> |
| 83 | +<h3 id="areas" tabindex="-1"><a class="header-anchor" href="#areas">Areas</a></h3> |
| 84 | +<p>An area is broad by design and can contain many features. Areas are a defined set and should remain as small as possible. The idea is to make things more consumable from a community/external perspective.<br> |
| 85 | +e.g. I am interested in rate limiting. I see rate limiting as an area and within that area I see multiple logically grouped pieces of work.</p> |
| 86 | +<p>This can be visualised in github using a <a href="https://github.com/orgs/Kuadrant/projects/18/views/22?sliceBy%5Bvalue%5D=Rate+Limiting">filter of the backlog project view</a>.</p> |
| 87 | +<p><em>What if something could go into more than one area?</em></p> |
| 88 | +<p>Don’t overthink it. Choose an area and put it there. It can be changed later if need be. We don’t have 3 dimensional boards yet 😀</p> |
| 89 | +<p><em>Why are there features that are also areas?</em></p> |
| 90 | +<p>Observability is a good example of this. The DNS area needs observability features. Observability is a feature of most components and areas. Observability is also something that we are “generally delivering to persona use cases” and so there are some things that fit better into an area to be focused on independently (API focused observability, Alert and dashboard templates etc that may be fed from the observability features in the other areas).</p> |
| 91 | +<h3 id="features" tabindex="-1"><a class="header-anchor" href="#features">Features</a></h3> |
| 92 | +<p>A feature is a tightly coupled set of issues that deliver a certain “thing” for the project and at some point will be considered “done”. Feature may be a contentious term, but I didn’t have a better term at this point. Technically there can be a large number of features. The feature option is just a string.<br> |
| 93 | +Here's an example of a feature <a href="https://github.com/orgs/Kuadrant/projects/18/views/22?sliceBy%5BcolumnId%5D=73323580&sliceBy%5Bvalue%5D=Azure+Support">filtered view of the backlog for Azure Support</a>.</p> |
| 94 | +<p><em>Where does this leave Epics?</em></p> |
| 95 | +<p>Still valuable ….</p> |
| 96 | +<h3 id="iterations" tabindex="-1"><a class="header-anchor" href="#iterations">Iterations</a></h3> |
| 97 | +<p>An iteration in GitHub is the name given to identify a period of time. It is a useful tool for understanding what is happening within a given period of time and also what we have committed to and planned and will ideally make it in the next iteration (or release) of the project.<br> |
| 98 | +Why use an iteration?</p> |
| 99 | +<ul> |
| 100 | +<li>Allows a shared timebox for the next iteration of the project. Everyone is working with the same iteration to the same date and knows there will be a release at the end of the iteration.</li> |
| 101 | +<li>Improves visibility into what is happening within a given time frame</li> |
| 102 | +<li>Breaks down a large period of time (months until November) into smaller easier chunks that us humans can get our heads around.</li> |
| 103 | +<li>We work in 3-week interactions. This gives us a total of 5 iterations between now and KubeCon NA 2024</li> |
| 104 | +</ul> |
| 105 | +<h3 id="estimates" tabindex="-1"><a class="header-anchor" href="#estimates">Estimates</a></h3> |
| 106 | +<ul> |
| 107 | +<li>Estimates are exactly that. No one will come chasing you if you get an estimate wrong.</li> |
| 108 | +<li>Estimates will help us gauge how much we can complete in a given iteration and also in a given large period of time.</li> |
| 109 | +<li>Suggested Estimate Values to keep things simple: |
| 110 | +<ul> |
| 111 | +<li>5: 1-2 days effort</li> |
| 112 | +<li>8: 3-5 days effort</li> |
| 113 | +<li>13: anything from 5 days to 2 weeks effort</li> |
| 114 | +</ul> |
| 115 | +</li> |
| 116 | +<li>If an issue is larger than a 13 and can’t be completed within an iteration, then really it should be looked at closely to see if it can be broken down further. A 13 point issue should also probably be looked carefully to see can it be broken down further</li> |
| 117 | +</ul> |
| 118 | +<h3 id="releases" tabindex="-1"><a class="header-anchor" href="#releases">Releases</a></h3> |
| 119 | +<p>While we release an increment with the end of each iteration. The release field is more of a milestone release. e.g v1. This release version should be added to any work that is a “must do” for v1.</p> |
| 120 | +<h2 id="using-the-views" tabindex="-1"><a class="header-anchor" href="#using-the-views">Using The Views</a></h2> |
| 121 | +<h3 id="adding-new-stuff" tabindex="-1"><a class="header-anchor" href="#adding-new-stuff">Adding New Stuff</a></h3> |
| 122 | +<h4 id="areas-1" tabindex="-1"><a class="header-anchor" href="#areas-1">Areas</a></h4> |
| 123 | +<p>If a new area is discovered, it can be discussed on Slack or community call as to why it is big enough for a new area all of its own. That said it won't be a heavy-weight process to add a new area.</p> |
| 124 | +<h4 id="features-1" tabindex="-1"><a class="header-anchor" href="#features-1">Features</a></h4> |
| 125 | +<p>The expectation is that these will naturally occur as work is planned and outlined. It is just a string so there is no real limitation on it.</p> |
| 126 | +<h4 id="adding-new-issues" tabindex="-1"><a class="header-anchor" href="#adding-new-issues">Adding New Issues</a></h4> |
| 127 | +<p>It's important that the right area, feature and version is assigned. This is just a suggestion. If you are adding a new issue, it can be helpful to go to the feature option on the view and then click the “add new issue” at the bottom of the list as this will auto fill the feature and area.</p> |
| 128 | +<h3 id="an-iteration" tabindex="-1"><a class="header-anchor" href="#an-iteration">An Iteration</a></h3> |
| 129 | +<p>An iteration is 3 weeks long. It can be broken down into a weekly cycle like below.<br> |
| 130 | +The goal at the end of each iteration is to do a release of the project.</p> |
| 131 | +<table> |
| 132 | +<thead> |
| 133 | +<tr> |
| 134 | +<th>Week 1</th> |
| 135 | +<th>Week 2</th> |
| 136 | +<th>Week 3</th> |
| 137 | +</tr> |
| 138 | +</thead> |
| 139 | +<tbody> |
| 140 | +<tr> |
| 141 | +<td>Refine/ Prioritise / Estimate</td> |
| 142 | +<td>Refine/ Prioritise / Estimate</td> |
| 143 | +<td>Refine/ Prioritise / Release</td> |
| 144 | +</tr> |
| 145 | +</tbody> |
| 146 | +</table> |
| 147 | +<h3 id="prioritisation" tabindex="-1"><a class="header-anchor" href="#prioritisation">Prioritisation</a></h3> |
| 148 | +<p>The backlog view allows you to drag items up and down the list. I find it useful to add <code>area:DNS,TLS</code> so the areas are limited down to those I want to focus on.</p> |
| 149 | +<p><em>How do I decide what should be prioritised?</em></p> |
| 150 | +<p>If unsure, ask. Generally use common sense. Is this an item that is in the scope of v1?</p> |
| 151 | +<h3 id="refinement" tabindex="-1"><a class="header-anchor" href="#refinement">Refinement</a></h3> |
| 152 | +<p>Refinement calls should focus on refining the understanding on an issue and focus on its definition so that at the end of the discussion you can set its status to TODO as this means it is ready to be worked on.<br> |
| 153 | +So when doing a refinement in a particular area you can use the following query:<br> |
| 154 | +<code>area:DNS,TLS no:status</code> It will keep the order and grouping but filter down to specific areas. Some teams find it useful at this stage to also estimate the issue. Some do the estimate during the planning stage</p> |
| 155 | +<h3 id="workflow" tabindex="-1"><a class="header-anchor" href="#workflow">Workflow</a></h3> |
| 156 | +<p>We don’t plan for an iteration. Instead the continuous refinement and prioritisation will ensure the most important items are at the top of the backlog. When you take on a piece of work, you take it from the top (or as close as possible to the top depending on feature)</p> |
| 157 | + |
| 158 | +<ul class="links-nextprev"><li>Previous: <a href="/blog/cncf-sandbox/">Kuadrant Accepted as Cloud Native Computing Foundation (CNCF) Sandbox Project</a></li> |
| 159 | +</ul> |
| 160 | + </div> |
| 161 | + |
| 162 | + |
| 163 | + |
| 164 | + |
| 165 | + </main><!-- End #main --> |
| 166 | + |
| 167 | + <!-- ======= Footer ======= --> |
| 168 | + <footer id="footer"> |
| 169 | + |
| 170 | + <div class="footer-top"> |
| 171 | + <div class="container"> |
| 172 | + <div class="row"> |
| 173 | + |
| 174 | + <div class="col-lg-4 col-md-6 footer-contact"> |
| 175 | + <p> |
| 176 | + <a href="https://www.cncf.io/sandbox-projects/"><img src="/static/img/cncf-color.png" class="logo" alt="CNCF logo"></a> |
| 177 | + </p> |
| 178 | + <p> |
| 179 | + We are a Cloud Native Computing Foundation sandbox project. |
| 180 | + </p> |
| 181 | + </div> |
| 182 | + |
| 183 | + <div class="col-lg-4 col-md-6 footer-links"> |
| 184 | + <h4>Useful Links</h4> |
| 185 | + <ul> |
| 186 | + |
| 187 | + <li> |
| 188 | + <i class="bx bx-chevron-right"></i> <a href="/blog/">Blog</a> |
| 189 | + </li> |
| 190 | + <li> |
| 191 | + <i class="bx bx-chevron-right"></i> <a href="/community/">Community</a> |
| 192 | + </li> |
| 193 | + <li> |
| 194 | + <i class="bx bx-chevron-right"></i> <a href="/contributing/">Contributing</a> |
| 195 | + </li> |
| 196 | + </ul> |
| 197 | + </div> |
| 198 | + |
| 199 | + <div class="col-lg-4 col-md-6 footer-links"> |
| 200 | + <h4>Our Social Networks</h4> |
| 201 | + <div class="social-links mt-3"> |
| 202 | + <a href="https://groups.google.com/g/kuadrant" class="envelope"><i class="bx bx-envelope"></i></a> |
| 203 | + <a href="https://github.com/Kuadrant/" class="github"><i class="bx bxl-github"></i></a> |
| 204 | + <a href="https://twitter.com/kuadrantio" class="twitter"><i class="bx bxl-twitter"></i></a> |
| 205 | + <a href="https://www.youtube.com/channel/UCCZ0ByQA06jn9aB7YFL1Z6w" class="youtube"><i class="bx bxl-youtube"></i></a> |
| 206 | + <a href="https://stackoverflow.com/questions/tagged/kuadrant+authorino+limitador" class="stack-overflow"><i class="bx bxl-stack-overflow"></i></a> |
| 207 | + <a href="https://kubernetes.slack.com/archives/C05J0D0V525" class="slack"><i class="bx bxl-slack"></i></a> |
| 208 | + </div> |
| 209 | + </div> |
| 210 | + |
| 211 | + </div> |
| 212 | + </div> |
| 213 | + </div> |
| 214 | + |
| 215 | + <div class="container footer-bottom clearfix"> |
| 216 | + <div class="copyright"> |
| 217 | + <p>Copyright <strong><span>The Kuadrant Contributors</span></strong>.</p> |
| 218 | + <p>The Linux Foundation® (TLF) has registered trademarks and uses trademarks. For a list of TLF trademarks, see <a href="https://www.linuxfoundation.org/trademark-usage/">Trademark Usage</a></p> |
| 219 | + <p>Kuadrant was originally created by <a href="https://www.redhat.com">Red Hat</a></p> |
| 220 | + </div> |
| 221 | + |
| 222 | + </div> |
| 223 | + </footer><!-- End Footer --> |
| 224 | + |
| 225 | + <div id="preloader"></div> |
| 226 | + <a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a> |
| 227 | + |
| 228 | + <!-- Vendor JS Files --> |
| 229 | + <script src="/static/vendor/aos/aos.js"></script> |
| 230 | + <script src="/static/vendor/bootstrap/js/bootstrap.bundle.min.js"></script> |
| 231 | + <script src="/static/vendor/glightbox/js/glightbox.min.js"></script> |
| 232 | + <script src="/static/vendor/isotope-layout/isotope.pkgd.min.js"></script> |
| 233 | + <script src="/static/vendor/swiper/swiper-bundle.min.js"></script> |
| 234 | + <script src="/static/vendor/waypoints/noframework.waypoints.js"></script> |
| 235 | + <script src="/static/vendor/php-email-form/validate.js"></script> |
| 236 | + |
| 237 | + <!-- Template Main JS File --> |
| 238 | + <script src="/static/js/main.js"></script> |
| 239 | + |
| 240 | +</body> |
| 241 | + |
| 242 | +</html> |
0 commit comments