<?xml version="1.0" encoding="utf-8" standalone="no"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>Tarin Gamberini</title>
  <link href="https://www.taringamberini.com/" rel="alternate" type="text/html"/>
  <link href="https://www.taringamberini.com/en/feed/" rel="self" type="application/atom+xml"/>
  <id>https://www.taringamberini.com/</id>
  <updated>2020-11-18T20:38:47+01:00</updated>
  <generator uri="http://octopress.org/">Octopress</generator>
  <language>en</language>
  <rights>Copyright © 2020, Tarin Gamberini</rights>

  <xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><entry>
    <title type="html">The Scrum Guide 2020 in Italian</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/the-scrum-guide-2020-in-italian/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/the-scrum-guide-2020-in-italian</id>
    <published>2020-11-18T20:38:47+01:00</published>
    <updated>2020-11-18T20:38:47+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="right" src="https://www.taringamberini.com//images/2020-11-18-la-scrum-guide-2017-in-italiano/2020-Scrum-Guide-Italian.png" title="The Scrum Guide in Italian" alt="Frontispiece of the Scrum Guide in Italian"></p>

<p>The Scrum Guide 2020 is out, <a href="https://www.scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Italian.pdf">in Italian too</a>!</p>



<p><a href="https://www.taringamberini.com/en/blog/news/the-scrum-guide-2020-in-italian/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Italian Diceware Word List Version 4 Released</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/italian-diceware-word-list-v4-released/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/italian-diceware-word-list-v4-released</id>
    <published>2019-09-29T17:31:36+02:00</published>
    <updated>2019-09-29T17:31:36+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p>I have released the <a href="https://www.taringamberini.com//it/diceware_it_IT/lista-di-parole-diceware-in-italiano">version 4 of the Italian Diceware word list</a>.</p>




]]>
    </content>
  </entry>

  <entry>
    <title type="html">Acceptance Test with Cucumber (LinuxDay 2018)</title>
    
    <link href="https://www.taringamberini.com/en/blog/presentation/acceptance-test-with-cucumber-linuxday-2018/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/presentation/acceptance-test-with-cucumber-linuxday-2018</id>
    <published>2018-10-28T22:05:34+01:00</published>
    <updated>2018-10-28T22:05:34+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p>I have participated to <a href="http://www.linuxday.ferrara.linux.it/index.php/programma-2017">LinuxDay 2018 organized by Ferrara Linux User Group</a>
with a presentation titled &ldquo;Test di accettazione con Cetriolo in salsa Agile&rdquo;:</p>

<div style="text-align:center;"><iframe src="https://www.slideshare.net/slideshow/embed_code/121002765 " width="595" height="446" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen></iframe></div>






<p><a href="https://www.taringamberini.com/en/blog/presentation/acceptance-test-with-cucumber-linuxday-2018/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">I Have Passed The DSDM Agile Foundation Exam</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/i-have-passed-the-dsdm-agile-foundation-exam/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/i-have-passed-the-dsdm-agile-foundation-exam</id>
    <published>2018-07-02T21:53:40+02:00</published>
    <updated>2018-07-02T21:53:40+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img src="https://www.taringamberini.com//images/2018-07-02-i-have-passed-the-dsdm-agile-foundation-exam/2018-05-11-tarin-gamberini-certificate-DSDM-agile-foundation.jpg"></p>

<p>On May I attended <a href="https://www.taringamberini.com//en/blog/agile/agile-project-management-course-organized-by-technology-transfer/">a two-day Agile Project Management course held by Arie van Bennekum</a> and I did the certification exam.</p>

<p>Few days ago I received the certificate. I am very glad to have passed the exam at the first attempt.</p>




]]>
    </content>
  </entry>

  <entry>
    <title type="html">Along my Learning English Path</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/along-my-english-learning-path/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/along-my-english-learning-path</id>
    <published>2018-06-17T11:30:45+02:00</published>
    <updated>2018-06-17T11:30:45+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="center" src="https://www.taringamberini.com//images/2018-06-17-along-my-learning-english-path/2018-06-17-in-other-words-by-jhumpa-lahiri.jpg" title="In Other Words by Jhumpa Lahiri" >
As an Italian programmer who continuously wants to learn and improve his English I&rsquo;d like to share this <a href="https://www.youtube.com/watch?v=9w_xnNZTpu4">beautiful interview with Pulitzer Prize-winning novelist Jhumpa Lahiri</a>.</p>

