<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="https://chocolatedrivendevelopment.com/feed/by_tag/ToC.xml" rel="self" type="application/atom+xml" /><link href="https://chocolatedrivendevelopment.com/" rel="alternate" type="text/html" /><updated>2025-08-04T06:59:12+00:00</updated><id>https://chocolatedrivendevelopment.com/feed/by_tag/ToC.xml</id><title type="html">Chocolate Driven Development</title><subtitle>The blog Chocolate Driven Development contains things to help in making your software creation better for the business, as well as for the developers.</subtitle><entry><title type="html">Ask for the tailor, not a copy of the suit</title><link href="https://chocolatedrivendevelopment.com/2022/07/27/tailor/" rel="alternate" type="text/html" title="Ask for the tailor, not a copy of the suit" /><published>2022-07-27T00:00:00+00:00</published><updated>2022-07-27T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2022/07/27/tailor</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2022/07/27/tailor/"><![CDATA[<p>Imagine your friend showing up in a really nice suit or dress. 
If you got an exact copy, would that work as well on you?</p>

<p>For tailored clothes we take measurements. 
The model is chosen based on the body type of the person. 
When picking a color the complexion is taken into account. 
And last, but not least, the clothes are fitted before completed.</p>

<p>When it comes to processes we often ask for a copy of the suit. 
In his paper <a href="https://www.researchgate.net/publication/250984181_Standing_on_the_shoulders_of_giants_production_concepts_versus_production_applications_The_Hitachi_Tool_Engineering_example">“Standing on the shoulders of giants”</a>
Goldratt states “What we have to bear in mind is that the application makes assumptions
(sometimes hidden assumptions) about the environment. 
We should not expect an application to work in environments
for which its assumptions are not valid. 
We can save a lot of effort and frustration if we bother to explicitly verbalize
these assumptions.” This is from a discussion on the Toyota Production System.
Other companies tried to copy it, but never did as well as Toyota.</p>

<p>Toyota Production System is like the suit.
Making the assumptions explicit is as having measurements added to prefabricated 
items of clothing. 
But you can only get the best results with something carefully tailored.
That is why I think that learning how to evolve an organisation and its processes
is far more important than adapting the correct pattern or method. 
Get your organisation “tailor-skills”, practise measuring and fitting.</p>

<p>An organisation can use retrospectives, system wide measurements and the “thinking processes” that Goldratt
developed as measuring tape and a dressmakers ruler. 
By looking at what others do we can get a starting point,
a base pattern for a cut we like.
But just copying what someone else is doing will never bring excellence.</p>

<p>Just as a piece of clothing will always look best on the person it is tailored for,
only the organisation that invented a method can get the most out of it. 
So get the skills to tailor your own organisational model!</p>

<p>ps. When your body changes a tailor can help with altering the clothes. 
An organisation with skills for adapting processes is prepared for change.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="agile" /><category term="retros" /><category term="ToC" /><summary type="html"><![CDATA[The most important thing to learn is improvement. Copying someone is not enough for true excellence. That is true for clothing and organizations.]]></summary></entry><entry><title type="html">Unnecessary limitations with a history</title><link href="https://chocolatedrivendevelopment.com/2021/04/08/unnecessary-limitations-with-a-history/" rel="alternate" type="text/html" title="Unnecessary limitations with a history" /><published>2021-04-08T00:00:00+00:00</published><updated>2023-09-07T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2021/04/08/unnecessary-limitations-with-a-history</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2021/04/08/unnecessary-limitations-with-a-history/"><![CDATA[<p>Most software teams today underperform
since they can not fully leverage
the technological advantages we have gained over the last decades.</p>

<p>That is a bold statement and it comes from recognising three different levels of limitations
to our productivity.</p>

<h3 id="the-hard-limitation-in-the-technical-tools">The hard limitation in the technical tools</h3>

<p>In 1956 the cost of 30 hours of console time was the same as for a full year of a software engineer.
That has shaped our entire industry since then.
In <a href="/references/large-computer-programs.html">Production of large computer programs</a> Benington 
describes one of the first software projects big enough to need a team.
At this time the limitations in hardware defined how we wrote our software.</p>

