d8d24937f472dc7dbebc3e403839950f7d1dcac0
WalkingSkeleton.md
... | ... | @@ -114,43 +114,29 @@ smaller. It is not meant to be a viable product. For a simple database-backed |
114 | 114 | web application, a Walking Skeleton needs to demonstrate that it can get a value |
115 | 115 | from an HTML form to the database, and render it again as HTML. |
116 | 116 | |
117 | +## Relationshift to "Shift Left" |
|
117 | 118 | |
118 | -## Tensions |
|
119 | +In DevOps circles the term "Shift Left" has gained popularity. The idea is that |
|
120 | +if you represent a software delivery process as a a diagram, with process steps |
|
121 | +flowing from left to right, that things like testing, deployment, validation and |
|
122 | +security assessment are pictured on the right hand side towards the end of the |
|
123 | +process. |
|
119 | 124 | |
120 | -## Pattern Description |
|
125 | +Shift Left advocates moving those steps "left", so earlier in the process. |
|
126 | +Delivering a walking skeleton first is a good way to achieve such a shift left. |
|
121 | 127 | |
122 | -## Examples |
|
128 | +To really lean into it the walking skeleton should be used as a way to involve |
|
129 | +end users and other stakeholders early and continuously, so that product and |
|
130 | +design choices are continuously validated. |
|
123 | 131 | |
124 | 132 | ## Further Reading |
125 | 133 | |
134 | +- [Walking Skeleton by Alistair Cockburn](https://www.linkedin.com/pulse/walking-skeleton-adam-hall/) |
|
135 | +- [Walking Skeleton on wiki.c2.com](https://wiki.c2.com/?WalkingSkeleton) |
|
136 | +- [Integration, integration, integration. An introduction to walking skeletons in the enterprise (blog post, 2019)](https://www.defmyfunc.com/2019_10_18_walking_skeleton/) |
|
137 | + |
|
126 | 138 | ## History |
127 | 139 | |
128 | -- end to end |
|
129 | -- all connections in place with the world outside of the application code itself |
|
130 | -- deployment, networking, storage, third party APIs, etc |
|
131 | -- discover the boundaries, surface area |
|
132 | -- boundaries define the negative space the app exists in |
|
133 | -- boundaries exert forces, opposing forces cause tensions |
|
134 | -- includes process, secret management, payment accounts, access keys |
|
135 | -- includes getting the right people the right credentials |
|
136 | -- may include observability (since that is a connection ie a boundary) |
|
137 | -- does not need to implement features or functionality beyond an artificial demonstration that the connections are working |
|
138 | -- focus is not on function but on non functioning requirements |
|
139 | -- goal is to establish a baseline for iterating |
|
140 | -- figure out not just the form itself (app), but the ensemble of form+context |
|
141 | -- find out the parts that aren't under your control, or which may take time because they need to be done through third parties |
|
142 | - |
|
143 | -As opposed to a spike |
|
144 | -- all about functionality/features |
|
145 | -- Discovery of internal rather than external forces |
|
146 | -- ignore "non functional" requirements |
|
147 | - |
|
148 | - |
|
149 | - |
|
150 | -https://www.defmyfunc.com/2019_10_18_walking_skeleton/ |
|
151 | - |
|
152 | -- I also refer to a walking skeleton as v0, with v1 (PoC) adding first functionality but not polished, suitable for internal testing or beta users, and v2 being first "user grade" version |
|
153 | - - v0 -> it doesn't do anything, but we're ready to add functionality, without having to go back and figure out unrelated things like deployment, storage, etc. |
|
154 | - - v1 -> PoC, it ticks all the boxes in terms of functionality, but it may not be pretty |
|
155 | - - v2 -> production ready |
|
156 | -- walking skeleton is related to "shift left", get more of what is typically late stage practices (deployment, QA, etc) earlier in the process |
|
140 | +### 2024-07-20 |
|
141 | + |
|
142 | +- First public version (Arne Brasseur) |