<!--more -->


<p>For programmers English is a very important skill. Lots of -the- programming resources available on the Internet are in English: posts, articles, manuals, books; and also video of conferences, meetings and events. Not considering programmers who work abroad or in a multicultural environment.</p>

<p>In this blog I try to write in English because it&rsquo;s a way to keep me trained with written English.  Even if I put my mind to it, I know I make lots of errors. Not only grammar errors but also errors using linguistic structures that a native English would never use. So please excuse any mistakes.</p>

<p><span class='pullquote-right' data-pullquote='It’s a language that I’m borrowing and that I work with differently. It’s much more delicate relationship, but it’s also shameless.'>
In this context it sounds quite familiar when Jhumpa says «It&rsquo;s a language that I&rsquo;m borrowing and that I work with differently. It&rsquo;s much more delicate relationship, but it&rsquo;s also shameless.». In fact, every once in a while I can&rsquo;t avoid feeling a bit uncomfortable fearing the judgment of readers with a better English.
</span></p>

<p>However I can cope pretty well with this uncomfortableness, because writing posts in English is a deliberate choice I&rsquo;ve made. So I don&rsquo;t usually feel uncomfortable, just a little shameless :)</p>

<p><span class='pullquote-right' data-pullquote='my gut tells me that this distance is too painful. I want to destroy this distance but it’s not possible. The more I go ahead, the more I try to relax and appreciate the good'>
In the video interview Jhumpa speaks about the anxiety she felt because of the distance between her own language and Italian. I&rsquo;ve found very interesting how she was able to calm this anxiety down by accepting that distance and appreciating the good it brought to her: «my gut tells me that this distance is too painful. I want to destroy this distance but it&rsquo;s not possible. The more I go ahead, the more I try to relax and appreciate the good».
</span></p>

<p>In this post I just wanted bringing to light a little of the emotional element involved in learning a language, or more broadly, approaching a different culture. Jhumpa tells us about her experience in the video above, so don&rsquo;t miss it.</p>

<p>I hope you enjoyed the video and liked this post :)</p>




]]>
    </content>
  </entry>

  <entry>
    <title type="html">“Agile Project Management” Course Organized by Technology Transfer</title>
    
    <link href="https://www.taringamberini.com/en/blog/agile/agile-project-management-course-organized-by-technology-transfer/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/agile/agile-project-management-course-organized-by-technology-transfer</id>
    <published>2018-05-12T16:42:23+02:00</published>
    <updated>2018-05-12T16:42:23+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p>I just got back from the two-day <a href="http://www.technologytransfer.it/index.cfm?kLang=1&amp;cis=1;1;1&amp;rec=1015">Agile Project Management</a> course organized by <a href="http://www.technologytransfer.eu">Technology Transfer</a> and taught by <a href="https://www.linkedin.com/in/ariev3">Arie van Bennekum</a>, one of the authors of the <a href="http://agilemanifesto.org/">Agile Manifesto</a>.</p>

<p>Here you are some of my impressions about this fantastic experience.</p>

<!-- more -->


<h2>Table of Contents</h2>

<ul>
<li><a href="#organization">Organization</a></li>
<li><a href="#course">Course</a>

<ul>
<li><a href="#a-spaghetti-marshmallow-tower">A spaghetti-marshmallow tower</a></li>
<li><a href="#role-game-build-a-playground">Role Game &ldquo;Build a Playground&rdquo;</a></li>
</ul>
</li>
<li><a href="#what-i-learned">What I Learned</a></li>
<li><a href="#next-learning-steps">Next Learning Steps</a></li>
</ul>


<h2><a id="organization">Organization</a></h2>

<p>The most valuable part of the courses organized by Technology Transfer is the opportunity to hear teachers and speakers who are experts in their area and whose contributions has been widely acknowledged at the international level.</p>

<p>The organization of this course was excellent:</p>

<ul>
<li>The course was in English, and also available in Italian thanks to two highly competent simultaneous interpreters.</li>
<li>The lunch was in the same beautiful location as the course, in the center of Rome.</li>
<li>There were two coffee breaks: one at mid-morning and the other at mid-afternoon.</li>
<li>All the staff were very kind and quickly dealt with inconveniences to ensure that the course flowed smoothly.</li>
</ul>


<h2><a id="course">Course</a></h2>