<p>Some methods presented are very modern at their core.
Benington describes both predefined tests for small units of code,
parameter tests — today unit tests,
and tests for the entire system,
assembly tests — today system tests.
To automate them and run them for every change of the code was financially impossible. 
Instead every test is clearly documented,
not only to enable retesting but also to improve test design.
The parameter tests were defined for every combination of inputs
and outputs before starting to code.</p>

<blockquote>
  <p>In other words, a programmer must prove that he satisfied his specifications,
not that his program will perform as coded.<br />
(Actually, test specifications for one subprogram can be prepared in parallel with the coding.)</p>

  <p>– <cite>Benington in Production of large computer programs</cite></p>
</blockquote>

<p>You could stretch it so far as calling it Test Driven Development in spirit.
Benington also describes the seed of our modern Integrated Development Environments (IDEs).
The paper states about their development tools that  <em>its present size 40,000 machine instructions
is indicative of the importance attached to its role.</em> 
It really hit me how limiting it was to not have access to processing power
when developing software in 1956.
They knew what they needed, but the hard limitation in the technical tools 
made them take compensatory actions instead,
like having designated teams for testing and operations.</p>

<h3 id="the-limitations-originating-in-our-old-compensatory-actions">The limitations originating in our old compensatory actions</h3>

<p>In his <em>Theory of Constraints</em> Goldratt explains
that we can not gain advantage from a technical advancement
before we get rid of the compensatory actions we took to manage without it.
I illustrate it with a story about a Sunday steak and a pot.
The steak got its end cut off before it was put in the pot,
since the recipe originated from an ancestor with a pot so small
that no steak would fit without trimming it first.
This waste was discovered first
as one of the children asked the grandmother the magic word “why?”
and the origin was uncovered.
The limitations originating in our old compensatory actions can be tricky.
How do we know what things that used to enable us,
actually hinder us today? 
We need to find and discard them before we can benefit from new and better ways of working.</p>

<h3 id="the-limitations-from-outdated-skills">The limitations from outdated skills</h3>
<p>When we rid ourselves of old ways of working, 
no longer needed with new tools,
how do we gain proficiency in the new technology?
Not everything has such an intuitive interface as a slightly larger pot.
I use IDEs that the developers in 1956 could only dream of,
but they are only useful if you learn what they can do.
Modern version control systems create an opportunity for collaboration
that turns silos into networks and enable us to explore
and experiment in a way not possible before, if we know how to.
Test driving software for evolutionary design is a skill needed,
now that developers can be trusted with using a computer. 
So is continuous delivery a capability required as software changes faster for longer,
now that updates are no longer delivered with a person traveling to install it   for you.</p>

<h3 id="what-to-do">What to do</h3>
<p>Developers need to utilise the technical advances we have made since 1956.
For a long time we have stuck with the practises Benington
and others developed to survive in an era
where computing was extremely expensive.
Instead of holding on to processes they adapted out of necessity,
I want us to look at the dream that shines through the lines in that paper.
There I see test driven development,
continuous delivery,
static code checking,
code in high level languages that is easy to read and then optimised by compilers,
powerful IDEs and a lot more that we have today.
This generation has the tools to get all the smart people working together on hard problems, 
while letting the computers do the boring repetitive stuff.
But the <a href="/references/devops-2019.html">DORA’s devops report</a>
shows that far from everyone make use of the technical advancements. 
I believe that all the listed limitations have a hand in that.
The world needs better software,
and I somehow feel that I owe it to those
who walked before me to use the tools I have, but they only dreamed of.</p>

<p>To recap,
look around you
and see if you spot the same limitations as I do:</p>

<ul>
  <li><strong>The hard limitation in the technical tools</strong>, remember why you do it,
make a note in the recipe on the reason for trimming the edges of the steak.</li>
  <li><strong>The limitations originating in our old compensatory actions</strong>,
embrace asking “why?” to weed out things no longer needed.</li>
  <li><strong>The limitations from outdated skills</strong>,
