···11<script setup lang="ts"></script>
2233<template>
44- <h1>Hi! I'm <julien-calixte />. A mobile & web developer.</h1>
44+ <h1>
55+ Hi! I'm <julien-calixte version="compact" />. A mobile & web developer.
66+ </h1>
57 <section class="about-me">
68 <p>I am into building things with code.</p>
79 </section>
+40
src/components/presentation/my-books.vue
···11+<template>
22+ <section>
33+ <h2>My books</h2>
44+55+ <p>I used to read so little, but in 2021, I decided to take example of CGP Grey and add as one of my theme to read
66+ more and write more.
77+ </p>
88+99+ <iframe src="https://www.youtube-nocookie.com/embed/NVGuFdX5guE" title="Your Theme by CGP Grey" frameborder="0"
1010+ allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
1111+ allowfullscreen></iframe>
1212+1313+ <p>
1414+ So far, I'm pretty happy with how many books I've read, and they are all good!
1515+ </p>
1616+1717+1818+ <ul>
1919+ <li><a href="https://www.soenkeahrens.de/en/takesmartnotes">How to take smart notes</a></li>
2020+ <li><a href="https://resilientwebdesign.com/">Resilient web design</a></li>
2121+ <li><a href="https://www.babelio.com/livres/Zinsser-On-Writing-Well/795524">On writing well</a></li>
2222+ <li><a href="https://juliagalef.com/">The Scout Mindset: Why Some People See Things Clearly and Others Don’t</a>
2323+ </li>
2424+ <li><a href="https://www.oreilly.com/library/view/accelerate/9781457191435/">Accelerate</a></li>
2525+ <li><a href="https://www.amazon.fr/Immune-Kurzgesagt-gorgeously-illustrated-immune/dp/1529360684">Immune</a></li>
2626+ <li><a
2727+ href="https://www.routledge.com/The-Field-Guide-to-Understanding-Human-Error/Dekker/p/book/9781472439055">The
2828+ field guide of understanding 'human errors'</a></li>
2929+ <li><a href="https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow">Thinking fast and slow</a></li>
3030+ </ul>
3131+ </section>
3232+</template>
3333+3434+<style scoped>
3535+iframe {
3636+ width: 100%;
3737+ height: 500px;
3838+ max-height: 35vh;
3939+}
4040+</style>
+22
src/components/presentation/my-projects.vue
···11+<template>
22+ <section>
33+ <h2>My projects</h2>
44+55+ <ul>
66+ <li>
77+ <a href="https://litenote.space/" target="_blank" rel="noopener noreferrer">Lite note</a>: highly inspired by <a
88+ href="https://notes.andymatuschak.org/About_these_notes" target="_blank" rel="noopener noreferrer">Andy
99+ Matuschak notes' website</a>, I wanted to have a
1010+ clean design where I can explore my notes I take on VS Code.
1111+ </li>
1212+ <li><a href="https://www.npmjs.com/package/retrobus" target="_blank" rel="noopener noreferrer">retrobus</a>: an
1313+ event bus lib I made for fun with a little
1414+ extra retroactive feature.</li>
1515+ <li>
1616+ <a href="https://www.npmjs.com/package/vue-pwa-asset-generator" target="_blank" rel="noopener noreferrer">Vue
1717+ PWA Asset generator</a>: a cli command (now
1818+ a bit out of date) that generates the multiple favicons needed for a Progressive Web App.
1919+ </li>
2020+ </ul>
2121+ </section>
2222+</template>
···11+---
22+title: CRC Cards as training material
33+layout: post
44+date: 2022-12-03
55+draft: true
66+---
77+88+# CRC Cards as training material
99+1010+CRC Card: **C**lass name, **R**esponsibilities, **C**ollaborators.
1111+1212+[CRC Cards](https://en.wikipedia.org/wiki/Class-responsibility-collaboration_card) are a teaching tool on how to design software. They were proposed by Kent Beck and Ward Cunningham, and, hell yeah it's useful.
1313+1414+When I'm talking with tech leaders, my goal is to sharpen our vision about the software we are working on. When developers implemente features, I often see responsability leaks: the feature works, but the component are hard to read, hard to reuse and we pile up technical debt too quickly.
1515+1616+CRC cards are a great tool to focus the discussion and to aknowledge the fact that the developer shared her global vision to each individual local component who must rely only on its local scope. Let's take an example of one discussion.
1717+1818+## The horrible `UserBookmarks` component 😨
1919+2020+Disclaimer: we're about to look at a very ugly code that is definetely doing too many things. The purpose of the discussion I have is to show to the tech lead that we really want to prevent this to happen and it is her mission to standardize it with her team.
2121+2222+Let's say we have a `UserBookmarks` component. Its role is to display a list of bookmarks the user saved.
2323+2424+```tsx
2525+interface Props {
2626+ user: User
2727+}
2828+2929+export const UserBookmarks: FunctionComponent<Props> = ({ user }) => {
3030+ const [bookmarks, setBookmarks] = useState<Bookmark[]>([])
3131+ const [showAddBookmarkModal, setShowAddBookmarkModal] = useState(false)
3232+ const [isLoading, setIsLoading] = useState(false)
3333+3434+ useEffect(() => {
3535+ setIsLoading(true)
3636+3737+ try {
3838+ const userBookmark = await fetch(`/users/${user.id}/bookmarks`, {
3939+ method: 'GET'
4040+ })
4141+ setBookmarks(userBookmarks)
4242+ } catch (error) {
4343+ setBookmarks([])
4444+ } finally {
4545+ setIsLoading(false)
4646+ }
4747+ }, [])
4848+4949+ const addBookmarkToUser = async ({ bookmark }) => {
5050+ setIsLoading(true)
5151+ try {
5252+ const newBookmark = await fetch(`/users/${user.id}/bookmarks`, {
5353+ method: 'POST',
5454+ body: JSON.stringify({ bookmark })
5555+ })
5656+ setBookmarks([...bookmarks, newBookmark])
5757+ } catch (error) {
5858+ console.warn(error);
5959+ } finally {
6060+ setIsLoading(false)
6161+ }
6262+ }
6363+6464+ return <div className="user-bookmarks">
6565+ <Title title={strings['frontoffice.bookmark.user_bookmarks']} />
6666+ {toolList}
6767+6868+ <PrimaryButton
6969+ text={strings['frontoffice.bookmark.all_bookmarks']}
7070+ onClick={() => setShowAddBookmarkModal(true))}
7171+ alt={'strings['frontoffice.bookmark.add_bookmarks']'}
7272+ image={<FontAwesomeIcon icon={['fas', 'plus']} color="white" />}
7373+ />
7474+7575+ <AddBookmarkModal
7676+ visible={showAddBookmarkModal}
7777+ onClose={() => setShowAddBookmarkModal(false)}
7878+ tools={availableCustomTools}
7979+ onBookmarkAdd={addBookmarkToUser}
8080+ />
8181+ </div>
8282+}
8383+8484+```
8585+8686+```tsx
8787+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
8888+import { gsap } from 'gsap';
8989+import differenceBy from 'lodash/differenceBy';
9090+import React, { useCallback, useEffect, useState } from 'react';
9191+9292+import { PrimaryButton } from 'components/CustomButton/CustomButton';
9393+import strings from 'components/Localization/Localisation';
9494+import { Title } from 'components/Title/Title';
9595+import { useLanguageContext } from 'context/LanguageContext';
9696+import {
9797+ addToolToUser,
9898+ fetchToolsForUser,
9999+ removeToolFromUser,
100100+} from 'data/actions/ToolActions';
101101+import { CodeIso } from 'types/Language';
102102+import { Tool } from 'types/Tool';
103103+import { Tools } from 'types/Tools';
104104+import { Ui } from 'types/Ui';
105105+import { User } from 'types/User';
106106+107107+import AddToolModal from './AddToolModal/AddToolModal';
108108+import { TilesSkeleton } from './TilesSkeleton';
109109+import { ToolItem } from './Tool/ToolItem';
110110+111111+export const Toolbox: React.FC = ({
112112+ user,
113113+ ui,
114114+ customTools,
115115+ userTools,
116116+ indispensableTools,
117117+ userIsUpdating,
118118+ getToolData,
119119+ addToolToUser,
120120+ removeToolFromUser,
121121+}) => {
122122+ const { language } = useLanguageContext();
123123+124124+ const [showAddToolModal, setShowAddToolModal] = useState(false);
125125+ const [showDeleteTool, setShowDeleteTool] = useState(false);
126126+127127+ const [tileAnimation, setTileAnimation] = useState<GSAPTween>();
128128+ const [fakeTiles, setFakeTiles] = useState<unknown[]>([]);
129129+130130+ const [toolList, setToolList] = useState<JSX.Element>();
131131+132132+ const userId = user['@id'];
133133+ const uiLoading = ui.loading;
134134+135135+ const availableCustomTools = differenceBy(customTools, userTools, '@id');
136136+137137+ const startLoadAnimation = (): void => {
138138+ setTileAnimation(
139139+ gsap.to(fakeTiles, {
140140+ duration: 0.8,
141141+ opacity: 0.35,
142142+ yoyo: true,
143143+ repeat: -1,
144144+ stagger: 0.025,
145145+ }),
146146+ );
147147+ };
148148+149149+ const stopLoadingAnimation = useCallback((): void => {
150150+ tileAnimation?.kill();
151151+ }, [tileAnimation]);
152152+153153+ const addBookmark = (): void => {
154154+ setShowAddToolModal(true);
155155+ setShowDeleteTool(false);
156156+ };
157157+158158+ useEffect(() => {
159159+ startLoadAnimation();
160160+ if (userId) {
161161+ getToolData(user, language);
162162+ }
163163+ }, [userId, language]);
164164+165165+ useEffect(() => {
166166+ if (!uiLoading) {
167167+ stopLoadingAnimation();
168168+ setToolList(
169169+ <div className="tool-list">
170170+ {indispensableTools.map(tool => (
171171+ <ToolItem key={tool['@id']} data={tool} showDeleteButton={false} />
172172+ ))}
173173+174174+ {userTools.map(tool => (
175175+ <ToolItem
176176+ key={tool['@id']}
177177+ data={tool}
178178+ showDeleteButton={showDeleteTool}
179179+ onDelete={() => removeToolFromUser(tool)}
180180+ />
181181+ ))}
182182+183183+ </div>,
184184+ );
185185+ } else {
186186+ setToolList(<TilesSkeleton setFakeTiles={setFakeTiles} numberOfTiles={16} />);
187187+ }
188188+ }, [uiLoading]);
189189+190190+ return (
191191+ <div className="Toolbox">
192192+ <Title title={strings['frontoffice.toolbox.my_tools']} />
193193+ {toolList}
194194+195195+ <PrimaryButton
196196+ text={strings['frontoffice.toolbox.all_apps']}
197197+ onClick={addBookmark}
198198+ alt={'see all apps button'}
199199+ image={<FontAwesomeIcon icon={['fas', 'arrow-right']} color="white" />}
200200+ positionOfImage="right"
201201+ disabled={true}
202202+ />
203203+204204+ <AddToolModal
205205+ visible={showAddToolModal}
206206+ onClose={() => setShowAddToolModal(false)}
207207+ tools={availableCustomTools}
208208+ onToolAdd={addToolToUser}
209209+ userIsUpdating={userIsUpdating}
210210+ />
211211+ </div>
212212+ );
213213+};
214214+```
+13-5
src/pages/posts/feature-factory.mdx
···11---
22title: An introduction to the feature factory
33layout: post
44+date: 2022-11-19
55+draft: true
46---
5766-# {title}
88+# An introduction to the feature factory
7988-From my experience, project failures mainly come by having mistrust between teams. Lead time due to team availability to solve dependencies increases.
1010+From my experience, project failures mainly come from having mistrust between teams. Therefor lead time due to team availability to solve dependencies increases.
9111010-In this post, I would like to tell you what helped me, how we succeed to engage all the skills needed to develop a product. We will talk about agility, lean.
1212+A kanban is a way to illustrate the needed interactions between teams to complete a feature.
1313+1414+In this post, I would like to tell you what helped me, how we succeed to engage all the skills needed to develop a product. We'll talk about agility, about lean, about problems.
1515+1616+## Creating a visual feature flow
1717+1818+### Define the steps
11191220## It always comes to **showing**
1321···17251826## Showing what next the team has to do
19272020-Talking is hard, comprehension between two people is hard. How many times a developper came back to the product owner to ask a few questions left in his ticket? How many times a designer was asked to update a design to see how the app will react in case of an edge case?
2828+Talking is hard, comprehension between two people is hard. How many times a developper came back to the product owner to ask a few questions left in his ticket? How many times a designer was asked to update a design to see how the app will react for a specific edge case?
21292230Dear developers, how clear is it for you the way you build an app?
2331···36443745First, can you name your different step before having your app in production?
38463939-<ProductionFlow client:visible />
4747+<production-flow client:visible />
+120
src/pages/posts/introduction-to-smart-notes.mdx
···11+---
22+title: Introduction to smart notes, how to take notes efficiently
33+illustration: https://res.cloudinary.com/practicaldev/image/fetch/s--F-oPy0uT--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s8t5g0o0h4x1ss6anr02.png
44+layout: post
55+date: 2021-12-16
66+---
77+88+99+# Introduction to smart notes, how to take notes efficiently
1010+1111+If you are like me, then you struggled to take meaningful notes and usually give up on writing anything down. Still, deep down, you're looking for a way to write efficiently.
1212+1313+## Why do you still have to write notes?
1414+1515+How frustrating is it to read a book or get a new idea during a meeting, and a few days later realize you already forgot about it? You are not alone.
1616+1717+### Our brains are not reliable
1818+1919+#### The limits of our short-term memory
2020+2121+Learning new things could be summarized as the process of linking items that are in our short-term memory to our long-term memory, by far more efficient and reliable. Short-term memory is really convenient to retrieve information quickly. Unfortunately, our short-term memory is extremely limited: it's quickly crowded—[4 (± 1) blocks of information at a time](https://www.cambridge.org/core/journals/behavioral-and-brain-sciences/article/magical-number-4-in-shortterm-memory-a-reconsideration-of-mental-storage-capacity/44023F1147D4A1D44BDC0AD226838496)—and very short-lived. It isn’t suitable for complex reflection.
2222+2323+
2424+2525+To make it even worse, the following curve shows how information is quickly lost over time when there is no attempt to retain it. That’s why we tend to retrieve so little information from a book read months ago. It's called the forgetting curve.
2626+2727+
2828+2929+In a nutshell, our brain is limited and quickly forgets the information it's been exposed to.
3030+3131+#### Our cognitive biases
3232+3333+Besides memory, brains aren't reliable because of many cognitive biases: confirmation bias, attentional bias, mere-exposure effect, normalcy bias, you name it. Even if it's the most complex system in our body, our brain must face many obstacles in order to not fool itself. For instance, more often than necessary, we look for arguments that unconsciously reinforce our original thoughts, we tend to argue with a pre-existing belief. This is what Julia Galef calls the "soldier mindset" in "[The Scout Mindset](https://juliagalef.com)". She opposes it to the scout mindset: a mindset in which the search for the truth is what primarily guides its reasoning.
3434+3535+As the scout's goal is to draw the most accurate map in the battlefield, taking notes becomes the map for your thoughts: they tell you what you know, what you don't know and guide you through your reflection.
3636+3737+## The concept of *smart notes*
3838+3939+### Where do smart notes come from?
4040+4141+Smart notes is a term used in the book "[How To Take Smart Notes](https://takesmartnotes.com)" written by Sönke Ahrens that tells the story of Niklas Luhmann, a sociologist who has published hundreds of articles thanks to his note-taking system: [the Zettelkasten method](https://zettelkasten.de/posts/overview).
4242+4343+### Creating the system
4444+4545+Taking notes tends to mean "jotting down ideas on paper during meetings". But we rarely use them afterwards. Notes used once or twice are no good, we can’t take advantage of them. Note-taking without structure is pointless. That’s why we have to create a system where each note helps the system snowball effect.
4646+4747+We want a network of permanent notes. The goal is to write permanent notes and to densely connect them together. But to create notes you're proud of, you must iterate a few times with other kinds of notes. Overall, we can look at 3 kinds of notes:
4848+4949+- fleeting notes,
5050+- literature notes,
5151+- permanent notes.
5252+5353+#### Fleeting notes
5454+5555+*Fleeting notes* are your day-to-day notes. When an idea pops into your head or you find an idea interesting in a meeting, you want to write it to free your mental load. They are primarily the pool of new concepts.
5656+5757+Then comes the refinement of the notes. For this, you need to instigate a routine: clearing and deleting non-relevant paragraphs, extracting the ideas into concise notes. This routine is key to accumulate knowledge.
5858+5959+I suggest getting a note per day and starting the routine at a small scale: create a fleeting note each day but refine them only once a week.
6060+6161+#### Literature notes
6262+6363+*Literature notes* are the notes you take on the fly when you are reading a book, a blog post or listening to a podcast. With a pen and a paper next to you, you write with your own words your understanding of the read. The key feature here is that we want a much more active lecture and information consumption than just passive reading/listening. It may seem hard at first but once you incorporate this new habit, you feel almost disappointed reading without extracting what seems compelling.
6464+6565+#### Permanent notes
6666+6767+*Permanent notes* are atomic and connected. A permanent note is about one and only one concept, as simple as possible and connected with others. They come from the selected thoughts chosen from your fleeting and literature notes. They are the backbone of the system so you want to be extremely selective about what will become a good durable note.
6868+6969+When creating a permanent note, scan your previous notes and find connections with the new one. It’s the rule: the only way a permanent note can integrate the system is from connections.
7070+7171+### Improve yourself step by step
7272+7373+We want the system to work like our brain: simple ideas linked together as a network of thoughts. We want to start small, one note at a time.
7474+7575+Your notes don't need to be perfect straight away, in fact, they will never be. Because writing is hard.
7676+7777+Actually, writing is a multiple-tasking process:
7878+7979+- writing ideas on the go,
8080+- extracting relevant information,
8181+- criticizing,
8282+- making the writing shorter and the concept clearer,
8383+- rewriting and rewriting again…
8484+8585+We want to separate these different tasks as much as possible because they can inhibit each other. When you write, don’t be afraid of being weird or dumb, there will be a time for self-critic. For now just write as if you were teaching it to your younger self.
8686+8787+It might feel uncomfortable.
8888+8989+
9090+9191+"Is it me or is a 10 year old child writing this?". Still the more you iterate, the better your notes become, I promise. 😊
9292+9393+### Smart notes are your first feedback loop
9494+9595+This is where it gets exciting. Since you know you will be able to review your notes by yourself, you become better and better at writing and therefore your way of thinking. Notes are the medium between your past, present and future self. Plus, if you become comfortable with your own critique, you'll find yourself accepting even more the challenges of others as you simply want to improve your system.
9696+9797+### How smart notes benefit me
9898+9999+I’ve been using this system for the past year and so far it works!
100100+101101+Here is a non-exhaustive list of things I like about it:
102102+103103+- 📝 I can write a blog post—like this one–just by picking ideas from my own notes: no more blank page syndrome,
104104+- 🧠 trusting one and only one system allows the brain to truly free itself from mental load: you know you can go back to your thoughts and ideas later,
105105+- 🕸 making connections between work, hobbies and entertainment create new ideas in a way I didn't expect, I feel more creative!
106106+- 📈 as I said earlier, I’m much more incline to face challenges from other people and ask colleagues how I can improve my work,
107107+- 🪴 watching your network grow is rewarding! It’s like taking care of your own little garden.
108108+109109+As great as it is, I want to warn you about a few pitfalls into which you could be tempted to fall:
110110+111111+- [collecting](https://zettelkasten.de/posts/collectors-fallacy) only for the sake of collecting isn’t helpful. [We don’t need it.](https://observer.com/2017/05/the-collectors-fallacy-why-we-gather-things-we-dont-need)
112112+- creating a system per project: we lose the essence of the system; we want to be able to connect notes that don't seem connected at first sight.
113113+- thinking too much of the tree structure for your notes in your taking note app: it is not that important, we just want to look for notes easily,
114114+- copying and pasting what we find on the internet: link the page you want to reference but if the notes are not your own, the system becomes irrelevant (and I quote [CGP Grey](https://youtu.be/wf2VxeIm1no?t=493): *"If your mind is forever filled with the voice of others, how do you know what you think about anything?"*).
115115+116116+With all this in mind, I made [a personal slip-box](https://litenote.space/lite-note/example) I'll be completing over time to let you explore concrete examples!
117117+118118+## Introducing smart notes for others
119119+120120+I’m currently wondering if there are other potential applications to the Zettelkasten method other than using it ourselves. At BAM, I work as a team leader and I constantly ask myself how we can improve our way of communication through time in projects. Just like [visual management](https://dev.to/jcalixte/how-does-visual-management-improve-team-efficiency-4kgd), good documentation is essential for a project to succeed. Having clear standards connected to more detailed concepts is the ultimate documentation! But I haven’t fully experienced it yet.
+77
src/pages/posts/make-your-environment-loopy.md
···11+---
22+title: Developers, make your environment loopy 🔁
33+illustration: https://res.cloudinary.com/practicaldev/image/fetch/s--ydCtwTyU--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ui6knf741v61hk66r9p.png
44+layout: post
55+date: 2022-03-13
66+---
77+88+# Developers, make your environment loopy 🔁
99+1010+When we work, we want feedback: do we do the expected job? Does it fail? Where does it fail? Therefore, we want to receive feedback loops from our environment that gives us useful information about how well we're doing. This is what *loopy* means.
1111+1212+Hi! My name is Julien and I'm a tech leader at [BAM](https://www.bam.tech/bam-agence-experte-design-et-d%C3%A9veloppement-mobile) where we design and develop mobile apps. A part of my job is to provide a healthy environment for my fellow developers to work at their best, improve quicker and then become tech leaders themselves.
1313+1414+In a dynamic system we want to adapt from visible inputs to concrete actions. And to do that, we need standards.
1515+1616+## It starts with standards
1717+1818+Standards are established rules in the team. They are our best guess about what a good job is. Writing and comparing with real life allow us to distinguish what is normal from what is not.
1919+2020+Some tips when writing down a standard, make sure you have:
2121+2222+1. why it's important to write it down,
2323+2. what are its key points,
2424+3. what are the common mistakes we can avoid in the first place,
2525+4. and what are the concrete examples to better understand it.
2626+2727+With these key points in place, we'll be able to compare with the real world and adapt. In a nutshell, to be loopy.
2828+2929+## Loopy code
3030+3131+Once we agree as a team to use a set of standards, we want our tools to know them. Take linters in your code for instance. Linters are scripts that find and sometimes can even fix problems automatically. They are great to provide warnings when a developer diverges from the expected code. It saves time on training, on reviewing and on debugging.
3232+3333+
3434+3535+The more we use a tool, the more reliant we want it to be. If in the previous paragraph you thought “Well, in my project linters are a pain in the butt, I hate how they force me to do additional work!”; this is a clear hint you are working for your tools and not the other way around. We don't want this. We want computers to execute repetitive tasks and humans to solve problems. So gather your team and update your linter rules so nobody complains. 🤔
3636+3737+## Loopy tests
3838+3939+Talking about tests. If you want to rush, don't write tests. If you want to go fast and go far, write tests.
4040+4141+
4242+4343+Mental loads are real and a heavy burden. When we start automating tests of some of our code, we can discharge that cognitive load. This will lead to a freer mind and easier and more effective days.
4444+4545+## Loopy production flow
4646+4747+I wrote [an article](https://dev.to/jcalixte/how-does-visual-management-improve-team-efficiency-4kgd) about how useful it is to see the steps in the production flow. By showing the production flow, we know where we are and how good we are. We can then adapt our work/prioritization.
4848+4949+
5050+5151+We then can spot and identify problems and solve them - they are called “red bins” in lean production. Displaying the problems in front of the whole team helps to highlight how they are slowing the whole process down. That way they can't be ignored and actions must be taken.
5252+5353+
5454+5555+
5656+5757+## Loopy user satisfaction
5858+5959+The better we understand user needs, the clever we can work. There is no shame about being wrong in the first place. The most important thing is to acknowledge and adapt.
6060+6161+
6262+6363+## Make your tools work for you not against you
6464+6565+We tend to believe that a part of our job is to use specific tools and deal with its disadvantages because "we're used to it and it's always been that way". We tell ourselves: this is my job and if I fail, it'll be on me. Of course it's a bit more complex than that. In our day to day work, we all make mistakes: these ‘human errors’ are not a cause but a symptom of a deeper problem in your system. Understanding how and what causes a ‘human error’ to arise is the beginning of understanding a little bit about a complex system. And in an overly complex system, being able to adapt with feedback loops is better than being able to predict.
6666+6767+## Shorten the loops
6868+6969+Your time is valuable, your focus is valuable, this is all about you and enhancing your work. The quicker you get feedback, the faster you can adapt. And the more feedback you get the more you work smarter.
7070+7171+<center>
7272+*We shape our tools then the tools shape us.*
7373+</center>
7474+7575+___
7676+7777+This post was inspired by the [Loopy tool](https://ncase.me/loopy) from [Nicky Case](https://ncase.me), I can only suggest you take a look!