new blog post

This commit is contained in:
wgroeneveld 2018-03-25 21:09:33 +02:00
parent f805256ab0
commit 305d77e3f3
5 changed files with 85 additions and 35 deletions

View File

@ -63,10 +63,10 @@ tag = "tags"
weight = 3
[[menu.main]]
name = "Talks"
name = "Teaching"
pre = "<i class='fa fa-graduation-cap'></i>"
parent = "Menu"
url = "/talks"
url = "/teaching"
weight = 4
[[menu.main]]

View File

@ -0,0 +1,40 @@
---
title: Concentrating on serendipitous creativity
date: '2018-03-25'
bigimg: /img/tea.png
subtitle: Focused or collaborative attention?
tags:
- self improvement
- collaboration
- concentration
published: true
---
When was the last time you were able to focus well on a difficult task in an office landscape? For long periods of time? Did you manage to finish the task in time? Knowledge workers are increasingly pushed together in large open spaces to promote collaboration and serendipity. But those unplanned happy accidents create another completely unplanned rather unhappy accident: the loss of concentration. According to Cal Newport's "[Deep Work](https://www.goodreads.com/book/show/25744928-deep-work)" term, long uninterrupted hours of concentration manage to get difficult things done - not short bursts of collaboration. He calls those bursts "Shallow Work". Being able to concentrate well for a longer period of time is often needed to solve a complex problem. Problems like these are not uncommon in the software industry where I'm in. Deliberate practice and "flow" are related to Deep Work. The ability to concentrate for longer periods on time is becoming an increasingly rare skill.
It doesn't take a genius to realize constant interruption (called collaboration) doesn't do your concentration skills any good. But locking yourself in a room all day wouldn't work either because some shallow collaboration tasks are required to bring a big project to a happy end.
And that brings us to the first **impasse**: the current trend in latest office landscaping fully favors collaboration. It's almost impossible not to see all your colleagues while you're stationed at your "desk" (squeezed between two others): peer pressure is imminent. That's most of the time a good thing: nobody likes seeing someone wasting his time surfing away while you're working your ass off. But that unconsciously creates stress even if you're sure that you're okay with it. offices are designed to increase the like-hood of **happy accidents**: bumping into a colleague who's working on something else. That bump might just create the next best thing as (if you both are open for it) you share ideas and merge two thoughts into one.
![Talk to the duck!](/img/bert_and_ernie.jpg)
In software engineering, that concept is called "**talk to the duck**". (The duck being your colleague) If you don't know how to solve a problem, likely you're simply suffering from some sort of tunnel vision. Once another approach to the problem is suggested and your "aha" moment has passed, the problem made it's way for a solution. A similar approach to finding another strategy to approach the problem is taking a break. Stand up, walk a bit, go to the toilet, and even before reaching it you might have already figured it out yourself.
So what's wrong with creating temporary ducks to talk to? Nothing, except that those ducks might be working on something themselves and need to drop that work in order to help you. So what's wrong with that? Maybe nothing. Maybe a lot, as once you notice how **easy** it becomes to talk to someone else about your problem, you'll definitely think of doing it again the moment you stumble upon another problem. Maybe you'll turn to a colleague just a bit faster. And faster. Wait, did you think this problem through before asking? No you didn't!
This creates an "ask-a-lot"-loop that locks down others that also want to work. Look at it the same way as an overload of meetings, except they're immediate and unplanned. Remember that context switching requires a mental overhead of at least 20 minutes. Uninterrupted concentration? Deep Work? Forget that.
Quack quack.
The other side of the coin: too much separation. A mental lockdown is good but doesn't get any enterprise software out of the door. Some researches or professors might have the luxury of a private office space, but writing papers is mostly a lonely task. Imagine multiple software development teams "collaborating" if everyone is tucked away in their own little space (or worse, cubicle). The urge to stand up and ask something completely diminishes: "I'll try to fix this myself". The result is a mismatch and unstable codebase where everyone knows a little bit about something but the coherent whole is absent.
At least you'll get to squeeze in those wanted Deep Work hours!
A possible solution might be a shared workspace with remote cells where you can concentrate on hard stuff, but you're not too far away from the rest of the chaotic action. Alas that solution doesn't work well if not everyone respects your intentions to do some Deep Work: you're still reachable to quack. Company policies should clear things up but we all know that doesn't work well either. We have a "**silent room**" at work, but it's mostly used as a meeting room thanks to the lack of other available rooms. What's more, the "silent" room isn't silent at all: it's located near the central printer and the air conditioning pipes, causing a constant humming that without a doubt creates a nice headache even without that Deep stuff.
Balancing collaboration and concentration requires:
1. Respect from others
2. Shared insight on when to utilize both.
As long as there's someone in your company who doesn't think of Deep Work as something relevant, you won't be able to create that shared understanding.

View File

