• R/O
  • SSH

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版2e4e02bb2d2091e6387a49fbffc4240ebdf99a15 (tree)
时间2024-03-21 23:55:40
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

Agile-SIA (blog) is done. Publish STAGING

更改概述

差异

diff -r 125e74b66eac -r 2e4e02bb2d20 .readthedocs.yaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.readthedocs.yaml Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,23 @@
1+# Read the Docs configuration file
2+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3+
4+# Required
5+version: 2
6+
7+# Set the version of Python and other tools you might need
8+build:
9+ os: ubuntu-22.04
10+ tools:
11+ python: "3.11"
12+ apt_packages:
13+ - python3-sphinxcontrib.plantuml
14+
15+# Build documentation in the docs/ directory with Sphinx
16+sphinx:
17+ configuration: conf.py
18+
19+# We recommend specifying your dependencies to enable reproducible builds:
20+# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
21+python:
22+ install:
23+ - requirements: requirements.txt
\ No newline at end of file
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/aBumper.jpg
Binary file SystemEngineering/AgileSIA/aBumper.jpg has changed
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/demo/H1-needs.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/demo/H1-needs.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,123 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-demo-H1:
4+
5+=============================
6+1) The Bumper of a Muscle Car
7+=============================
8+
9+
10+.. seealso::
11+ This *first* chapter of the SIA is about requirements. Talk to **all** stakeholders, order and list **all** needs.
12+ The client (ProductOwner) should react with: “*Yes, this the bumper we need*”.
13+
14+ -- :ref:`AgileSIA-5chapters`
15+
16+.. Caution::
17+
18+ * We mix the (shortened) text in this SIA with tips for the apprentice(s).
19+ |BR|
20+ Don’t do that in a genuine SIA.
21+ * We use an “interview style” for some needs to clarify the several demand types,
22+ |BR|
23+ You will not do that in most SIAs.
24+
25+Assignment
26+===========
27+
28+The client’s demand is simple:
29+
30+.. demo:: Make a bumper
31+ :ID: BUMPER
32+ :tags: Bumper
33+ :project: AgileSIA
34+
35+He reasons that whenever we are worth a penny, we know how to deliver a bumper, know all the legal specs, etc.
36+
37+Requirements
38+============
39+
40+.. tip:: As you probably guessed, not “any bumper” will do. So, spend some time on *requirements gathering*.
41+
42+.. req:: Build to impress
43+ :ID: BUMPER_chrome
44+ :links: BUMPER
45+ :tags: Bumper
46+ :project: AgileSIA
47+
48+ As it is a Muscle Car, it should impress ordinary people. They generally like *bling-bling*, shiny stuff. So
49+ the car will have a lot of chrome. We mandate this for the bumper as well.
50+
51+.. req:: We are in a hurry
52+ :ID: BUMPER_April1
53+ :links: BUMPER
54+ :tags: Bumper
55+ :project: AgileSIA
56+
57+ We will race with this car on April 1! So, we need the bumper quickly. And we assume you know we need both bumpers
58+ mounted before we can start regulation. So, plz deliver it as early as possible!
59+
60+.. tip:: Not all requirements are technical. Usually, there are also demands [#nf]_ on cost, duration, quality, etc. Above, you
61+ find an example.
62+
63+
64+.. req:: Front and Back
65+ :ID: BUMPER_1is2
66+ :links: BUMPER
67+ :tags: Bumper
68+ :project: AgileSIA
69+
70+ Even though we always speak about “the bumper” --like everybody else-- every car needs two bumpers: one at the front
71+ and one at the back. And they are not the same!
72+
73+ So, whenever we ask for one, plz deliver both! Although, I assume you already know that. ...
74+
75+.. tip::
76+
77+ This :need:`BUMPER_1is2` need is trivial. At least for some. But when your solution has it wrong is costly.
78+ |BR|
79+ Once in a while, a client will read a triviality and correct it. Then you saved even more.
80+
81+ Remember: the goal of this chapter is simple: *Make sure you solve the right problem*.
82+
83+.. req:: Impress me
84+ :ID: BUMPER_SafetyImago
85+ :links: BUMPER
86+ :tags: Bumper
87+ :project: AgileSIA
88+
89+ We build a luxury, high-end car. Our clients like to be impressed. Surely we don’t want to spend a fortune on a
90+ bumper, but it shouldn't be cheap. Also, we prefer to give our clients a safe & secure car. So make sure that the
91+ bumpers are not only regulation-safe but also “visualise” that!
92+
93+.. req:: Give me options
94+ :ID: BUMPER_Green
95+ :links: BUMPER
96+ :tags: Bumper
97+ :project: AgileSIA
98+
99+ This is our first eco-friendly muscle car; we used to be “petrol heads”. -- therefore we call it *”Green”*.
100+ |BR|
101+ Saying that, as the chief project manager, it worries me too. We have so many things to do, there are so many
102+ project risks, and we can’t afford to delay. Therefore, I’m very happy about your offer to help me with all those
103+ non-core items.
104+
105+ What I’m basically saying is: “Give me options”. When you can deliver faster or find creative solutions, I am
106+ interested --even when it costs more. Then, I can give you more components and remove some risk from my planning.
107+
108+.. tip::
109+
110+ For this exercise, we stop here with the demands. You should now have a quite complete image of the bumper that is
111+ needed. And the (non-technical) demands for this mini-project.
112+
113+ .. warning:: You can now continue with the next page, chapter: :ref:`SIA-demo-H2`.
114+ |BR|
115+ **OR,** you can think for a moment to find a few creative solutions that fit all needs -- Give it a try!
116+
117+-----
118+
119+.. rubric:: footnotes
120+
121+.. [#nf]
122+ Experienced architects will tell you that the non-technical *needs* are the most important ones. Typically, an
123+ architecture is driven by those “*non-functionals*”.
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/demo/H2-authentic.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/demo/H2-authentic.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,41 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-demo-H2:
4+
5+=========================
6+2) The Authentic Solution
7+=========================
8+
9+.. seealso:: This *second* chapter of the SIA contains the first of the typical three solutions. It will resolve **all**
10+ needs as demanded in :ref:`The Problem analysis <SIA-demo-H1>`.
11+ |BR|
12+ But in another way than in “:ref:`SIA-demo-H3`” or “:ref:`SIA-demo-H4`”. *'Other'*, as in providing other business
13+ needs.
14+
15+ -- :ref:`AgileSIA-5chapters`
16+
17+
18+Outline
19+=======
20+
21+The basic idea of this proposal is to shop for a second-hand (set of) bumper(s). We assume finding the Oldsmobile kind
22+of bumpers is easy. They are doubtless bent or rusty, but we can fix that.
23+
24+A huge advantage is they adhere to the classic ‘70-image of the typical muscle car. Would it be great to reuse the bumpers
25+of a `1966 Pontiac GTO <https://en.wikipedia.org/wiki/Pontiac_GTO>`__?
26+
27+Pros & Cons
28+===========
29+
30+* The cost of those bumpers is low, depending on their quality. A bit of restoration work will be needed, but nothing we
31+ can't handle.
32+* This solution fits the current “one of a kind” demands. It will not scale to mass production.
33+* This *reuse* approach might fit nicely in the new “green, environmentally” concept.
34+* As we need to search for (existing) bumpers, it is hard to predict exactly when we will find one (actually: 2).
35+* There is even a (slight) risk we can’t find one. It is advisable to choose another option as a backup.
36+
37+.. note:: Complete this yourself
38+
39+.. tip:: Even this very short introduction already shows we are communicating in “car language”, not into the details of
40+ the solution.
41+
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/demo/H3-exact.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/demo/H3-exact.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,64 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-demo-H3:
4+
5+=====================
6+3) The Exact Solution
7+=====================
8+
9+.. seealso::
10+
11+
12+ This (*third*) chapter of the SIA presents an alternative solution that fulfils **all** :ref:`requirements
13+ <SIA-demo-H1>` again. It takes different factors and perspectives on their importance and priorities into
14+ consideration.
15+ |BR|
16+ Where ":ref:`SIA-demo-H2`" is creative, this one is more classical. The next one, “:ref:`SIA-demo-H4`”, will be
17+ completely different again.
18+
19+ * :ref:`AgileSIA-5chapters`
20+
21+
22+Outline
23+=======
24+
25+We can develop a brand-new “chrome bumper” with the required old style. It gives the looks and robust image you are
26+looking for, and we can make it fit exactly. It's not just the size or width of the car that matters, but also all the
27+bolts and nuts that are needed.
28+|BR|
29+That might even help to assemble the car quickly and easily.
30+
31+Pros & Cons
32+===========
33+
34+* It will always fit, but it requires a lot of manual labour, which makes it expensive.
35+* Working with chrome is complex; it needs time to “Stabilise” (compare it with paint that has to dry). That rest
36+ period costs nothing but affects the (overall) planning.
37+* Roughly, we need 13 steps, with (on average) a week between
38+ |BR|
39+ Note: this is not applicable for :math:`{\alpha}`- and :math:`{\beta}`-versions; they are faster.
40+
41+ * This option is scalable: more bumpers for many cars are possible.
42+
43+
44+.. attention:: This demo is small, we skip a lot of (relevant) details.
45+
46+ For example, we *mention* the “assembly” topic and address the location of the bolts, nuts, and holes, but only very
47+ slightly.
48+
49+ An SIA (even an agile one) frequently has sub-chapters on those (functional) slices, to be introduced in
50+ Chapter 1, or ’in’ one of the solutions. That mostly depends on how generic the “slice’ is for the solutions.
51+
52+ .. tip:: In the workshop, we go into more detail.
53+
54+ In this “bumper example” we might handle ‘slices’ like: ‘Mounting/Assembling’, ‘Reliability’, and ‘Validation of the
55+ complete car’; depending on the audience.
56+ |BR|
57+ We can also use more software-relevant topics, directly. Like ‘does a solution fit in the existing (CI/CD) pipeline’,
58+ ‘is training needed’, etc.
59+
60+ To say something cleaver, including the effect on cost, duration, risks, etc a (prematurely) design may be
61+ needed -- I didn't (nor can't) do it as I’m not a mechanic.
62+ |BR|
63+ But remember: a SIA is not a design document! Design (whiteboard style) just enough to underpin your
64+ statements. Don’t present it to your stakeholders, you only will annoy them. Unburden them!
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/demo/H4-plastic.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/demo/H4-plastic.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,50 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-demo-H4:
4+
5+====================
6+4) Plastic Fantastic
7+====================
8+
9+.. seealso:: This third solution, in chapter-4, is again a completely different approach to achieving the same
10+ :ref:`needs <SIA-demo-H1>`.
11+ |BR|
12+ Whether you like it, or prefer :ref:`SIA-demo-H2` or :ref:`SIA-demo-H3`, is not relevant! That topic is not
13+ part of the (all) solutions, see the next (and last) chapter “:ref:`SIA-demo-H5`” for that!
14+
15+ -- :ref:`AgileSIA-5chapters`
16+
17+
18+Outline
19+=======
20+
21+As might know, we have a department that can “3D print” big plastics, including standard bumpers -- we deliver hundreds
22+of them, for the aftermarket. Using this facility we can create safe, secure bumpers in any shape and size, in hours!
23+|BR|
24+Although almost any colour (combination) of plastics is possible (making it robust, as the colour is “inside), it is not
25+very shiny. But we can add a “chrome finish”.
26+
27+This solution has several benefits. It is cost-effective and quick (far better than any other solution). But most
28+important, it makes it easy to meet formal regulations (e.g. crash tests) as they are pre-validated. Combined with the
29+great flexibility in mounting points, it makes assembling and validating the car easy.
30+
31+
32+Pros & Cons
33+===========
34+
35+* It is fast, fast, fast. We can deliver the first version next week. It’s also cost-effective: An extra “try-out” version
36+ (not shiny) cost virtually nothing.
37+* Also, assembling and validation become easy (see above).
38+* It does meet all requirements --but it is a plastic solution, not a metal one. Plastic bumpers are generally
39+ considered more secure than metal, but your bumper magnets will not stick!
40+* We can use this option as the backup of :ref:`SIA-demo-H2`.
41+* We can also provide this option as a first, fast option and switch to another one whenever this one isn't “shiny
42+ enough”.
43+ |BR|
44+ (in this case, we need to switch in sprint- 2 or -3; otherwise, we have to replan).
45+
46+.. note:: Again, this is just an outlook for the chapter. But we keep it (extra) short for training goals.
47+
48+.. tip:: Can you see that the author is enthusiastic about this option?
49+
50+ .. caution:: Being enthusiastic is fine, but avoid the pitfall of “advertising”!
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/demo/H5-HowToChoose.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/demo/H5-HowToChoose.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,76 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-demo-H5:
4+
5+================
6+5) How To Choose
7+================
8+
9+.. seealso:: This *last* chapter is a short overview and/or tips on “**How** to choose”.
10+
11+ .. Caution:: Don’t advise on which solution is best!
12+
13+ Plz, do not get trapped in the pitfall to advise which solution *is* the best-- all should be ‘great’.
14+ But *‘great’*, for other (business) reasons. Some are cheaper, some are faster, etc.
15+
16+ You merely advise on how the PO (client/...) shall select one of the solutions. “When T2M is most important, ...”,
17+ or “When you target the top market, ...”, etc.
18+
19+ -- :ref:`AgileSIA-5chapters`
20+
21+We have presented three completely different solutions, each with its pros & cons. All do fulfil all needs as
22+given in the 1ste chapter [:ref:`SIA-demo-H1`].
23+|BR|
24+Now, it is time to decide which one you prefer to continue with -- as a polite reminder: [:need:`BUMPER_April1`]. So, hope
25+for a quick decision.
26+
27+Therefore, we present some tips.
28+
29+Tips
30+====
31+
32+Which requirements are most prominent
33+-------------------------------------
34+
35+Even though all requirements are met in every solution, some needs might have a bit more weight. So, let’s go over the
36+most relevant ones.
37+
38+.. rubric:: :need:`BUMPER_chrome` & :need:`BUMPER_SafetyImago`
39+
40+When we like to impress on looks, the “Oldsmobile fenders” [:ref:`SIA-demo-H2`] beets all other solutions. Whereas
41+[:ref:`SIA-demo-H4`] is the most safe solution.
42+
43+The brand-new chrome solution [:ref:`SIA-demo-H3`] is a nice combination for both requirements: safe and shiny.
44+
45+.. rubric:: :need:`BUMPER_April1`
46+
47+Solution “:ref:`SIA-demo-H2`” involves finding a second-hand “Oldsmobile bumper”. This should be easy but has a risk on
48+timing. So, whenever we like to minimize risk, this solution isn’t preferable.
49+|BR|
50+Whereas the high-volume [:ref:`SIA-demo-H4`] option is very, very fast and has no risk of meeting the deadline at all;
51+therefore we even mentioned it as a backup scenario.
52+
53+.. rubric:: :need:`BUMPER_Green`
54+
55+As the bumper is important but not the most expensive part, you can also consider to play on safe. For example, use the
56+cost-effective fast [:ref:`SIA-demo-H4`] solution as a backup, and select one of the other two as the main solution.
57+|BR|
58+This guarantees a good bumper on time. And enables a risk-free great option.
59+
60+.. tip:: Skip :need:`BUMPER_1is2`
61+
62+ It’s obvious, two bumpers are needed. All solutions are in harmony here. So the is no need to handle it here.
63+
64+Other factors
65+-------------
66+
67+.. rubric:: scalable & future
68+
69+Although it, is not a need, this ‘first eco-friendly muscle car’ is a first. And we assume (many) more will
70+follow. Therefore we spend a few words on that too.
71+
72+[:ref:`SIA-demo-H3`] & [:ref:`SIA-demo-H4`] are the most scalable. There is no upper limit on the number of bumpers we
73+can deliver.
74+|BR|
75+Price-wise, the plastic solution is cheaper. However, the piece price of a (new, labour-intensive) chrome bumper will
76+go down when volume rises.
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/demo/index.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/demo/index.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,40 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-demo:
4+
5+*******************
6+Demo: Make a bumper
7+*******************
8+
9+This demo is (far) outside the typical software sphere to help you focus on the Agile SIA itself. With no typical
10+software-engineering fixations, you shouldn't be distracted by with SW-details.
11+
12+At the same time, it is a technical challenge.
13+|BR|
14+I assume you are familiar with this common car background.
15+
16+We use ':ref:`AgileSIA-5chapters`, but each chapter is extremely short. Please make your next SIA short too, but with
17+some body text to make it more readable.
18+
19+Before you write your 1st genuine Agile SIA, I advise you to practice on a software engineering topic. My training has
20+one, but it isn’t published.
21+
22+
23+.. hint:: Background
24+
25+ In this demo, our client is building an impressive **Green Muscle Car**. We just advised him to put his best men
26+ (and women) on the electric engine, the battery and the breaks. We also convinced him to trust us for *non-core
27+ components*, like the luxury, leader steering wheel, and the bumpers.
28+
29+ He agreed and asked us to write an Agile SIA for the bumper.
30+
31+
32+.. rubric:: Content
33+.. toctree::
34+ :maxdepth: 3
35+
36+ H1-needs
37+ H2-authentic
38+ H3-exact
39+ H4-plastic
40+ H5-HowToChoose
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/goal/5chapters.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/goal/5chapters.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,92 @@
1+.. _AgileSIA-5chapters:
2+
3+The 5 chapter template
4+======================
5+
6+It might help to use the following template to understand the goals of the SIA. And assist in writing a sound one.
7+
8+An SIA usually consists of only five chapters:
9+
10+1. The Problem Analyse
11+----------------------
12+
13+This is a bit like a Requirements Gathering phase. Usually one has to communicate with all stakeholders (or read
14+their inputs) to thoroughly understand and list their needs. All the requirements and desires should be listed in
15+natural language and presented in a logical manner [#NoInterview]_.
16+|BR|
17+There is no need to select or prioritise the demands at this stage.
18+
19+In many cases, the stakeholders have already expressed their input and one uses mainly other (“higher”) documents
20+as input. Remember, however, it’s about what the stakeholders want, not about the documents themselves.
21+|BR|
22+Do not “copy” all those demands. Just mention them, link to the source and summarise them such that the document is
23+readable.
24+
25+More often than not, this is a short chapter, maybe a few pages. The goal is that the PO and all stakeholders
26+say: “Yes, that is exactly what we need” [#check]_.
27+
28+2. Solution A
29+--------------
30+
31+It gives a highlight of the first presented (design) option, without explaining the design. Just enough so that the
32+PO (and other stakeholders) understand it -- there is no need that anybody can implement it already.
33+
34+Then, the cost, risk, duration and other relevant topics (for the stakeholders) are explained.
35+|BR|
36+Again, keep it simple and global. Don’t try to convince the PO; (s)he will (should) trust your analysis.
37+
38+Optionally you can present some sub-options. But don’t go into details. Only sub-options that are relevant for the
39+PO are relevant.
40+
41+3. Solution B
42+--------------
43+
44+Same as above, but (completely) different.
45+|BR|
46+Sometimes a feature can be split into several functional “slices” [#cake]_.
47+
48+Different solutions may come with different slices, but we can also have common ones. Then, introduce them early, and
49+refer to them in the next solution(s). Make it explicit which slices are (partially) common and which not.
50+|BR|
51+Despite that slices can be common, they may have other effects on investments (costs etc), risk or other business
52+values Therefore, I prefer to write out those aspects in each solution. Often assisted with a phrase as *“a bit
53+more/better/... than in ..”*
54+
55+4. Solution C
56+-------------
57+Again, another way for the same result [#cents]_.
58+
59+5. Summary/Overview
60+-------------------
61+
62+This short chapter lists the relevant differences (for the PO/stakeholders) between the solutions, often in a table.
63+
64+It frequently also advice on **how** to select the best option. This is to guide the PO.
65+|BR|
66+By example:
67+
68+* *“Solution A has the shortest T2M, although it is twice as expensive”*.
69+* *“When future extensibility is key, solution B offers the most flexibility”*.
70+* *“Solution C has the main benefit that it has many slices, each can be realised independently in a series of
71+ sprints”*.
72+* *“For the same reason, solution C can be implemented in 10 concurrent teams, keeping them fully loaded*
73+ |BR|
74+ (especially as we have the risk that two teams run out of work).”
75+
76+-----
77+
78+.. rubric:: Footnotes & Links
79+
80+.. [#NoInterview] Plz, don’t make it a conversation report. Don’t use stakeholder order. And always use your own words.
81+.. [#Check] Typically this 1st chapter is reviewed early. This chapter is also a check: When the team misunderstands the
82+ feature, it is better to fail fast.
83+
84+.. [#cake] A cake is (typically) cooked bottom-up and consumed left-to-right. Even though the sum of the layers and the
85+ sum of the slices are equal, the effect differs. I often use this analogy and will write a blog about it
86+ “soon”. For now, plz just remember it does differ and get used to the term:-)
87+
88+.. [#cents] Be “`Pound Wise and Penny Foolish <https://www.dictionary.com/browse/penny-wise-and-pound-foolish>`__”!
89+ |BR|
90+ Nobody is (or should be) interested in a solution that differs only in a few (pre)cents. Not in an (upfront) SIA
91+ document. Unless, of course, when that percentage is a relevant business topic.
92+
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/goal/index.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/goal/index.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,100 @@
1+.. Copyright (C) ALbert Mietus; 2023, 2024
2+
3+**********
4+Objectives
5+**********
6+
7+The goal of an SIA is to *analyse* the impact of a feature (or change) and *apprise the PO* of the options he has to
8+achieve it. It typically results in a document --but the document is *not* the goal (and shouldn't be)!
9+
10+As we will see below, the goal of the SIA is to guide the next development steps: Does it bring (business) value?
11+*(typically: yes)* and what is the best option to realise it? After making those two decisions, the impact analysis
12+--and the SIA document itself-- quickly loses its value.
13+|BR|
14+In that view, the write-a-document part can even be considered a waste! That is not what I recommend, however. A written
15+document is also helpful for discussing and reviewing the SIA.
16+
17+
18+Business value
19+==============
20+
21+Before one can decide whether and how a feature brings value, one needs insight into the necessary investment [#estimate]_
22+This is not only (development) *costs* (sw: mostly man-hours). Usually, *duration* (Time-2-Realize, or
23+Time-2-Marked) and *risks* (e.g. to introduce bugs) are as important. Depending on the ecosystem, other topics should be
24+addressed too.
25+
26+Generally, there are multiple (technical) means to accomplish the same innovation [#ISW]_, [#OneShot]_. The SIA should
27+offer a few (typically: 3 main) solutions, possibly with variants. They all fulfil the demands but differ in
28+quality, luxury, and more relevant for the PO: primary value and investments.
29+
30+Avoid common mistakes
31+=====================
32+
33+* A SIA can get too technical and appear more like a design document, which makes it difficult for people to understand
34+ the impact. And to expenses to write.
35+
36+ As a consequence, deciding not to go forward becomes impractical.
37+ |BR|
38+ At the same time, it’s often “too much work” to offer multiple solutions. Then, there is nothing to choose. --making
39+ the SIA useless.
40+
41+ * A design (phase & document) may be needed --even in a lean, agile approach. It is planned after the SIA.
42+ * Remember, should the PO lower the priority --based on the Agile SIA-- the design effort has become a waste.
43+ * Even when not: When the SIA present three options and so three designs are made, we use only one.
44+
45+* Not thinking about **design options**.
46+ |BR|
47+ Sometimes only one option is presented. Then, the PO can’t choose. But usually, it implies somebody else has made the
48+ choice (implicitly). That is not the role of the team.
49+
50+* No upfront **design thinking**. This is the other extreme of the first mistake (too much design), and as bad.
51+ |BR|
52+ Even though the document shouldn't be “too technical” (*as it should focus on business value, and in the language of the PO*), that
53+ does not imply the team has to think about the design. A bit of “whiteboard design” is needed, to estimate the cost
54+ (etc) of that option.
55+
56+ * There is no need to convert those (3) design sketches into real designs and present them in the SIA.
57+ * Only the effect of that design is presented to the PO (and so globally described in the SIA)
58+
59+ .. note:: Remember those sketches
60+
61+ It is wise to store all those sketches, and possibly some notes, for later. Most likely one of the three will be
62+ needed in an upcoming phase/sprint. Then it (only one) will be converted into a real design and worked out.
63+ |BR|
64+ In a typical lean, agile approach, those provisional designs are stored as a photo in a wiki, along with the
65+ notes.
66+
67+Use the 5 chapters template
68+===========================
69+
70+As we present in :ref:`AgileSIA-5chapters`, an (agile, lean) SIA has five chapters, only 5!
71+|BR|
72+However, it not the exact number that counts -- some prefer to combine the 3 “solutions chapters” is a single chapters,
73+other may varie a bit on number of solutions, or the place of sub-chapters.
74+
75+Still, using that template (as used in :ref:`SIA-demo`) will typically result in a nice SIA.
76+
77+
78+
79+-----
80+
81+.. rubric:: Footnotes & Links
82+
83+.. [#estimate] In that (limited) view, an SIA is like a complicated planning session.
84+ |BR|
85+ Depending on (e.g.) costs, the PO may place the feature high, or low, on the prioritised backlog.
86+
87+.. [#ISW] “*It Should Work*” is a common baseline. All presented options should work, as nobody will ever select one
88+ that doesn't. But it doesn't need to be perfect (see below).
89+
90+.. [#OneShot] Mostly, software should be maintainable. *“Clean Code”* has business value in the long run.
91+ |BR|
92+ However, once and a while we need “One Shot” [#OneShot2]_ code, where this is less needed. Then, the PO may decide to
93+ go for a (cheaper) option that has less quality.
94+
95+.. [#OneShot2] As an example: migration “scripts” to update data from version `x.1(a)` to `x.1(b)` will never be used
96+ again after the update. Or a “Proof of Concept”; typically that code is written fast, to demonstrate the ability, then
97+ replaced by “real code” and thrown away.
98+ |BR|
99+ That kind of software is often written in “another language”. The risk that nobody can maintain it is absent.
100+
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/index.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/index.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,61 @@
1+.. Copyright (C) ALbert Mietus; 2023, 2024
2+
3+.. sidebar:: Workshop & Blog
4+
5+ Welcome to the condensed "blog edition" of my workshop `“Using & Writing an Agile SIA”`.
6+ |BR|
7+ If you're eager for the full experience, don't hesitate to reach out for the complete workshop.
8+
9+.. _AgileSIA:
10+
11+============
12+An Agile SIA
13+============
14+
15+.. post:: 2024/03/21
16+ :tags: SysEng, Modernize
17+ :category: lecture
18+ :language: en
19+
20+ The **SIA** -- an acronym for *System* (or Software) *Impact Analysis* -- is an often used approach to get insight into
21+ the costs, risks, and possibilities of implementing a feature. It should result in a readable document to
22+ decide whether it adds value to implement that feature and offer options on how
23+ |BR|
24+ But is also a document that is repeatedly incorrectly used.
25+
26+ The classical SIA isn't very Lean nor Agile; certainly not when it became an (upfront) design document, as
27+ often ...
28+ |BR|
29+ On second thought, a good SIA is lean and agile. A short, up-front *“think ahead”* document makes it possible
30+ to postpone details to future sprints and assist the Product Owner in picking the right solution without adding
31+ costs.
32+
33+ Let’s study how we can write an Agile SIA. One with business value.
34+
35+
36+.. admonition:: *“a Bumper”* is **not any** Bumper (demo)
37+
38+ .. image:: ./aBumper.jpg
39+ :width: 33%
40+ :align: right
41+
42+ * In this workshop, we design ‘a bumper’. Or actually: we write the SIA for it.
43+ * By using a not-software example, it is easier to *not focus* on the technicalities that shouldn't be in the SIA
44+ anyhow
45+ * For mechanical engineers: I’m probably oversimplifying and missing relevant details. Sorry about that:-)
46+ |BR|
47+ I welcome feedback to improve!
48+ * The “bumper image” is from a `1967 Citroen 2CV
49+ <https://commons.wikimedia.org/wiki/File:1967_Citroen_2CV_-_front_bumper_detail_-_16000647651_(cropped).jpg>`__,
50+ which is cropped and `reused <https://www.flickr.com/photos/7467877@N07/16000647651/>`__ as permitted. Thanks!
51+
52+
53+.. rubric:: Content
54+.. toctree::
55+ :maxdepth: 2
56+
57+ goal/index
58+ goal/5chapters
59+ demo/index
60+ notes/index
61+
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/notes/index.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/notes/index.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,13 @@
1+.. Copyright (C) ALbert Mietus; 2023
2+
3+.. _SIA-notes:
4+
5+*******************
6+Notes
7+*******************
8+
9+.. toctree::
10+ :glob:
11+ :maxdepth: 2
12+
13+ *
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/AgileSIA/notes/trace.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SystemEngineering/AgileSIA/notes/trace.rst Thu Mar 21 15:55:40 2024 +0100
@@ -0,0 +1,9 @@
1+Tracing Bumper needs
2+====================
3+
4+
5+Just as a service, we present a (generated) overview of the requirements for the bumper needs
6+
7+.. needflow::
8+ :tags: Bumper
9+ :filter: 'AgileSIA' in project
diff -r 125e74b66eac -r 2e4e02bb2d20 SystemEngineering/RequirementsTraceability/index.rst
--- a/SystemEngineering/RequirementsTraceability/index.rst Fri May 12 18:59:29 2023 +0200
+++ b/SystemEngineering/RequirementsTraceability/index.rst Thu Mar 21 15:55:40 2024 +0100
@@ -8,9 +8,9 @@
88
99 .. post:: 2020/02/15
1010 :tags: SysEng
11- :category: lecture
12- :location: Vianen
13- :language: en
11+ :category: lecture
12+ :location: Vianen
13+ :language: en
1414
1515 :study-time: 1 hour
1616
diff -r 125e74b66eac -r 2e4e02bb2d20 conf.py
--- a/conf.py Fri May 12 18:59:29 2023 +0200
+++ b/conf.py Thu Mar 21 15:55:40 2024 +0100
@@ -1,12 +1,13 @@
11 # Copyright (C) ALbert Mietus, SoftwareBeterMaken.nl; 2017- 2023 Part of my MESS project
22 # -*- coding: utf-8 -*-
33
4+DEBUG=False
5+
46 # read STD config ...
57 #==========================================
68 import sys; sys.path.append('_std_settings/conf')
79 from std_conf import *
810
9-
1011 # For sphinx.ext.autodoc':
1112 import os.path; sys.path.append('pyMESS/training/dPID')
1213
@@ -22,16 +23,19 @@
2223 # Overrule std_conf, where needed
2324 #================================
2425
25-#html_title = project + " | " + release # DEFAULT: '<project> v<revision> documentation' -- Strip "documentation"
26+html_title = project + " | " + release # DEFAULT: '<project> v<revision> documentation' -- Strip "documentation"
2627
28+html_sidebars = {
29+ '**': [ 'recentposts.html', 'tagcloud.html', 'postcardHeader.html'],
30+}
2731
2832
2933 # ABlog
3034 #------
3135 extensions.append('ablog')
3236 extensions.append('sphinx.ext.intersphinx') # GAM: workaround?
33-import ablog; templates_path.append(ablog.get_html_templates_path())
34-fontawesome_link_cdn = "http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"
37+
38+fontawesome_link_cdn = "https://use.fontawesome.com/releases/v5.0.10/css/all.css"
3539 post_date_format = '%Y/%m/%d'
3640 post_date_format_short = '%Y/%m'
3741
@@ -50,15 +54,12 @@
5054 disqus_pages = True # All pages have a disqus-section
5155 disqus_drafts = False # .. but the draft (blog) pages (.. post:: without date )
5256
53-html_sidebars = {
54- '**': [ 'recentposts.html', 'tagcloud.html', 'postcardHeader.html'],
55-}
5657
5758
5859
5960 html_static_path.append('_slides')
6061
61-if False:
62+if DEBUG:
6263 print("Debug: show all packages:")
6364 import os
6465 os.system("pip list")
diff -r 125e74b66eac -r 2e4e02bb2d20 requirements.txt
--- a/requirements.txt Fri May 12 18:59:29 2023 +0200
+++ b/requirements.txt Thu Mar 21 15:55:40 2024 +0100
@@ -1,6 +1,8 @@
1+sphinx==6.2.1
12 ablog
2-sphinxcontrib-plantuml==0.23
3+#sphinxcontrib-plantuml==0.23
4+sphinxcontrib-plantuml
35 sphinxcontrib-needs==0.7.9
6+sphinxcontrib-needs
47 sphinx_rtd_theme
5-sphinx==4.5.0
6-urllib3==1.26.4
8+#urllib3==1.26.4