read the DORA DevOps report
and find the support needed to become an elite performing software team.</li>
</ul>

<p>Next time your are frustrated over your working environment consider where we are
and how we got here.
There is a lot of prestige related to proficiency in the software industry.
We can’t keep the old limitations
just to avoid admitting our need to learn new skills.
Instead, take an action to change it for the better.
Remove something compensatory
that is not longer needed,
or learn a new skill to leverage the tools available.
No individual developer is to blame
that it ended up like this.
We need support each other to get out of it.</p>

<p>A version of this text was previously published on
<a href="https://www.linkedin.com/pulse/role-tac-plays-saving-it-industry-how-we-got-here-ester-daniel/">LinkedIn</a>.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ToC" /><category term="devops" /><summary type="html"><![CDATA[Software development today share problems with the first bigger software projects, but unnecessarily so. To take advantage of a new technology we must unlearn what we did to manage without it. Then we can learn the skills needed to fully utilize our tools.]]></summary></entry><entry><title type="html">Solutions hidden under subjectivity</title><link href="https://chocolatedrivendevelopment.com/2021/03/22/solutions-hidden-under-subjectiveness/" rel="alternate" type="text/html" title="Solutions hidden under subjectivity" /><published>2021-03-22T00:00:00+00:00</published><updated>2021-03-22T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2021/03/22/solutions-hidden-under-subjectiveness</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2021/03/22/solutions-hidden-under-subjectiveness/"><![CDATA[<p>Both
<a href="https://www.chocolatedrivendevelopment.com/post/when-the-giraffe-builds-a-current-reality-tree">NVC, TOC</a>,
<a href="https://www.chocolatedrivendevelopment.com/post/surviving-change-building-resilience-of-the-self">mindfulness and acceptance therapy</a>
all stress the importance of using objective statements.
So why is objectivity so important? Or rather,
why is the subjective so dangerous?
<a href="https://english.stackexchange.com/questions/192672/the-words-objective-and-subjective">The answer is in the latin roots of the words.</a></p>

<p>Objective is a thing presented clearly to the mind.
Sub in subjective is the same sub as in submarine and subterfuge.
In the subjective, there is something hidden.
Something is present beneath what we see.
It can be called context or a person’s world view.
The problem is that it is not explicitly stated.</p>

<p>When we try to solve a problem,
or adapt to the present situation in some other way,
it is important to know what is really there.
In NVC there is an unfulfilled need
that might be hard to state explicitly
if we are allowed to be subjective or even judging.
In TOC we need to find a conflict that can be challenged
or a false dichotomy.
That might be hard if causes and effects are hidden in assumptions.
Mindfulness is the practise of seeing things as they are
so that they lose their power over you.
Things hidden beneath the subjective are hard to see.
In acceptance therapy we have mindfulness,
but also acceptance through acting.
We can not act correctly if we do not know,
and accept, what is going on.</p>

<p>So trying to fix a problem that is described in subjective terms
is like debugging a system we have no access to.
The best we can do is to guess, and perhaps restart a server.</p>

<p>If we learn to break down the subjective statement
into objective statements,
by making the implicit explicit,
we can finally see the entire puzzle we are trying to solve.
When figuring out what to do,
we need all the information <em>on</em> the table.
That is why subjective statements are dangerous,
they hide information from us.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ToC" /><category term="empathy" /><summary type="html"><![CDATA[The subjective contains information that is not expressed, just taken for granted. To solve problems we need access to all relevant information.]]></summary></entry><entry><title type="html">When the giraffe builds a current reality tree</title><link href="https://chocolatedrivendevelopment.com/2021/03/17/when-the-giraffe-builds-a-current-reality-tree/" rel="alternate" type="text/html" title="When the giraffe builds a current reality tree" /><published>2021-03-17T00:00:00+00:00</published><updated>2021-03-17T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2021/03/17/when-the-giraffe-builds-a-current-reality-tree</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2021/03/17/when-the-giraffe-builds-a-current-reality-tree/"><![CDATA[<p>Non Violent Communication (NVC) is a framework
for solving conflicts and understanding other people better.
It was developed by the psychologist
<a href="https://en.wikipedia.org/wiki/Marshall_Rosenberg">Marshall Rosenberg</a>.
One of the most known parts of NVC is called giraffe language.
It is about talking with compassion.</p>