@ -7,8 +7,49 @@ aliases = [
# Teaching
#### 2018
## Talks
- [Software design in Java](https://www.uhasselt.be/documents/BROCHURES/2018-2019/Masterflyer-Elektronica-ICT-2018-web.pdf), KULeuven &amp; UHasselt industrial engineering<br/>
<small>
The fundamentals of software design thought in Java. We use JavaFX as a prime example to explain the concept of dividing big problems into subproblems and thinking about who needs to do what (Model View Controller)<br/>
Industrial engineers with and without IT specialization both follow this course.
</small>
#### 2017
- [Test Driven Design for Teachers](https://github.com/wgroeneveld/tdd-course)<br/>
<small>Based on our own experience and books we've read. These files will be used to teach and educate others on how to write clean code, in an object-oriented way. Using tests as a solid base.</small>
#### 2016
- [Clean Code courses](https://github.com/wgroeneveld/cleancode-course)<br/>
<small>
Based on our own experience and books we've read. These files will be used to teach and educate others on how to write clean code, in an object-oriented way. This course is aimed towards college students in IT.
</small>
#### 2014
- [Javascript courses](https://github.com/wgroeneveld/js-course)<br/>
<small>
includes part 1 - JS as a dynamic language and part 2 - DOM Tree manipulation, events etc. A practical course including a lot of exercises to help colleagues get up to speed fast. Includes ES5 features.
</small>
#### 2011
- [Javascript as a functional, dynamic language](https://www.slideshare.net/woutergr/javascript-as-a-functional-dynamic-language)<br/>
<small>
These slides are in dutch! You have been warned. <br/>
Javascript as a functional, dynamic language - not simply as a GUI editing tool.<br/>
Contents: primitives, objects, prototypal inheritance, functions, closures, scoping, contexting, pitfalls. Excluding the labs.
</small>
- Agile software engineering<br/>
<small>
(slides private property of previous employer)<br/>
A three-day workshop covering the theory and practice of software engineering, the agile way. It covers how a sprint works, what a burndown is, what continuous deployment is, how to set up a build server but also what refactoring is, how to use the shortcuts (in Eclipse using Java). This workshop is intended to be used within the company but we've also given this course to [Thomas More campus Geel](http://www.thomasmore.be/over-ons/campussen/geel).
</small>
# Talks
Some talks are given in Dutch, others in English. I've copied over a quick description in the target language.
@ -33,22 +74,6 @@ Some talks are given in Dutch, others in English. I've copied over a quick descr
- [Increase your productivity with Power Tools](https://github.com/wgroeneveld/productivity-course)<br/>
<small>Geïnspireerd door Neal Ford zijn boek “The Productive Programmer” doen wij er alles aan om elke dag efficiënter te werk te gaan. We raken even onze favoriete en veel gebruikte features aan van onze favoriete tools en laten zien hoe we met zo weinig mogelijk effort toch veel werk kunnen verrichten.</small>
- [Test Driven Design for Teachers](https://github.com/wgroeneveld/tdd-course)<br/>
<small>Based on our own experience and books we've read. These files will be used to teach and educate others on how to write clean code, in an object-oriented way. Using tests as a solid base.</small>
#### 2016
- [Clean Code courses](https://github.com/wgroeneveld/cleancode-course)<br/>
<small>
Based on our own experience and books we've read. These files will be used to teach and educate others on how to write clean code, in an object-oriented way. This course is aimed towards college students in IT.
</small>
#### 2014
- [Javascript courses](https://github.com/wgroeneveld/js-course)<br/>
<small>
includes part 1 - JS as a dynamic language and part 2 - DOM Tree manipulation, events etc. A practical course including a lot of exercises to help colleagues get up to speed fast. Includes ES5 features.
</small>
#### 2012
@ -57,22 +82,7 @@ Some talks are given in Dutch, others in English. I've copied over a quick descr
My Devoxx 2012 presentation on unit testing javascript code within your enterprise software build system. It covers the why, what and how's on how to integrate Jasmine tests into your (java-based) build system, for instance using Maven. A demo of a self-made Eclipse-plugin to run jasmine and junit tests side by side is also shown.
</small>
#### 2011
- [Javascript as a functional, dynamic language](https://www.slideshare.net/woutergr/javascript-as-a-functional-dynamic-language)<br/>
<small>
These slides are in dutch! You have been warned. <br/>
Javascript as a functional, dynamic language - not simply as a GUI editing tool.<br/>
Contents: primitives, objects, prototypal inheritance, functions, closures, scoping, contexting, pitfalls. Excluding the labs.
</small>
- Agile software engineering<br/>
<small>
(slides private property of previous employer)<br/>
A three-day workshop covering the theory and practice of software engineering, the agile way. It covers how a sprint works, what a burndown is, what continuous deployment is, how to set up a build server but also what refactoring is, how to use the shortcuts (in Eclipse using Java). This workshop is intended to be used within the company but we've also given this course to [Thomas More campus Geel](http://www.thomasmore.be/over-ons/campussen/geel).
</small>
## Other useful links
# Other useful links
- The Essence of clean code: http://www.inf.fu-berlin.de/inst/ag-se/teaching/K-CCD-2014/Clean-Code-summary.pdf
- The Essence of pragmatic programmer: http://www.inf.fu-berlin.de/inst/ag-se/teaching/K-CCD-2014/Pragmatic-Programmer-summary.pdf

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
static/img/tea.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 KiB