<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sören Blom</title>
    <description>The latest articles on DEV Community by Sören Blom (@soblom).</description>
    <link>https://dev.to/soblom</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1377%2F4924109f48e2a946d03365f778300182.png</url>
      <title>DEV Community: Sören Blom</title>
      <link>https://dev.to/soblom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/soblom"/>
    <language>en</language>
    <item>
      <title>Stress in Tech Interviews // a recent NCSU research paper</title>
      <dc:creator>Sören Blom</dc:creator>
      <pubDate>Mon, 20 Jul 2020 16:01:19 +0000</pubDate>
      <link>https://dev.to/soblom/stress-in-tech-interviews-a-recent-ncsu-research-paper-4m6l</link>
      <guid>https://dev.to/soblom/stress-in-tech-interviews-a-recent-ncsu-research-paper-4m6l</guid>
      <description>&lt;p&gt;The North Carolina State University (NCSU) &lt;a href="http://chrisparnin.me/pdf/stress_FSE_20.pdf"&gt;published their research&lt;/a&gt; on stress in tech interviews. You should not be surprised: it's not looking so good (&lt;a href="https://news.ncsu.edu/2020/07/tech-job-interviews-anxiety/"&gt;Press Release&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Their main finding is that the typical on-site, realtime whiteboard coding challenges cause so much stress that they really test more how well you can perform in front of others under pressure and less about how good your command of the actual topic is.&lt;/p&gt;

&lt;p&gt;Luckily, the authors give some suggestions ("guidances") on how to improve the tech interview process in the &lt;em&gt;Discussion&lt;/em&gt; section [My personal elaboration under the quoted headlines]:&lt;/p&gt;

&lt;h3&gt;
  
  
  "Guidance I - Use retrospective think-aloud for accessing explanation"
&lt;/h3&gt;

&lt;p&gt;Let people work on a solution and a way to present it by themselves, unobserved. Then le them explain their thinking to the interviewer as a second step.&lt;/p&gt;

&lt;p&gt;Of course, "live" brainstormings / discussions are part of what a developer would do in a team, but the situation is not comparable. If you are an accepted team member and stand in front of a whiteboard you already psychologically &lt;em&gt;belong&lt;/em&gt; and you are aware of the problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Guidance II - Evaluate the kinds of stress necessary for position"
&lt;/h3&gt;

&lt;p&gt;Ideally, the interview is evaluating a candidate on things relevant for a job. Some type of stress might be part of the job, other kinds not. "Performing" (as on a stage) to solve code problems is usually not a job requirement. Even an important technical presentation is usually prepared and rehearsed.&lt;/p&gt;

&lt;p&gt;I could imagine that if you hire for a "consultant" developer that often has to function in unknown situations in front of strangers, maybe this style of interviews is more appropriate.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Guidance III - Provide accessible alternatives"
&lt;/h3&gt;

&lt;p&gt;Several suggestions by the authors to overall reduce stress in the process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A "warmup interview" - an opportunity to settle-in and learn about the format of the real interview, allowing to ask questions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Allow for a "free reset". Basically, a second chance (different problem) in case the candidate just freezes on the &lt;br&gt;
first one - I would imagine just knowing that there is such an option will calm down candidates, even if they never make use  of it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give "Partial program sketches" - Instead of starting from a literally blank whiteboard / paper, give some part of the solution and ask them to fill in the rest. Should work for architecture sketches as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide "familiar affordances". Allow the candidates to use paper or a laptop if that works better for them.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  "Guidance IV - Consider impacts on talent and diversity"
&lt;/h3&gt;

&lt;p&gt;Missing out on candidates that are well able to solve the problem but not handle the stress, is the obvious problem causing the wrong kind of stress in interviews.&lt;/p&gt;

&lt;p&gt;Furthermore, the authors point to research that shows women are more affected by performance and test anxiety and thus might be at a disadvantage regardless of their actual qualification for the position.&lt;/p&gt;

&lt;p&gt;Other groups might be disadvantaged as they might be lacking access / resources to prepare for the stress of a typical whiteboard interview, whereas some candidates can prepare extensively.&lt;/p&gt;