<p>Theory of Constraints (TOC), created by Goldratt,
has a thinking process called a Current Reality Tree.
It is build to figure out the root problem in a system.
It is about gathering information and then question assumptions
to find a really good solution.
TOC is used, among others, to optimise production and increase sales.</p>

<p>The two frameworks might seem to have very different purposes
and target groups. NVC is about people and communication.
TOC is about money and logic.
To me that is a false dichotomy.
As I learn more about both TOC and NVC I see a lot of similarities.
<a href="https://www.empathy-driven-development.com">Empathy driven development</a>
shows that empathy is a technical skill.
The parallels between NVC and TOC that I list below is in agreement
with that. Hopefully that can make both communication
and logic feel more accessible.</p>

<h2 id="only-win-win">Only win-win</h2>

<p>One of the fundamentals in NVC is to create such big understanding
between people that fulfilling others
needs become easy and pleasant.
(That is also directed onto oneself,
by knowing my inner motives for doing a task, it becomes easier to do it.)
By looking at the need, rather than at a specific request,
finding something that will fit everyone is easier.
In TOC this is called “no compromises”.
Goldratt claims that no-one should ever compromise.
Compromises are giving up on finding the solution that will benefit both.
And, according to TOC, there is always a solution
that will make both parties happy.
The only thing you need is a thinking process
that help you find the real issue to solve
and what assumptions to question to find the answer.</p>

<h2 id="make-sure-to-know-what-we-want-to-achieve">Make sure to know what we want to achieve</h2>

<p>To increase performance of a system with TOC you need to know what to measure.
That is the origin of the title The Goal for the first TOC book.
If you do not measure outcomes for the entire system
there will be local optima that decrease the system performance.
And you will get what you measure,
so you better measure what you want to get.
In NVC the conflict between parts has to be distilled
down to our needs and what emotions are connected to those needs.
Focusing on how we think that those needs should be met are not helpful.
That is the same thing as creating local measurements in a factory.</p>

<h2 id="you-need-to-work-with-what-is-really-there">You need to work with what is really there</h2>

<p>When it comes to gathering data TOC and NVC are using almost the same wording.
We need to look at how things are now.
And there is no judging.
We only want to know where we are right now,
and it should be objective.
Worth noticing is that the phrase “I am angry.”
is as objective as
“This machine has a maximum output of ten units per hour”.
While “you make me angry” and “this machine is too slow”
are both subjective.
In TOC this is structured in a Current Reality Tree,
with a handful of undesired effects connected with
“if this is true, and this is true, then that is true”
as a directed graph. In NVC the giraffe has taught us the formula
“When W happens, I feel X, since I have a need for Y,
I would rather have Z happening”.</p>

<h2 id="the-solution-is-in-not-only-seeing-your-side-of-the-problem">The solution is in not only seeing your side of the problem</h2>

<p>TOC has bottlenecks. NVC has needs that are not met.
In a current reality tree,
assumptions about other participants are challenged.
Look at the problems.
Then look at your counterparts problems.
Try to find a solution that fixes both your and your counterparts problems.
In NVC we listen with compassion and try to really understand our counterpart.
That enables us to give with joy.
To me that sounds the same.</p>

<p>TOC then create a future reality tree,
while NVC can create a suggestion to the solution.
In both cases this is discussed and evaluated further.</p>

<h2 id="conclusion">Conclusion</h2>

<p>Ifs and then’s can be spoken or drawn as a tree.
Having a clear picture of what is going on is powerful regardless of how.
Emotions carry information, and can be treated as information.
It is hard to know what the real problem is.
We can not guess what other people are thinking,
or the needs of a customer we seldom talk to.
All of this, and more, can we get help with from both NVC and TOC.
And since it is hard work to learn how to communicate
and think better it is good that we can practise it in almost all we do.
But then it helps to see that what we practise with a friend
is also valuable at work.</p>