<p>This course was one of the best I&rsquo;ve ever attended.  I really appreciated the opportunity to get a <a href="https://www.taringamberini.com//en/blog/news/i-have-passed-the-dsdm-agile-foundation-exam/">certification</a>.</p>

<p><img class="center" src="https://www.taringamberini.com//images/2018-05-12-agile-project-management-course-organized-by-technology-transfer/arie-van-bennekum-is-teaching-agile.jpg" title="Arie van Bennekum is teaching Agile" ></p>

<p>Arie taught with an energetic and interactive style. He set a rhythm that kept our attention alive by alternating talks and exercise sessions.</p>

<p>During the talks, Arie explained various concepts, accompanying the most relevant ones with an example from his work experience.</p>

<p>The exercises were in groups of: two to four people each, depending on the exercise. Sometimes, before an exercise started, he asked people to mix among the groups.</p>

<h3><a id="a-spaghetti-marshmallow-tower">A spaghetti-marshmallow tower</a></h3>

<p>Arie introduced our first exercise by showing us the fun and interesting <a href="https://www.youtube.com/watch?v=H0_yKBitO8M">spaghetti-marshmallow tower video</a> by Tom Wujec. In the exercise, we had to build a tower using only: dry spaghetti, one yard of tape and a marshmallow.  <img class="right" src="https://www.taringamberini.com//images/2018-05-12-agile-project-management-course-organized-by-technology-transfer/spaghetti-marshmallow-tower.jpg" title="spaghetti-marshmallow tower" ></p>

<p>In this exercise, we started discussing some building strategies. From my engineering studies, I knew that the triangle is the most stable structure, so I proposed my idea. My teammates agreed with me about the triangle but remained perplexed about my idea.</p>

<p>They instead had already built a structure which let the tower gain height. I recognized the value of such solution, so I helped them. A bit later we were having some stability problems when I got an intuition, like a bolt from the blue! I realized how to adapt my original idea to our tower under construction: not vertical triangles, but horizontal triangles, larger at the base, smaller proceeding towards the top.</p>

<p>The best reward was looking at our unexpected solution standing tall and (quite) stable.  (Thanks to <a href="https://www.linkedin.com/in/benedetta-capasso-39982478">Benedetta Capasso</a> for the spaghetti-marshmallow photo).</p>

<h3><a id="role-game-build-a-playground">Role Game &ldquo;Build a Playground&rdquo;</a></h3>

<p>During the afternoon of the second day, we were split in two teams and each team played a role game that aimed to put into practice everything we had covered in the course.</p>

<p>The <em>SMART objective</em> of the game was building a playground in five <em>sprints</em>, which last fifteen minutes each, with five minutes for the <em>retrospective</em> at the end of each sprint.</p>

<p>We were provided with all the material necessary to play: the playground base, straws, post-its, scissors, a <em>Kanban board</em>, <em>Planning Poker</em> cards, already written cards about <em>epics</em>, <em>user stories</em>, <em>tasks</em> and <em>acceptance requirements</em>.</p>

<p>We began identifying the <em>Business Foundations</em>, <em>Solution Foundations</em> and <em>Management Foundations</em> by sticking each card on the appropriate section of the Kanban board.  Then we had a planning poker session during which we estimated each user story.</p>

<p>At that point, we started the first sprint. We did &ldquo;<em>pair</em> building&rdquo; (equivalent to pair programming) to avoid <a href="https://en.wikipedia.org/wiki/Information_silo">information silos</a>. Just before the end of the sprint, we asked to our <em>Business Ambassador</em> (similar to the Scrum&rsquo;s Product Owner) to verify if tasks met all their acceptance requirements, so that they could have been declared <em>Done</em>.  During the sprint, we were transparent about our progress by appropriately moving the various tasks on the Kanban board.</p>

<p>We had the greatest Business Ambassadors available on the market :-) because Arie and <a href="https://www.linkedin.com/in/vesselina-andreeva-14359b15/">Vesselina Andreeva</a> played the game in such role, coaching us during the sprints. (Thanks to Arie and Vesselina for the course photos).</p>

<p><img class="center" src="https://www.taringamberini.com//images/2018-05-12-agile-project-management-course-organized-by-technology-transfer/agile-team-at-kanban-board.jpg" title="Agile team at Kanban Board" ></p>