&lt;p&gt;What I really like about this paper is how it combines proper research with applicable suggestions. I still want to interview people on technical topics, but I am now way more aware on how my design of the process might lead to distorted results and unnecessary suffering on the candidate's side. It is also good to see that there seems to be a growing body of research on (tech) interviewing.&lt;/p&gt;

&lt;p&gt;I definitely recommend to &lt;a href="http://chrisparnin.me/pdf/stress_FSE_20.pdf"&gt;read the original paper&lt;/a&gt;, as they authors argue way more nuanced and provide interesting references for all their points:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Behroozi, Mahnaz, Shivani Shirolkar, Titus Barik, and Chris Parnin. 2020. “Does Stress Impact Technical Interview Performance?” In ACM ESEC/FSE ’20.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>interviewing</category>
      <category>stress</category>
      <category>research</category>
    </item>
    <item>
      <title>Scrum and "old knowledge"</title>
      <dc:creator>Sören Blom</dc:creator>
      <pubDate>Wed, 15 Jul 2020 21:59:57 +0000</pubDate>
      <link>https://dev.to/soblom/scrum-and-old-knowledge-5bbj</link>
      <guid>https://dev.to/soblom/scrum-and-old-knowledge-5bbj</guid>
      <description>&lt;p&gt;Came across this article, which is one of a serious and it triggered more reflection than initially expected:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/serious-scrum/5-controversial-topics-that-were-removed-from-scrum-68b5e83d38f2" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C39dV89p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/1%2Al07UnQN1sxILJlWj2ac2PA%402x.jpeg" alt="Willem-Jan Ageling"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/serious-scrum/5-controversial-topics-that-were-removed-from-scrum-68b5e83d38f2" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;5 controversial topics that were removed from Scrum | by Willem-Jan Ageling | Serious Scrum | Medium&lt;/h2&gt;
      &lt;h3&gt;Willem-Jan Ageling ・ &lt;time&gt;Oct 29, 2019&lt;/time&gt; ・ 4 min read
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KBvj_QRD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Together with the accompanying &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/serious-scrum/6-pivotal-things-that-werent-scrum-canon-but-got-introduced-later-135d7417d654" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C39dV89p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/1%2Al07UnQN1sxILJlWj2ac2PA%402x.jpeg" alt="Willem-Jan Ageling"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/serious-scrum/6-pivotal-things-that-werent-scrum-canon-but-got-introduced-later-135d7417d654" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;6 pivotal things that weren’t Scrum canon but got introduced later | by Willem-Jan Ageling | Serious Scrum | Medium&lt;/h2&gt;
      &lt;h3&gt;Willem-Jan Ageling ・ &lt;time&gt;Oct 1, 2019&lt;/time&gt; ・ 5 min read
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KBvj_QRD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-90d5232a5da2369849f285fa499c8005e750a788fdbf34f5844d5f2201aae736.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;The first time I used Scrum in a project was early 2008; twelve years ago. I read the usual books, got certified (Scrum Master and Product Owner) and have seen Scrum adopted well and not so well in may teams. You could say I thought I had this topic "in the pocket". &lt;/p&gt;

&lt;p&gt;In recent years, the &lt;a href="https://martinfowler.com/articles/agile-aus-2018.html"&gt;"Agile Industrial Complex"&lt;/a&gt; has dampened my earlier enthusiasm. The never-ending methods with certification schemes popping up, having scrum master and agile "coaches" in companies, whose only exposure with product and software development was a two day training course, etc. Apparently, though, Scrum hasn't fully fallen to the dark side and it keeps evolving, as shown in the linked articles via the changes of the Scrum Guides (also see &lt;a href="https://medium.com/serious-scrum/the-evolution-of-the-scrum-guide-10-to-19-f3ac4d82cfcb"&gt;this&lt;/a&gt; article).&lt;/p&gt;

&lt;p&gt;I was aware of some changes in the guide. For example, not to use the term &lt;em&gt;grooming&lt;/em&gt; anymore or switching out committing to a sprint backlog vs considering it a &lt;em&gt;forecast&lt;/em&gt;. One thing that was new to me was the change of the Daily Scrum standard questions. They are now using the &lt;em&gt;sprint goal&lt;/em&gt; as the reference point of reporting: &lt;em&gt;What did I do yesterday that helped the Development Team meet the Sprint Goal&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;While I am really pleased to learn about many these changes, I also was a little shocked to realise that they had all happened without my taking notice. Contrast this with, for example, changes in Java. A language I haven't written code in in forever and have no real interest in, intellectually. I still managed to keep a basic awareness about changes such as the Streams API or the language switching to a half-year release cycle.&lt;/p&gt;