<p>We need logic, even if not everyone likes directed graphs.
Emotions are valuable data,
and I wish that more people would feel comfortable with using it as such.</p>

<p>If you are comfortable with NVC or TOC try to explore the other system.
If you are new to both I would recommend TOC as a start,
but focus extra on the parts in the books that are about relationships.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ToC" /><category term="empathy" /><summary type="html"><![CDATA[Non violent communication (NVC) and Theory Of Constraints (ToC) might look very different, but they have multiple similarities. Some of the common principles are listed here.]]></summary></entry><entry><title type="html">Test Driven Development in Theory of Constraints terms</title><link href="https://chocolatedrivendevelopment.com/2020/11/24/test-driven-development-in-theory-of-constraints-terms/" rel="alternate" type="text/html" title="Test Driven Development in Theory of Constraints terms" /><published>2020-11-24T00:00:00+00:00</published><updated>2020-11-24T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2020/11/24/test-driven-development-in-theory-of-constraints-terms</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2020/11/24/test-driven-development-in-theory-of-constraints-terms/"><![CDATA[<p>Picture a small system.
Something is produced and then it is verified.
If the producing is more demanding than the verification,
the production step is the constraint.
The production time limits the throughput.
Move the verification step in front of the production step.
Making sure only to spend effort on things that will add value.
Make each iteration, batch, smaller.
Then the waste in the system will go down, and the throughput go up.</p>

<p>This is Test Driven Development (TDD) explained with Theory of Constraints.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ToC" /><category term="quality" /><category term="code" /><summary type="html"><![CDATA[How Theory of Constraints leads us to move the verification step in front of the production step, and keep shrinking the batch size.]]></summary></entry><entry><title type="html">Three ways to look at continuous backlog grooming</title><link href="https://chocolatedrivendevelopment.com/2020/08/14/three-ways-to-look-at-continuous-backlog-grooming/" rel="alternate" type="text/html" title="Three ways to look at continuous backlog grooming" /><published>2020-08-14T00:00:00+00:00</published><updated>2020-08-14T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2020/08/14/three-ways-to-look-at-continuous-backlog-grooming</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2020/08/14/three-ways-to-look-at-continuous-backlog-grooming/"><![CDATA[<p>Not all teams do ensemble programming,
where everyone work on the same task,
all the time.
If you do not always have access to everyone,
you need to have some function where knowledge is shared
for each item in the backlog.
I use “backlog grooming” as a name for this meeting.
This is where you check that the information on the items in the backlog
is enough for everyone in the team to understand them,
and that people agree somewhat on what is intended with the item.
It is important that everyone in the team is present,
most so for new teams.
I argue that we should have these meetings more often and make them shorter,
almost regardless of how we do it today.
Here I present the three ways to look at continuous backlog grooming
that made me come to that conclusion.</p>

<h2 id="building-inventory">Building Inventory</h2>

<p>In the analogy with a factory our groomed backlog items
can be seen as work in process.
Throughput in a system is limited by high work in process.
Backlog items do not take up floor space.
But they can get old and irrelevant,
or stress the team by being a metaphorical mountain of waiting work.
The buffer before a machine is calculated by using the throughput
and the time to replenish.
Therefore I suggest that the meetings for grooming the backlog
should be scheduled in proportion to the team velocity
and the current size of groomed items.
A rule of thumb is</p>

<blockquote>
  <p>time to next meeting = work in groomed backlog / (velocity * 2)</p>
</blockquote>

<p>This is not precise,
so you do not have to measure velocity,
just get it about right.</p>

<h2 id="knowledge-work">Knowledge work</h2>

<p>Going through backlog items is hard cognitive work,
and we are not very good at doing this for long periods of time.
So having shorter,
more frequent meetings,
will help us stay fresh and focused.
Pick a time in the morning,
when the brains are fresh,
or after lunch and some rest where the brains have gotten new energy.
Then keep it short,
preferable under one hour,
and focus.
That way you will make better decisions and stay engaged.</p>

<h2 id="continuous-improvement">Continuous improvement</h2>