<p>We skipped the <em>Demonstration</em> and <em>Refinement</em>, both to save time and because the role game was intentionally a simplification, but we were still able to be transparent about the project&rsquo;s progress by drawing a <em>Burndown Chart</em> and keeping it up to date throughout the various sprints.</p>

<h2><a id="what-i-learned">What I Learned</a></h2>

<p>I came into the &ldquo;Agile Project Management&rdquo; course with some expectations, mainly due to my previous <a href="https://www.taringamberini.com//en/blog/news/i-have-passed-the-certified-scrummaster-exam/">ScrumMaster® certification</a>, but I soon realized that those expectations were wrong.</p>

<p>Because Scrum focuses on one team only, I was a little afraid, since I knew that to scale up we would need another framework, like <a href="https://less.works/">LeSS</a> or <a href="https://www.scrum.org/resources/scaling-scrum">Nexus</a>. Instead, Arie made me reflect on how to scale up by including Business roles in the team at project level too, as described in the <a href="https://www.agilebusiness.org/content/roles-and-responsibilities">DSDM team role and responsibility model</a>, also known as &ldquo;the snowman&rdquo;.</p>

<p>I discovered the <a href="http://integratedagile.com/iatm/">Integrated Agile Transformation Model</a>, the Arie&rsquo;s plan that make effective the paradigm shift to Agile for organizations.</p>

<p>I gained a deeper comprehension about the importance of the discipline (<em>rituals</em>, <em>Definition of Done</em> and <em>WIP</em> limits) and how discipline helps achieve high quality.</p>

<p>On the whole I reached a new point of view about Agile practices adoption and I gained a more mature knowledge of Agile in general.</p>

<h2><a id="next-learning-steps">Next Learning Steps</a></h2>

<p>I&rsquo;ve already read &ldquo;User Stories Applied: For Agile Software Development&rdquo; by Mike Cohn and now I want to read about the <a href="https://www.frontrowagile.com/blog/posts/73-using-7-product-dimensions-to-slice-user-stories">seven product dimensions to slice user story</a>.</p>

<p>I also want to read something about group development, starting from the <a href="https://en.wikipedia.org/wiki/Forming-storming-norming-performing">forming–storming–norming–performing model</a>.</p>

<p>That&rsquo;s all. Thanks for reading. I hope you liked this post :)</p>




]]>
    </content>
  </entry>

  <entry>
    <title type="html">Adoption of Free Software PDF readers in Italian Regional Public Administrations (sixth monitoring)</title>
    
    <link href="https://www.taringamberini.com/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-sixth-monitoring/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-sixth-monitoring</id>
    <published>2018-05-01T18:25:04+02:00</published>
    <updated>2018-05-01T18:25:04+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="right" src="https://www.taringamberini.com//images/2015-11-02-adozione-lettori-pdf-liberi-nelle-pubbliche-amministrazioni-italiane/pdfreaders-logo.png"></p>

<p>The following monitoring shows that, in the last semester, twelve Italian Regions
have reduced advertisement of proprietary PDF readers on their website.</p>



<p><a href="https://www.taringamberini.com/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-sixth-monitoring/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">The Scrum Guide 2017 in Italian</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/the-scrum-guide-2017-in-italian/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/the-scrum-guide-2017-in-italian</id>
    <published>2017-12-06T14:31:25+01:00</published>
    <updated>2020-11-18T20:38:47+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="right" src="https://www.taringamberini.com//images/2017-08-26-la-scrum-guide-2017-in-italiano/2017-Scrum-Guide-Italian.png"></p>

<p>On <a href="https://www.taringamberini.com//en/blog/news/i-have-passed-the-certified-scrummaster-exam/">August I passed the Certified ScrumMaster exam</a> at <a href="https://www.scrumalliance.org/community/profile/tgamberini">SCRUM Alliance</a>. To get ready for the exam I had studied the <a href="http://www.scrumguides.org/">Scrum Guide</a> and I had noticed that it was available in Italian too.</p>

<p>Reading the Italian translation I realized that I could have contributed to improve it further. Therefore on July I got in touch with <a href="https://www.linkedin.com/in/francescolomonaco">Francesco Lomonaco</a>, the maintainer of the Italian Scrum Guide, who very kindly gave me his willingness to cooperate for an update of the translation.</p>