&lt;p&gt;I don't have a good explanation for this, other than it feels like I had Scrum "taken care of", knowledge was archived and good enough for reference in the daily work. Maybe I am also falling prey to the well-known problem of thinking agile methods are "easy" as they only have "a few rules" and then being very careless in sticking to the important basics. It seems, though, that I am not the only one being outdated on Scrum knowledge. Teams that I work and have worked with are happily &lt;em&gt;grooming&lt;/em&gt; their stories, don't define a sprint goal and treat their sprint backlogs as binding contracts and not as forecasts.&lt;/p&gt;

&lt;p&gt;In any case will I now keep an eye out for other topics that give me this "safely and snuggly archived" feeling. Time to shake up some presumed "certainties".&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to be less clever (and more creative instead)</title>
      <dc:creator>Sören Blom</dc:creator>
      <pubDate>Fri, 03 Jan 2020 00:39:38 +0000</pubDate>
      <link>https://dev.to/soblom/how-to-be-less-clever-and-more-creative-instead-17k</link>
      <guid>https://dev.to/soblom/how-to-be-less-clever-and-more-creative-instead-17k</guid>
      <description>&lt;h2&gt;
  
  
  The funny seminar
&lt;/h2&gt;

&lt;p&gt;Have you ever been in a classroom-like setting, on a Friday morning, with 10 random people taking turns reading "funny" (as in &lt;em&gt;not&lt;/em&gt; funny) names of sport clubs to each other? Such as &lt;em&gt;Dunkin' Donut&lt;/em&gt; for a basketball group (get it?)&lt;/p&gt;

&lt;p&gt;Neither have I, until the middle of November. I was participating in a "comedy writing" class, at Berlin's &lt;a href="https://en.wikipedia.org/wiki/Folk_high_school"&gt;Volkshochschule&lt;/a&gt; Mitte. Three days, Friday to Sunday. The teacher a full-time comedy writer for 20 years, not famous - but well in business.&lt;/p&gt;

&lt;p&gt;I will spare you my creations, but what I have to share with you is my experience of being led to three days of simple enough creative exercises. And it was all about &lt;em&gt;quantity&lt;/em&gt;. And about limiting time. And about &lt;em&gt;not trying to be clever&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Give me 9 funny names for first-name last-name combinations”&lt;/li&gt;
&lt;li&gt;“Write down 30 adjectives”&lt;/li&gt;
&lt;li&gt;“Think of 5 situations and inappropriate reactions in those situations”&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course much of what we produced was not particularly funny, some seemed forced. Yet, every time, there were a few results that had us seriously laughing. From varying people, not just the &lt;em&gt;funny&lt;/em&gt; ones.&lt;/p&gt;

&lt;p&gt;What I found fascinating (for the purposes of this text) beyond learning insights into what is funny and how to manufacture that was to experience a creative process more as a physical challenge than some lofty thought process. Much as a sport coach might yell: “Give me ten rounds around the court”, here I was filling the paper with 10 ideas for a punch line.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;The brain is an association muscle. Start writing down a few ideas and just looking at them will spark some variations, add-ons, forks.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And I hear you saying: "Sure, that is what they tell us in any workshop where somebody introduced brainstorming". Which, of course, is true. But I can say for myself that I have still been too restrained in getting into this “doing laps” mode of creativity. Overthinking_ is a thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Playing Tic-Tac-Toe
&lt;/h2&gt;

&lt;p&gt;The second occasion, with a similar realization, was preparing a coding kata at work called &lt;a href="https://cumulative-hypotheses.org/2011/08/30/tdd-as-if-you-meant-it/"&gt;"Test-driven development as if you meant it"&lt;/a&gt;. Keith Braithwaite, the creator of this Kata, has toured many software conferences and there are two blog posts &lt;a href="https://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/"&gt;[1]&lt;/a&gt; &lt;a href="https://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/"&gt;[2]&lt;/a&gt; by Gojko Adzic, where he reflects on the the intent behind the Kata and how he ran one himself.&lt;/p&gt;

