itpm_casestudy_presentation/index.html

208 lines
8.9 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>reveal.js</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/blood.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h1 class="r-fit-text">PI2<br/>Sprint Planning</h1>
<p style="color: grey; font-size: 50%;">
Sebastian Wünsch,
Yannik Bretschneider,
Jonas Schwedler,
Megi Hoxhalli,
Jana Leinmüller
</p>
</section>
<section>
<h2>Goals</h2>
<ul>
<li class="fragment fade-up">Transition to Test-Driven Development</li>
<li class="fragment fade-up">Implement Core Features before Mid-September</li>
</ul>
<aside class="notes" data-markdown>
- transition to tdd
- tried-and-true method to improve code quality
- will ensure that the system will be testable in the future
- implement core features before Mid-September
- product launch
- a at least partially working version should be up-and-running then
</aside>
</section>
<!--
<section>
<div class="r-stretch">
<canvas data-chart="bar" data-chart-src="cost-graph.csv">
-->
<!--
{
"data" : {
"datasets" : [{ "backgroundColor": "#0f0" }, { "backgroundColor": "#0ff" } ]
},
"options": { "scales": { "x": { }, "y": { } } }
}
-->
<!--
</canvas>
</div>
<aside class="notes" data-markdown>
- Graph of feature priority and feature size
- *big* features generally have a *higher* rank
</aside>
</section>
-->
<section>
<h2>Development Schedule</h2>
<pre><code style="overflow: hidden; font-size: 70%; line-height: 100%" data-trim data-noescape class="yaml" data-line-numbers="1-8|9-17|18-23|24-31|32-38|39-45">
S1:
cap: 36
tasks:
- Testing Accuracy Increase (14P) (focus on test-driven development)
- Pricing information (+++) (6P)
- Product Page Picture and Alternate Views Display (+++) (8P)
- Product Variables Overview (+++) (6P)
load_capacity: 94%
S2:
cap: 32
tasks:
- Add to cart function (+++)(10P)
- Product Quantity (6P) (+)
- Product Title Display (++) (3P)
- Product Description Display (++) (4P)
- Enable English Language (first half) (3P)
load_capacity: approx 81%
S3:
cap: 31
tasks:
- Social Share Buttons (+ for current cost, ++ for less points) (22P)
- Trust Signals (first part) (++) (3P)
load_capacity: 80%
S4:
cap: 29
tasks:
- Related products (6P)
- Product Page View Different colors (7P)
- Add to comparison function (8P)(0)
- Add to wishlist function (6P) (+)
load_capacity: 93%
S5:
cap: 25
tasks:
- Product Star Review / Ranking (8P) (+)
- Consumer reviews on product (12P) (0)
- Webshop - Page Speed Increase (first part) (5P)
load_capacity: 100%
S6:
cap: 36
tasks:
- Webshop - Page Speed Increase (second part) (7P)
- Live-Chat (0) (27P)
- Enable English Language (second half) (2P)
load_capacity: 100%
</code></pre>
<aside class="notes" data-markdown>
- We're not gonna go through everything, but we are going to talk about why we made the decisions we made
1. Sprint
- Testing Accuracy Increase is early to ensure that *all future code will
be developed in a testable way*
- Instruct the team on how to carry out TDD
- TDD is a skill that all professional developers should have
- Other than that, some core features are done early on
2. Sprint
- Thematically similar features to Sprint 1
- Core Features of the webshop
- First Part of the english translation to have a sample to review the translation quality
3. Sprint
- Development of Social Share Button is extremely expensive
- Wierd, as there are libraries out there to do this in a single LoC
- If development finishes early, features from later sprints should be started
4. Sprint
- Focus on low-priority features that are still important parts of the webshop
- Related Products are placed here
- Reason is that the team working on the algorithm needed two more sprints to get the algorithm ready
- We gave them three to account for possible delays
5. Sprint
- Similar to the previous sprint
- Webshop should be deployed now because of timeline, product launch
- Here, first part of increasing the webshop speed is started
- Optimization is done at the end to *ensure that all components have been developed already*
- leads to more accurate profiling of the application
- better / bigger speed improvements
- "cleanup" of speed problems that were caused by development
6. Sprint
- More Speed Increase
- Second part of the english translation (released after the sprint)
- Live Chat is really expensive, but basically irrelevant
- Can be temporarily replaced with a simple FAQ page
- If the time is not enough, it might be sacrificed for more important features
</aside>
</section>
<section>
<h2>No extra testing capacity needed</h2>
<aside class="notes" data-markdown>
- No extra testing capacity is needed because:
- Team develops through TDD
- Tests are written before the code is
- Tests are automatically executed all the time
- That's also the reason for being able to release the not-finished version of the webshop
</aside>
</section>
<section>
<h4>Lastly: A Note on Social Share Buttons</h4>
<pre><code data-trim data-line-numbers="2-7" class="jsx">
<!--
<TwitterShareButton
url={shareUrl}
title={title}
className="...">
<TwitterIcon size={32} round />
</TwitterShareButton>
-->
</code></pre>
<a href="https://github.com/nygardk/react-share">nygarkd/react-share on GitHub</a>
<aside class="notes" data-markdown>
- Implementing Social Share Buttons is easy
- Libraries exist to do this in a couple lines of code
- Our Estimation is 2 Points instead of 22
</aside>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script src="plugin/chart/plugin.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.2.0/chart.min.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
showNotes: false,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [RevealMarkdown, RevealHighlight, RevealNotes, RevealChart]
});
</script>
</body>
</html>