<p><a href="https://www.taringamberini.com/en/blog/news/the-scrum-guide-2017-in-italian/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">ThoughtWorks Technology Radar vol. 17 in Italian</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/the-thoughtworks-technology-radar-vol-17-in-italian/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/the-thoughtworks-technology-radar-vol-17-in-italian</id>
    <published>2017-11-30T21:37:34+01:00</published>
    <updated>2017-11-30T21:37:34+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img src="https://www.taringamberini.com//images/2017-03-28-twr/artistic_thoughtworks_technology_radar.jpg"></p>

<p>I have always been enthusiastic about the <a href="https://www.thoughtworks.com/radar">ThoughtWorks Technology Radar</a> both because of the idea in itself and because of its implementation in the form of radar.</p>

<p>The Technology Radar is a document which gathers substantial changes in IT technologies of interest to various ThoughtWorks teams. The Radar is written by the <a href="https://www.thoughtworks.com/radar/faq#who">ThoughtWorks Technology Advisory Board (TAB)</a>, made up of senior technologists at ThoughtWorks, which regularly meet themselves to talk about technology trends that significantly impact our industry.</p>

<p>The implementation in the form of radar is characterized by four quadrants: <em>techniques, platforms, tools, languages &amp; framework</em>; and four concentric levels (from outside to inside): <em>hold, assess, trial, adopt</em>. The various moving technologies appear on the Radar as <em>blips</em>: the closer the blip is to the center, the more it is qualified to be of worth by ThoughtWorks.</p>

<p>The ThoughtWorks Radar contents summarise the essence of the TAB meetings, and its format effectively communicate contents to a wide range of stakeholders, from CIOs to developers.</p>

<p>As <a href="https://www.taringamberini.com//en/blog/news/the-thoughtworks-technology-radar-in-italian/">I did last year</a>, this year too I contributed to the Italian translation of the ThoughtWorks Radar.</p>



<p><a href="https://www.taringamberini.com/en/blog/news/the-thoughtworks-technology-radar-vol-17-in-italian/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Adoption of Free Software PDF readers in Italian Regional Public Administrations (fifth monitoring)</title>
    
    <link href="https://www.taringamberini.com/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-fifth-monitoring/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-fifth-monitoring</id>
    <published>2017-11-01T09:56:04+01:00</published>
    <updated>2017-11-01T09:56:04+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="right" src="https://www.taringamberini.com//images/2015-11-02-adozione-lettori-pdf-liberi-nelle-pubbliche-amministrazioni-italiane/pdfreaders-logo.png"></p>

<p>The following monitoring shows that, in the last semester, eight Italian Regions
have reduced advertisement of proprietary PDF readers on their website, and
that a Region has increased its support for Free Software PDF readers.</p>



<p><a href="https://www.taringamberini.com/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-fifth-monitoring/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">A more communicative Builder</title>
    
    <link href="https://www.taringamberini.com/en/blog/programming/a-more-communicative-builder/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/programming/a-more-communicative-builder</id>
    <published>2017-10-03T16:11:07+02:00</published>
    <updated>2017-10-03T16:11:07+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img src="https://www.taringamberini.com//images/2017-10-03-a-more-communicative-builder/builder.jpg"></p>

<p>The Builder pattern <a id="back-to-1" href="#1">[1]</a> is a good choice when designing classes whose constructors have more than a handful of parameters, not only because is less error prone in case of identically typed parameter, but also because it is more readable from the client <a id="back-to-2" href="#2">[2]</a>. For example, instead of instantiating an <code>Application</code> object with its constructor:</p>

<pre><code class="java">public class Client {
    ...
        Person legalRepresentative = getLegalRepresentative();
        Company beneficiary = getBeneficiary();
        Person notary = getNotary();
        Person localOfficial = getOfficial();
        Company centralOffice = getOffice();

        Application application = new Application(
                legalRepresentative, 
                beneficiary, 
                notary, 
                localOfficial,
                centralOffice);
    ...
}
</code></pre>

<p>we could use an <code>ApplicationBuilder</code> or, if the builder is an Application inner class, an <code>Application.Builder</code> as:</p>



<p><a href="https://www.taringamberini.com/en/blog/programming/a-more-communicative-builder/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">I have passed the Certified ScrumMaster exam</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/i-have-passed-the-certified-scrummaster-exam/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/i-have-passed-the-certified-scrummaster-exam</id>
    <published>2017-08-26T14:31:25+02:00</published>
    <updated>2017-08-26T14:31:25+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img src="https://www.taringamberini.com//images/2017-08-26-certified-scrum-master/2017-08-26-tarin-gamberini-certified-scrummaster.jpg"></p>