&lt;p&gt;The Kata has very specific, simple requirements for implementing a simple game (usually Tic Tac Toe). You are supposed to just work on the requirements and nothing else in the order provided and following strict TDD rules (write functional code in test first, only extract into test file first, ...). An example for a first requirement for Tic Tac Toe would be &lt;em&gt;a game is over when all fields are taken&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;At the risk of spoiling the "a-ha" moment when you go through the Kata yourself, the main point is this: You must try hard to not bring your pre-existing assumptions to the task. When you begin with the Kata, there is no talk of a &lt;em&gt;board&lt;/em&gt; or a &lt;em&gt;3x3 grid&lt;/em&gt; in any of the requirements. Yet, that is where many people focus their attention on. As the facilitator, it was my job to tell the participants to delete such code. The point of this exercise is of course to let the implementation being driven by the test(s) at hand and not by your own brain thinking too far ahead. Which is at the heart of "test-&lt;em&gt;driven&lt;/em&gt; design".&lt;/p&gt;

&lt;p&gt;There is much to learn about TDD in such a Kata. But besides that, I felt it an instance of creativity as an exercise, much as in the comedy writing situation.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Follow a simple system without overthinking. Get to writing and refine from there.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Having implemented the Kata myself in preparation for the work session, I can say working in the spirit of &lt;em&gt;TDD as if you meant it&lt;/em&gt; leads reliably to programming flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watching too much (Clojure) TV
&lt;/h2&gt;

&lt;p&gt;My last observation of the same pattern came when I was watching a talk from this year’s &lt;em&gt;Clojure Conj&lt;/em&gt;, the main conference on Clojure: &lt;em&gt;Rapid Prototyping for Software Development&lt;/em&gt; by Sara Kimmich &lt;a href="https://youtu.be/ABQ5N9wRGNw"&gt;(video)&lt;/a&gt; &lt;a href="http://2019.clojure-conj.org/speaker-sara-kimmich/?t=12m55s"&gt;(conference entry)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Rapid Prototyping is nothing new in software, of course. Sara makes the point that the typical agile approach these days does not iterate fast enough:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[F]or may problems, products and solution architecting the best way is to &lt;em&gt;fail fast&lt;/em&gt;. &lt;em&gt;Faster than Agile&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With her ideas you can iterate on an idea several times a day. No need to wait for two weeks (or whatever your typical sprint length is, if you are doing Scrum). Iterating often in very small increments resonates well with TDD. Creating many (similar) ideas reminds me of the comedy writing approach.&lt;/p&gt;

&lt;p&gt;Sara makes one other important point (that also applies to the TDD): Creating something and testing it allows us to make &lt;em&gt;observations&lt;/em&gt;. This is very different from discussing ideas before implementation where everything is a &lt;em&gt;conjecture&lt;/em&gt;. Showing a real-life user even just a paper prototype will generate more valid feedback than having a long exchange of opinions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I am sure the things I have talked about in this post have been discussed many times in different areas. Actually, I am pretty sure that a lot of advise about any type of (creative / academic / journalistic) writing promotes similar ideas. What was remarkable for me was to see such a pattern pop up in three unrelated parts of my life over a short period of time. This really got my attention and flipped some switches in my brain.&lt;/p&gt;

&lt;p&gt;So, no more deep thoughts? &lt;/p&gt;

&lt;p&gt;Obviously, that would be a silly notion. This post itself is a reflection about some observations that I made and took a bit for me to be happy with. My personal challenge is trying to be clever and witty in situations.&lt;/p&gt;

&lt;p&gt;In closing, the best answer I can give is to refer to the (double) diamond introduced by the &lt;a href="https://www.designcouncil.org.uk/news-opinion/what-framework-innovation-design-councils-evolved-double-diamond"&gt;Design Council&lt;/a&gt;. Design consists of both &lt;em&gt;divergent&lt;/em&gt; and &lt;em&gt;convergent&lt;/em&gt; phases. The former producing ideas, exploring options in the design space and the latter consolidating those ideas and filtering out those that should be looked at further. The trick might be to understand when to do what and to have the discipline to put the mind in the right setup for each.&lt;/p&gt;

</description>
      <category>creativity</category>
      <category>coding</category>
      <category>prototyping</category>
      <category>tdd</category>
    </item>
  </channel>
</rss>