<p>We get better at things that we do often.
Things that are painful,
but important are good things to get better at.
Hence,
do painful things more frequent.
For Toyota this was setup for the machines.
For me it is time reporting.
For some software teams it is grooming the backlog.
Do a short retrospective after each meeting and focus on the improvement of the processes.
Then we will get really good at preparing our work,
and well prepared work is more fun to complete.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ToC" /><category term="agile" /><category term="product" /><summary type="html"><![CDATA[We want to build less inventory, limit cognitive waste and practise continuous improvement. This applies also when working on the project backlog.]]></summary></entry><entry><title type="html">Waste In Process and User Research</title><link href="https://chocolatedrivendevelopment.com/2020/07/07/waste-in-process-and-user-research/" rel="alternate" type="text/html" title="Waste In Process and User Research" /><published>2020-07-07T00:00:00+00:00</published><updated>2020-07-07T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2020/07/07/waste-in-process-and-user-research</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2020/07/07/waste-in-process-and-user-research/"><![CDATA[<p>Goldratt describes,
in the book The Goal,
how a failing factory is transformed into a success.
One of the steps,
as the purpose of the story is to describe Theory Of Constraints,
is to find the bottlenecks of the production in the factory.
When this is done,
they try to find ways to grow the capacity of the bottlenecks.</p>

<p>They go to the quality assurance team that tests finished products.
There they find a lot of things that passed through a bottleneck,
but got discarded.
since they had shortages in quality.
By moving parts of the QA before the bottleneck,
they save the limiting station from working on things
that are already broken.</p>

<p>What is the equivalent to this in software?</p>

<p>I do TDD and BDD! you might say.
If we assume that the developers are the bottleneck
 I would say that it is rather like making sure that the products
 are not broken during or after they are at the bottleneck.</p>

<p>My suggestion is that we see user research and design sprints
as our way to make sure that we do not have products
that are already broken taking up valuable time at the bottlenecks.
Every feature,
that is not tested against a real user,
risk being waste in process instead of work in progress
already when it reaches the development team.</p>

<p>The best way to increase the capacity of a bottleneck is
to find what it should not do.
By doing <a href="https://www.gv.com/sprint/">design sprints</a> and user research
you can try a lot of ideas
that do not have to go though the full development cycle.
(It has other advantages too.)
By investing in usability and design a lot of redo and undo can be saved.</p>

<p>Make sure that all tasks that get turned into code
has first been checked that they actually should be implemented.
That is how user research limits waste in process.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ToC" /><category term="quality" /><category term="product" /><summary type="html"><![CDATA[User research can save as much effort in the IT-industry as QA before a bottleneck does in manufacturing.]]></summary></entry><entry><title type="html">Ensemble programming and Lean</title><link href="https://chocolatedrivendevelopment.com/2020/07/05/ensemble-programming-and-lean/" rel="alternate" type="text/html" title="Ensemble programming and Lean" /><published>2020-07-05T00:00:00+00:00</published><updated>2020-07-05T00:00:00+00:00</updated><id>https://chocolatedrivendevelopment.com/2020/07/05/ensemble-programming-and-lean</id><content type="html" xml:base="https://chocolatedrivendevelopment.com/2020/07/05/ensemble-programming-and-lean/"><![CDATA[<p>Never optimize for individual performance.
Success is when touch time is a substantial part of the lead time.
Sounds familiar? These are two of my takeaways from reading <a href="/references/goal.html">The Goal</a>.
by Goldratt.</p>

<p>So what if we made all time touch time
with total disregard for individual productivity?
If we instead optimize for the groups productivity,
making sure that a feature never has to wait for information
needed to be completed.</p>

<p>With a batch size of one and only one workstation, where would we end up?</p>

<p>And people are surprised that using ensemble programming can be a competitive advantage.</p>]]></content><author><name>Ester Daniel Ytterbrink</name></author><category term="ensemble" /><category term="empathy" /><category term="ToC" /><summary type="html"><![CDATA[The Goal teaches us to optimize for 'touch time'. Coding in an ensemble, all time is touch time, and the batch size is one. That optimizes for throughput.]]></summary></entry></feed>