<p>On June I attended <a href="https://www.taringamberini.com//en/blog/programming/i-have-just-attended-a-scrum-master-course/">a three-day Scrum Master course held by Craig Larman</a> and today I did the exam at <a href="https://www.scrumalliance.org/community/profile/tgamberini">SCRUM Alliance</a> to became a Certified ScrumMaster.</p>

<p>I am very glad to have passed the exam at the first attempt scoring 34/35.</p>




]]>
    </content>
  </entry>

  <entry>
    <title type="html">My Comments about «The Rise of Test Impact Analysis»</title>
    
    <link href="https://www.taringamberini.com/en/blog/programming/my-comments-about-the-rise-of-test-impact-analysis/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/programming/my-comments-about-the-rise-of-test-impact-analysis</id>
    <published>2017-08-10T19:09:40+02:00</published>
    <updated>2017-08-10T19:09:40+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p>I have red the article <a href="https://martinfowler.com/articles/rise-test-impact-analysis.html">The Rise of Test Impact Analysis</a> by Paul Hammant finding it very interesting.</p>

<p>I agree on the fact that developers might feel slowed down when tests execution on the development machine takes too long. Comprehensibly they might tend to not executing tests before commit, relying on tests running later on a continuous integration server. That fact might slowly drift developers off good Agile practices.</p>

<p><span class='pullquote-right' data-pullquote='Test Impact Analysis (TIA) is a technique that helps determine which subset of tests execute for a given set of source code changes.'>
The article reports some «conventional strategies to shorten test automation» before describing «Test Impact Analysis». Test Impact Analysis (TIA) is a technique that helps determine which subset of tests execute for a given set of source code changes. The way by which the tests subset is determined starts with a code coverage or instrumentation phase, and finishes building a map which associate, for each entry, a test with the source code methods it will cover during its execution. TIA avoids executing all tests because it enables only the execution of the relevant ones.
</span></p>



<p><a href="https://www.taringamberini.com/en/blog/programming/my-comments-about-the-rise-of-test-impact-analysis/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">I have just attended a Scrum Master course</title>
    
    <link href="https://www.taringamberini.com/en/blog/programming/i-have-just-attended-a-scrum-master-course/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/programming/i-have-just-attended-a-scrum-master-course</id>
    <published>2017-06-28T12:31:04+02:00</published>
    <updated>2017-06-28T12:31:04+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="center" src="https://www.taringamberini.com//images/2017-06-28-i-have-just-attended-a-scrum-master-course/20170628_scrum_values_image_by_jacek_durlik.jpg"></p>

<p>I have just came back from a three days Scrum Master course taught by <a href="http://www.craiglarman.com/">Craig Larman</a>.</p>

<p>The teacher told us so many things, and some of his experiences and insights, that is quite impossible reporting all of them in a blog post. However I share with pleasure one of his clarification about the meaning of the Scrum value: commitment.</p>



<p><a href="https://www.taringamberini.com/en/blog/programming/i-have-just-attended-a-scrum-master-course/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Testing with the appropriate injection</title>
    
    <link href="https://www.taringamberini.com/en/blog/java/testing-with-the-appropriate-injection/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/java/testing-with-the-appropriate-injection</id>
    <published>2017-05-30T17:29:23+02:00</published>
    <updated>2017-05-30T17:29:23+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img src="https://www.taringamberini.com//images/2017-05-30-testing-injection/colored-pencils.jpg"></p>

<p>I added some new functionalities to a Spring-based web application.</p>

<p>After some changes a unit test failed. The cause was a missing bean which stopped the auto-wiring process while Spring was loading the application context.</p>

<p>The test declared its own application contest, by using the annotation <code>@Configuration</code> on a static inner class; there were some mocked beans, so I added the missing bean:</p>

<pre><code class="java">@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyClassTest {

    ...

    @Configuration
    static class ContextConfiguration {

        @Bean
        public MissingBean missingBean() {
            return new MockMissingBean();
        }

        @Bean
        public ThatBean thatBean() {
            return new MockThatBean();
        }

        @Bean
        public ThisBean thisBean() {
            return new MockThisBean();
        }

        ...
    }

}
</code></pre>

<p>Then I changed other classes adding other auto-wired beans, new methods, etc., until when the same test that had failed before failed again!</p>



<p><a href="https://www.taringamberini.com/en/blog/java/testing-with-the-appropriate-injection/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Adoption of Free Software PDF readers in Italian Regional Public Administrations (fourth monitoring)</title>
    
    <link href="https://www.taringamberini.com/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-fourth-monitoring/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-fourth-monitoring</id>
    <published>2017-05-01T10:30:35+02:00</published>
    <updated>2017-05-01T10:30:35+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="right" src="https://www.taringamberini.com//images/2015-11-02-adozione-lettori-pdf-liberi-nelle-pubbliche-amministrazioni-italiane/pdfreaders-logo.png"></p>

<p>The following monitoring shows that, in the last semester, nine Italian Regions
have reduced advertisement <del>about</del> of proprietary PDF readers on their website, and
that a Region has <del>raised</del> increased its support <del>to</del> for Free Software PDF readers.</p>



<p><a href="https://www.taringamberini.com/en/blog/fsfe/adoption-of-free-software-pdf-readers-in-italian-regional-public-administrations-fourth-monitoring/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">ThoughtWorks Technology Radar in Italian</title>
    
    <link href="https://www.taringamberini.com/en/blog/news/the-thoughtworks-technology-radar-in-italian/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/news/the-thoughtworks-technology-radar-in-italian</id>
    <published>2017-03-28T19:20:48+02:00</published>
    <updated>2017-03-28T19:20:48+02:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img src="https://www.taringamberini.com//images/2017-03-28-twr/artistic_thoughtworks_technology_radar.jpg"></p>

<p>I have always been enthusiastic about the <a href="https://www.thoughtworks.com/radar">ThoughtWorks Technology Radar</a> both because of the idea in itself and because of its implementation in the form of radar.</p>

<p>The Technology Radar is a document which gathers substantial changes in IT technologies of interest to various ThoughtWorks teams. The Radar is written by the <a href="https://www.thoughtworks.com/radar/faq#who">ThoughtWorks Technology Advisory Board (TAB)</a>, made up of senior technologists at ThoughtWorks, which regularly meet themselves to talk about technology trends that significantly impact our industry.</p>

<p>The implementation in the form of radar is characterized by four quadrants: <em>techniques, platforms, tools, languages &amp; framework</em>; and four concentric levels (from outside to inside): <em>hold, assess, trial, adopt</em>. The various moving technologies appear on the Radar as <em>blips</em>: the closer the blip is to the center, the more it is qualified to be of worth by ThoughtWorks.</p>

<p>The ThoughtWorks Radar contents summarise the essence of the TAB meetings, and its format effectively communicate contents to a wide range of stakeholders, from CIOs to developers.</p>

<p>Over the years the Thoughtworks Radar has evolved in the contents, in the graphic layout, and in the distribution in various languages; but it hasn&rsquo;t been available in Italian yet. Last year, when I discovered that <a href="https://www.thoughtworks.com/contact-us">ThoughtWorks has an office in Bologna</a>, the city where I work in, I wrote an email asking if I might have contributed to the Italian translation of the ThoughtWorks Radar. I received a reply from <a href="http://matteo.vaccari.name/">Matteo Vaccari</a>:</p>



<p><a href="https://www.taringamberini.com/en/blog/news/the-thoughtworks-technology-radar-in-italian/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Method parameters and TOCTOU</title>
    
    <link href="https://www.taringamberini.com/en/blog/programming/method-parameters-and-toctou/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/programming/method-parameters-and-toctou</id>
    <published>2017-02-22T21:43:20+01:00</published>
    <updated>2017-02-22T21:43:20+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p>I have always been fascinated by the <em>Design by Contract</em> approach:</p>

<blockquote><p>Software always had bugs and always will”. Tired of this defeatist attitude? With Design by Contract, invented by Eiffel Software and one of the most widely recognized breakthroughs in the history of software engineering, you can write complex software and not wake up at night fearing that something, somewhere will go wrong. Design by Contract brings science to the construction of correct and robust software.</p><footer><strong>"Eiffel Software"</strong> <cite><a href='https://www.eiffel.com/values/design-by-contract'>www.eiffel.com/values/&hellip;</a></cite></footer></blockquote>


<p>From this point of view, unfortunately, Java is not Eiffel. Therefore, even if I would have follow this <a href="https://en.wikipedia.org/wiki/Bertrand_Meyer">Bertrand Meyer</a> valuable concept, I had to cope with the language itself. I know in the past years some Java frameworks which implement Design by Contract have been proposed, but I have never had the chance to try them seriously. So what I do is simply checking input method parameters.</p>



<p><a href="https://www.taringamberini.com/en/blog/programming/method-parameters-and-toctou/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Functional Programming in Java book review</title>
    
    <link href="https://www.taringamberini.com/en/blog/review/functional-programming-in-java-book-review/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/review/functional-programming-in-java-book-review</id>
    <published>2017-01-25T21:41:40+01:00</published>
    <updated>2017-01-25T21:41:40+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p><img class="right" src="https://www.taringamberini.com//images/2017-01-25-functional-programming-in-java-book-review/functional-programming-in-java-front-cover.jpeg" title="Functional Programming in Java by Pierre-Yves Saumont" ></p>

<p>Last January I was selected from
<a href="https://www.manning.com/" rel="nofollow">Manning</a> as one of the
technical reviewers of the book &ldquo;Functional Programming in Java&rdquo; by Pierre-Yves Saumont.
In these days the book has been released to the public therefore I can
publish this post without violating the reviewer agreement.</p>

<p>The book teaches functional concepts by lots of examples and exercises
which develop in the reader both a knowledge background and a natural
instinct to functional programming paradigm.</p>



<p><a href="https://www.taringamberini.com/en/blog/review/functional-programming-in-java-book-review/">Continue reading →</a></p>


]]>
    </content>
  </entry>

  <entry>
    <title type="html">Code Templates For Logging</title>
    
    <link href="https://www.taringamberini.com/en/blog/java/code-templates-for-logging/" rel="alternate" type="text/html"/>
    
    <id>/en/blog/java/code-templates-for-logging</id>
    <published>2017-01-18T21:39:27+01:00</published>
    <updated>2017-01-18T21:39:27+01:00</updated>
    <author>
      <name>Tarin Gamberini</name>
      <uri>https://www.taringamberini.com/</uri>
    </author>
    <content type="html" xml:base="https://www.taringamberini.com/" xml:lang="en">
<![CDATA[

<p>When I want to log a message, a variable, or an exception I would like to write it quickly. Therefore I&rsquo;ve created some templates which generate logging instruction based on <a href="https://www.slf4j.org/">slf4j</a>.</p>

<h2>Netbeans IDE</h2>

<p>I have created the following code template:</p>

<pre><code class="java">private static final ${LOGGER_TYPE type="org.slf4j.Logger" default="Logger" editable=false} LOGGER = ${LOGGER_FACTORY type="org.slf4j.LoggerFactory" default="LoggerFactory" editable=false}.getLogger(${CLASS editable="false" currClassName}.class);
</code></pre>

<p>and I have associated it to the abbreviation <code>log</code>. Than at the cursor:</p>

<pre><code class="java">public class MyClass {
    |
    ...
</code></pre>

<p>I type <code>log</code> + <kbd>TAB</kbd> and NetBeans expands the text:</p>

<pre><code class="java">import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

...

public class MyClass {
    private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
    ...
</code></pre>

<p>I have also defined the shortcuts:</p>

<ul>
<li><code>logd</code> + <kbd>TAB</kbd></li>
<li><code>logw</code> + <kbd>TAB</kbd></li>
<li><code>logi</code> + <kbd>TAB</kbd></li>
<li><code>loge</code> + <kbd>TAB</kbd></li>
</ul>


<p>defined as:</p>

<ul>
<li><code>${LOGGER_CONST default="LOGGER" editable=false}.debug("${logMessage}");</code></li>
<li><code>${LOGGER_CONST default="LOGGER" editable=false}.warn("${logMessage}");</code></li>
<li><code>${LOGGER_CONST default="LOGGER" editable=false}.info("${logMessage}");</code></li>
<li><code>${LOGGER_CONST default="LOGGER" editable=false}.error("${logMessage}", ex);</code></li>
</ul>


<p>which generate:</p>

<pre><code class="java">LOGGER.debug("logMessage");
LOGGER.warn("logMessage");
LOGGER.info("logMessage");
LOGGER.error("logMessage", ex);
</code></pre>



<p><a href="https://www.taringamberini.com/en/blog/java/code-templates-for-logging/">Continue reading →</a></p>


]]>
    </content>
  </entry>

</feed>