<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nEraLab &#8211; Mobile and desktop Development</title>
	<atom:link href="https://neralab.it/nera-cms/feed/" rel="self" type="application/rss+xml" />
	<link>https://neralab.it/nera-cms</link>
	<description>Mobile and desktop development made with love</description>
	<lastBuildDate>Thu, 04 Mar 2021 07:33:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.4.12</generator>
	<item>
		<title>New book presenting a practical approach on design patterns</title>
		<link>https://neralab.it/nera-cms/2021/03/04/new-book-presenting-a-practical-approach-on-design-patterns/</link>
		
		<dc:creator><![CDATA[photoDev]]></dc:creator>
		<pubDate>Wed, 03 Mar 2021 23:13:10 +0000</pubDate>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[knowledge]]></category>
		<guid isPermaLink="false">https://neralab.it/?p=437</guid>

					<description><![CDATA[<p>This book answers questions like: What design pattern should I use? When should i use a design pattern? Why are design patterns needed in software development? After a year of work, revisions and changes, my first book in paper format is finally available on Amazon :Design Patterns &#8211; Practical Cards for Beginners For now the [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2021/03/04/new-book-presenting-a-practical-approach-on-design-patterns/">New book presenting a practical approach on design patterns</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This book answers questions like: What design pattern should I use? When should i use a design pattern? Why are design patterns needed in software development?</p>



<p>After a year of work, revisions and changes, my first book in paper format is finally available on Amazon</p>



<p>:<a href="https://www.amazon.it/dp/B08XRV8DK6?ref_=pe_3052080_397514860" target="_blank" rel="noreferrer noopener"><img class="wp-image-439" style="width: 150px;" src="https://neralab.it/nera-cms/wp-content/uploads/2021/03/Design-Patterns.png" alt="Design Patterns" srcset="https://neralab.it/nera-cms/wp-content/uploads/2021/03/Design-Patterns.png 454w, https://neralab.it/nera-cms/wp-content/uploads/2021/03/Design-Patterns-198x300.png 198w" sizes="(max-width: 454px) 100vw, 454px" /></a><br><strong><a href="https://www.amazon.it/dp/B08XRV8DK6?ref_=pe_3052080_397514860" target="_blank" rel="noreferrer noopener">Design Patterns &#8211; Practical Cards for Beginners</a></strong></p>



<p>For now the book is in Italian, but I&#8217;m working on the English version.<br>At first I was undecided whether to add the word &#8220;beginners&#8221; in the subtitle. I said to myself that when you don&#8217;t know a subject or don&#8217;t know it very much, you are a beginner.</p>



<p>This does not mean that whoever will read the book is an absolute beginner with respect to software development. Perhaps they have never used the patterns or don&#8217;t know some of those described in the book.<br>In my small way, I tend to feel like a beginner. In this way I put myself in the mental condition of being open to accepting new ideas, new opinions and different points of view.<br>Criticisms, when they are constructive, are worth gold. They allow you to improve and enrich your cultural / professional background.</p>



<p>Writing this book was exhausting. I left full of enthusiasm thinking it would be a walk.<br>Then I realised that to do things well, and try to transfer their knowledge in a clear and simple way for those who are just a beginner, it was not easy.<br>Simple isn&#8217;t easy. To simplify it is necessary to remove, remove what is superfluous and get to the essential. To do this, you need to know what to remove and what to leave, in order to transfer the message you want to give.</p>



<p>I hope I have succeeded in this task. The greatest satisfaction for me will be to know that the book has been useful for someone to improve their software writing style.</p>



<p>Enjoy the reading.</p>



<div class="wp-block-buttons">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-very-dark-gray-color has-background has-luminous-vivid-amber-background-color" href="https://www.amazon.it/dp/B08XRV8DK6?ref_=pe_3052080_397514860" style="border-radius:34px" target="_blank" rel="noreferrer noopener">Go to the book</a></div>
</div>



<h3>Other posts that may be of interest</h3>



<ul><li><a href="https://neralab.it/2019/01/20/the-6-habits-to-improve-software-development/">The 6 habits to improve software development</a></li><li><a href="https://neralab.it/2018/12/20/the-10-communication-lessons-learned-to-work-better-in-a-team/">The 10 lessons I’ve learned to better communicate in a development team</a></li></ul>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2021/03/04/new-book-presenting-a-practical-approach-on-design-patterns/">New book presenting a practical approach on design patterns</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The 6 habits to improve software development</title>
		<link>https://neralab.it/nera-cms/2019/01/20/the-6-habits-to-improve-software-development/</link>
					<comments>https://neralab.it/nera-cms/2019/01/20/the-6-habits-to-improve-software-development/#comments</comments>
		
		<dc:creator><![CDATA[photoDev]]></dc:creator>
		<pubDate>Sun, 20 Jan 2019 21:36:15 +0000</pubDate>
				<category><![CDATA[Personal Growth]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[growth]]></category>
		<category><![CDATA[lessons]]></category>
		<guid isPermaLink="false">http://neralab.it/?p=403</guid>

					<description><![CDATA[<p>The power of a good habit Habits are one of the most powerful things about the human being. These allow us to be super efficient and to perform actions even without thinking about it. Think about when you put your shoes in the morning. Put your right or left first? If you do not know [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2019/01/20/the-6-habits-to-improve-software-development/">The 6 habits to improve software development</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="has-text-align-center">The power of a good habit</h3>



<figure class="wp-block-image"><img src="https://neralab.it/nera-cms/wp-content/uploads/2019/01/habits-1024x683.jpg" alt="To run each day is a good habit" class="wp-image-415" srcset="https://neralab.it/nera-cms/wp-content/uploads/2019/01/habits-1024x683.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2019/01/habits-300x200.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2019/01/habits-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><em>Photo by&nbsp;</em><a href="https://unsplash.com/photos/ky1w7eac5EM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Maarten van den Heuvel</em></a><em>&nbsp;on&nbsp;</em><a href="https://unsplash.com/search/photos/run?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></figcaption></figure>



<p class="has-medium-font-size">Habits are one of the most powerful things about the human being. These allow us to be super efficient and to perform actions even without thinking about it. Think about when you put your shoes in the morning. Put your right or left first? If you do not know how to answer it is normal, because by habit you are doing it without even thinking about it and you will do it, in the same way, every morning.</p>



<p class="has-medium-font-size">A habit follows the so-called “circle of habit”:</p>



<ul><li><p class="has-medium-font-size">A signal stimulates the habit</p></li><li><p class="has-medium-font-size">The routine is activated (the usual action we do)</p></li><li><p class="has-medium-font-size">Gratification arrives</p></li></ul>



<p class="has-medium-font-size">&#8230; and so on until the next <g class="gr_ gr_17 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Punctuation only-ins replaceWithoutSep" id="17" data-gr-id="17">time</g> the signal activates the habit.</p>



<hr class="wp-block-separator is-style-dots"/>



<h2>Stay focused</h2>



<figure class="wp-block-image"><img src="https://neralab.it/nera-cms/wp-content/uploads/2019/01/Facus-1024x576.jpg" alt="Stay focused" class="wp-image-417" srcset="https://neralab.it/nera-cms/wp-content/uploads/2019/01/Facus-1024x576.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2019/01/Facus-300x169.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2019/01/Facus-768x432.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><em>Photo by&nbsp;</em><a href="https://unsplash.com/photos/-8ZESyFapTk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Ashes Sitoula</em></a><em>&nbsp;on&nbsp;</em><a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></figcaption></figure>



<p class="has-medium-font-size">The first habit that I created is to focus on the problem to be solved without distracting me with external notifications and noises. When I have to solve a problem, especially if complex, I try to focus on it and to immerse myself in the problem by visualizing it mentally.</p>



<p class="has-medium-font-size">This makes it possible to develop much more efficiently and effectively because you make fewer mistakes due to distractions. Another advantage is to solve quickly the problem or understand that it is appropriate to ask for <a href="https://neralab.it/2018/12/20/the-10-lessons-ive-learned-to-better-communicate-in-a-development-team/#ask_help" target="_blank" rel="noreferrer noopener" aria-label="help (opens in a new tab)">help</a>.</p>



<p class="has-medium-font-size">A good technique for training concentration on a problem is that of <a href="https://en.wikipedia.org/wiki/Pomodoro_Technique" target="_blank" rel="noreferrer noopener" aria-label="Pomodoro (opens in a new tab)">Pomodoro</a>. This is about dividing the work into time slots within which one tries to solve the various tasks assigned.</p>



<p class="has-medium-font-size">Another technique is to focus on one problem at a time. <a rel="noreferrer noopener" aria-label="Multitasking (opens in a new tab)" href="http://www.talentsmart.com/articles/Multitasking-Damages-Your-Brain-and-Your-Career,-New-Studies-Suggest-2102500909-p-1.html" target="_blank">Multitasking</a> is one of those deleterious activities that give us the illusion of doing more work at the same time. This does nothing but slows us down because the human brain has a certain latency in getting used to the change of activity. In reality, we will spend more time than we would need to do the same tasks sequentially.</p>



<h2>Compare with a colleague (Peer Review)</h2>



<p class="has-medium-font-size">Another habit that I wanted to create is that of the PeerReview of the developed code. None of us is the best developer in the world. When it comes to software development there is always something to learn from someone else. Confronting with other developers in a constructive way is always an opportunity for growth.</p>



<p class="has-medium-font-size">Peer review should not become a more expensive activity than development itself, otherwise it will lose its effectiveness. In general I try to make it very slim and divided into these phases:</p>



<ul><li><p class="has-medium-font-size">Reading the documentation you must understand how the code works.</p></li><li><p class="has-medium-font-size">Looking at the code you should check that</p><ul><li><p class="has-medium-font-size">The coding conventions are respected.</p></li><li><p class="has-medium-font-size">There are no gross errors.</p></li><li><p class="has-medium-font-size">The structure is not complicated to understand. I believe that a simple code to understand is a strength, as anyone can get their hands on it. Furthermore its maintenance over time will be easier.</p></li></ul></li></ul>



<h2>A paved road of good intentions</h2>



<figure class="wp-block-image"><img src="https://neralab.it/nera-cms/wp-content/uploads/2019/01/good_intentions-1024x683.jpg" alt="Good intentions" class="wp-image-419" srcset="https://neralab.it/nera-cms/wp-content/uploads/2019/01/good_intentions-1024x683.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2019/01/good_intentions-300x200.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2019/01/good_intentions-768x513.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><em>Photo by&nbsp;</em><a href="https://unsplash.com/photos/BkkVcWUgwEk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Justin Luebke</em></a><em>&nbsp;on&nbsp;</em><a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></figcaption></figure>



<p class="has-medium-font-size">How many times have you said or heard:</p>



<pre class="wp-block-verse has-text-align-center"><em>“Oh well, this time we had to write the code quickly but </em><br><em>next time we write the documentation and tests”</em><br></pre>



<p class="has-medium-font-size">A good habit to cultivate is to do now what you would postpone to tomorrow. We know that the next time will be like the last one if we do not decide to change.</p>



<p class="has-medium-font-size">Most of the time it takes a few minutes more to add documentation or write a test a bit more meaningful to a piece of code. We must abandon laziness to its destiny and work hard to be consistent in carrying out our work in a professional manner.</p>



<h2>Do simple things first</h2>



<p class="has-medium-font-size">When I started developing software, I used to start from the most complex tasks so that I could stay the simplest ones at the end. This allowed me, once I had passed the biggest obstacle of the difficult task, to see the remaining road downhill and then finish the development quickly.</p>



<p class="has-medium-font-size">However, this approach has a couple of drawbacks:</p>



<ul><li><p class="has-medium-font-size">The results to show to the customer will only arrive after a long time from the beginning of the development.</p></li><li><p class="has-medium-font-size">We will not see a task completed for quite some time, so psychologically heavier.</p></li></ul>



<p class="has-medium-font-size">With the passage of time, I wanted to get used to reverse the order (less than essential dependencies in the development tasks): first the easy tasks and then the complex ones.</p>



<p class="has-medium-font-size">In this way, we can give the customer something to see in a short time. If he will change the specifications, it is not said that the complex task is yet to be realized.</p>



<h2>Build the building blocks</h2>



<p class="has-medium-font-size">Another habit that I wanted to look for is to analyze the code every time I finish developing a feature or a component. Before going on with the next task, I think if it is not possible to create a slightly more generic and / or reusable version of the developed component and that maybe it can also be used in other contexts.</p>



<p class="has-medium-font-size">If the answer to this analysis is positive, I take the time to create a modular and reusable version of the component that has the least possible number of external dependencies or none.</p>



<h2>Document the code at the appropriate time</h2>



<p class="has-medium-font-size">The documentation of the code is considered by many developers an extremely boring activity. To make it more pleasant and useful (not only to those who will read the code but also to those who write it) I have established the following habit.</p>



<p class="has-medium-font-size">Whenever I am about to insert a new feature in the code, I first write its documentation. In practice I try to describe with the documentation the new functionality, its parameters and the return value.</p>



<p class="has-medium-font-size">This causes the brain to move from the code writing mode in a compulsive to a more reflective way. In this way, I can understand if the new functionality is really necessary or if I  can implement it in a different way.</p>



<p class="has-medium-font-size">The result will still be a code with a large percentage of documentation without having the burden of having to write everything at the end.</p>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2019/01/20/the-6-habits-to-improve-software-development/">The 6 habits to improve software development</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://neralab.it/nera-cms/2019/01/20/the-6-habits-to-improve-software-development/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>The 10 lessons I’ve learned to better communicate in a development team</title>
		<link>https://neralab.it/nera-cms/2018/12/20/the-10-communication-lessons-learned-to-work-better-in-a-team/</link>
					<comments>https://neralab.it/nera-cms/2018/12/20/the-10-communication-lessons-learned-to-work-better-in-a-team/#comments</comments>
		
		<dc:creator><![CDATA[photoDev]]></dc:creator>
		<pubDate>Thu, 20 Dec 2018 01:31:42 +0000</pubDate>
				<category><![CDATA[Personal Growth]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[growth]]></category>
		<category><![CDATA[lessons]]></category>
		<category><![CDATA[tips]]></category>
		<guid isPermaLink="false">http://neralab.it/?p=380</guid>

					<description><![CDATA[<p>Communication is one of the first forms of transmission of information between living beings. In its various forms: oral &#160;and written, it has contributed to the cultural growth of people. In this article, I would like to share the lessons I have learned working in different software development groups. Share your knowledge The first rule [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2018/12/20/the-10-communication-lessons-learned-to-work-better-in-a-team/">The 10 lessons I’ve learned to better communicate in a development team</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter"><img src="https://neralab.it/nera-cms/wp-content/uploads/2018/12/people-communicate.jpg" alt="Communication between people" class="wp-image-387" srcset="https://neralab.it/nera-cms/wp-content/uploads/2018/12/people-communicate.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2018/12/people-communicate-300x200.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2018/12/people-communicate-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><em>Photo by&nbsp;</em><a href="https://unsplash.com/photos/0zBJmvRpYMM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Benny Jackson</em></a><em>&nbsp;on&nbsp;</em><a href="https://unsplash.com/search/photos/people?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></figcaption></figure></div>



<p class="has-medium-font-size">Communication is one of the first forms of transmission of information between living beings. In its various forms: oral &nbsp;and written, it has contributed to the cultural growth of people.</p>



<p class="has-medium-font-size">In this article, I would like to share the lessons I have learned working in different software development groups.</p>



<hr class="wp-block-separator is-style-dots"/>



<h2>Share your knowledge</h2>



<p class="has-medium-font-size">The first rule is to share what you learn or know about a given topic. Many times I did not share what I had learned because I thought that others already knew. Nothing could be more wrong.</p>



<p class="has-medium-font-size">Sharing what you learn allows you to create growth opportunities for everyone. In other words, reporting what I had learned served me also to validate what I had understood.</p>



<h2>Keep your team in sync</h2>



<p class="has-medium-font-size">I have worked with developers located in different cities. I appreciated some Agile methodologies that promote, among other things, the exchange of information. It is important to keep everyone informed about who is doing what. This should not be seen in a negative way. Knowing that has allowed me to better organize my work. For instance, I will know who to contact for comparison or ask for an opinion. Another advantage was to avoid duplicate work or proceed in a disorganized way.</p>



<p class="has-medium-font-size">For this purpose, I have found very useful the use of some activity management tools: Kanban, Scrum boards…</p>



<h2>“Adopt a developer” game</h2>



<p class="has-medium-font-size">Many times I have worked in teams composed of figures that cover very different roles. Communication can be difficult or even interrupted, creating difficulties until the failure of a project.</p>



<p class="has-medium-font-size">This can happen because every professional figure has his own technical language / vocabulary that he uses every day. Moreover each of these figures must face and solve specific problems of his activity.</p>



<p class="has-medium-font-size">One experiment I did was to spend a day with a member of the UI Design team. We both exchanged information on how we worked and what was the most important information to have. We exchanged information on the work tools at our disposal illustrating the limits and strengths of each one.</p>



<p class="has-medium-font-size">Thanks to this we were able to find a better communication model to work more efficiently and effectively.</p>



<h2 id="ask_help">Learn to ask for help, do the right questions</h2>



<div class="wp-block-image"><figure class="aligncenter"><img src="https://neralab.it/nera-cms/wp-content/uploads/2018/12/help-1024x682.jpg" alt="" class="wp-image-388" srcset="https://neralab.it/nera-cms/wp-content/uploads/2018/12/help.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2018/12/help-300x200.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2018/12/help-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><em>Photo by&nbsp;</em><a href="https://unsplash.com/photos/6SNbWyFwuhk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>nikko macaspac</em></a><em>&nbsp;on&nbsp;</em><a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></figcaption></figure></div>



<p class="has-medium-font-size">None of us knows everything about every subject. When You are stuck on solving a problem, after some time you should ask for help. You would risk spending whole days without arriving at a solution delaying the deadline of a project.</p>



<p class="has-medium-font-size">Therefore, the most productive and wise thing to do is ask for help. Ask to a colleague or the whole team as soon as possible, perhaps at the daily stand-up meeting.</p>



<p class="has-medium-font-size">But how do you ask for help? Be careful, because otherwise, the help we receive may prove to be ineffective or completely useless.</p>



<p class="has-medium-font-size">I learned that you must describe the problem from the starting point (which was the specification to be implemented). Don&#8217;t describe only the point where you are stuck (ex: the button that does not update a form).</p>



<p class="has-medium-font-size">It is necessary to describe the context. Therefore illustrating the solution we have chosen that has led us to the insurmountable problem.</p>



<p class="has-medium-font-size">This is fundamental&nbsp;because maybe the chosen path is completely wrong. So even if we solve the single blocking problem, we would not arrive at the end of the project.</p>



<h2>Listen to help requests</h2>



<div class="wp-block-image"><figure class="aligncenter"><img src="https://neralab.it/nera-cms/wp-content/uploads/2018/12/listen-1024x683.jpg" alt="" class="wp-image-389" srcset="https://neralab.it/nera-cms/wp-content/uploads/2018/12/listen.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2018/12/listen-300x200.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2018/12/listen-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><em>Photo by&nbsp;</em><a href="https://unsplash.com/photos/ASKeuOZqhYU?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Jason Rosewell</em></a><em>&nbsp;on&nbsp;</em><a href="https://unsplash.com/search/photos/listen?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></figcaption></figure></div>



<p class="has-medium-font-size">The downside of asking questions is to be available to respond to requests for help from others. When a colleague is in trouble and asks for help, he could be told:</p>



<p class="has-text-align-center has-medium-font-size"><em>&#8220;Give me another 5 minutes and I&#8217;m from you &#8230;&#8221;</em></p>



<p class="has-medium-font-size">and you probably know what will happen. The colleague&nbsp;will wait hours before receiving help. Over time I have understood that this risks making us unreliable. In addition,&nbsp;a person who cannot keep up with his job stuck. The result is, therefore, double damage for the team.</p>



<p class="has-medium-font-size">Being available to others (obviously in a healthy way, without anyone taking advantage of it to download their work on others) brings to the team a climate of mutual support and sharing that will bear fruit over time.</p>



<p class="has-medium-font-size">Conversely, not being available will create a climate of distrust and low stimuli for information sharing. You will come to create sub-groups in the team and you will lose the strength of the group.</p>



<h2>Remember when you were a young developer</h2>



<p class="has-medium-font-size">I noticed that being patient and spending time making young people grow has an enormous value.</p>



<p class="has-medium-font-size">Having the patience to drive younger developers in the right direction will allow them to be more productive and collaborate more effectively with the rest of the team. So when someone asks for your help or simply wants an opinion on the code he wrote (because he may be less expert) give her/him the right attention.</p>



<h2>Invest 5 minutes to gain 5 millions</h2>



<p class="has-medium-font-size">The first time I worked in a team of developers and I was given a problem to solve, I started with my head down and implemented the first solution that came to mind. This solved the problem, but the solution was not always robust and / or elegant so that it could be easy to maintain over time by myself or other team members.</p>



<p class="has-medium-font-size">Over time I learned that it is very important to do an initial brainstorming with other developers who have worked on similar problems or who have a level of seniority in writing the code equal to or higher than their own.</p>



<p class="has-medium-font-size">Investing time in an initial analysis of the problem, and comparing oneself with others, helps to see the problem from multiple points of view, even completely different from each other, giving rise to solutions that were not thought of initially. This has the great advantage that the sum of experiences is not an algebraic sum, but generates much more value.</p>



<h2>When the client … “doesn’t know how to say”</h2>



<p class="has-medium-font-size">Sometimes it happens to deal with customers who do not have clear ideas from the beginning, so we start with specifics and throughout the course of development we &#8220;continuously adjust the shot&#8221; following a tortuous path of new requests to be satisfied.</p>



<p class="has-medium-font-size">The first few times I was dealing with this type of customer, I started like a rocket to develop every specification that was required and every time it was a small defeat, because there was always something that had to be changed or added.</p>



<p class="has-medium-font-size">Over time I have adopted a different technique: when you understand that you are dealing with a customer who does not know what he wants, the right approach is not to say yes to everything and develop every request, but to do questions.</p>



<p class="has-medium-font-size">Ask the motivation of each specification if you have doubts. This approach helps the client to think about the reason for his request, and tries to draw out the reasons for change of direction. Those specifications that don&#8217;t have solid foundations will disband themselves, while the others will be those that will actually be implemented.</p>



<p class="has-medium-font-size">Another technique that I have adopted with these types of customers is to illustrate one or more possible solutions to their request and to highlight their costs and benefits. This will help the client to evaluate a request and figure out if you actually worth the cost or whether it is better to postpone it to a future release. Most of the time will be accepted with a lower cost solution and further benefits that generally corresponds to that with low development time.</p>



<h2>Keep your client in the loop</h2>



<p class="has-medium-font-size">When you are not dealing with customers in the first person or you are not using an Agile development methodology, it happens that you see developers who are starting to work on a project and disappear until they have almost completely implemented the project.</p>



<p class="has-medium-font-size">This lack of control over the progress of work generates anxieties on the customer side and a high probability of failure to achieve the project objectives.</p>



<p class="has-medium-font-size">A periodic check of the progress of the work with the customer or with whom we are interfacing is essential to have very important feedback and to make it clear that the work is progressing smoothly.</p>



<h2>The thing will growth…</h2>



<p class="has-medium-font-size">Many times I have dealt with customers who come to ask to do a job by starting the sentence by saying:</p>



<p class="has-text-align-center has-medium-font-size"><em>&#8220;It&#8217;s a small job, we want to validate an idea&#8221;</em></p>



<p class="has-medium-font-size">Designing and developing the application thinking that everything runs out there, in 99% of cases it is a mistake. Most of the time it happened to me that the customer was passionate about the project and wanted to make it grow adding functionality, making it a job that was expanded even with subsequent projects.</p>



<p class="has-medium-font-size">I learned that even if you start with a small project, it is better to structure the software in as modular as possible components so that they can be replaced and re-engineered later so as to easily follow the changes of the route introduced over time. If you implement a software concept that only serves to demonstrate the idea you need to be willing to throw away what you wrote and rewrite it in a modular way if the project likes and will grow over time.</p>



<h2>Conclusions</h2>



<p class="has-medium-font-size">I have understood a couple of fundamental concepts for me:</p>



<p class="has-medium-font-size">The readability of the software is worth much more than its compactness.</p>



<p class="has-medium-font-size">Teamwork and the diversity of ideas brought by different professional cultures is priceless.</p>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2018/12/20/the-10-communication-lessons-learned-to-work-better-in-a-team/">The 10 lessons I’ve learned to better communicate in a development team</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://neralab.it/nera-cms/2018/12/20/the-10-communication-lessons-learned-to-work-better-in-a-team/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>nEraLab Presentation</title>
		<link>https://neralab.it/nera-cms/2018/03/19/neralab/</link>
		
		<dc:creator><![CDATA[photoDev]]></dc:creator>
		<pubDate>Mon, 19 Mar 2018 18:04:22 +0000</pubDate>
				<category><![CDATA[Team]]></category>
		<category><![CDATA[team]]></category>
		<guid isPermaLink="false">http://neralab.it/nera-cms/?p=322</guid>

					<description><![CDATA[<p>Photo by Joshua Earle on Unsplash Presentation of the new site The first article of the blog I wanted it to be the presentation of the new look of the site and the mission I gave myself starting from the name of my project: nEraLab. I’ve decided that was the moment to change the previous [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2018/03/19/neralab/">nEraLab Presentation</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="322" class="elementor elementor-322" data-elementor-settings="[]">
						<div class="elementor-inner">
							<div class="elementor-section-wrap">
							<section class="elementor-section elementor-top-section elementor-element elementor-element-fd16b16 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fd16b16" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
							<div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f12f5b5" data-id="f12f5b5" data-element_type="column">
			<div class="elementor-column-wrap elementor-element-populated">
							<div class="elementor-widget-wrap">
						<div class="elementor-element elementor-element-2a0c7d8 elementor-widget elementor-widget-image" data-id="2a0c7d8" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
								<div class="elementor-image">
												<img width="850" height="566" src="https://neralab.it/nera-cms/wp-content/uploads/2018/03/Toward-the-infinite-1024x682.jpg" class="attachment-large size-large" alt="Next steps in the our life&#039;s journey" srcset="https://neralab.it/nera-cms/wp-content/uploads/2018/03/Toward-the-infinite-1024x682.jpg 1024w, https://neralab.it/nera-cms/wp-content/uploads/2018/03/Toward-the-infinite-300x200.jpg 300w, https://neralab.it/nera-cms/wp-content/uploads/2018/03/Toward-the-infinite-768x512.jpg 768w, https://neralab.it/nera-cms/wp-content/uploads/2018/03/Toward-the-infinite.jpg 1280w" sizes="(max-width: 850px) 100vw, 850px" />														</div>
						</div>
				</div>
						</div>
					</div>
		</div>
								</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-db50c31 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="db50c31" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
							<div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d8b2d21" data-id="d8b2d21" data-element_type="column">
			<div class="elementor-column-wrap elementor-element-populated">
							<div class="elementor-widget-wrap">
						<div class="elementor-element elementor-element-a57bc2e elementor-widget elementor-widget-text-editor" data-id="a57bc2e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
								<div class="elementor-text-editor elementor-clearfix">
					<p style="margin-bottom: 0px; font-style: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: 'Baskerville SemiBold'; color: #5b5854; -webkit-text-stroke-width: initial; -webkit-text-stroke-color: #5b5854;"><span style="font-style: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Baskerville; -webkit-font-kerning: none; color: #111111; -webkit-text-stroke-color: #111111;"><b>Photo by </b><a href="https://unsplash.com/photos/8MbdD0pHXGY?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><span style="text-decoration: underline; -webkit-font-kerning: none; color: #5b5854; -webkit-text-stroke-color: #5b5854;"><b>Joshua Earle</b></span></a><b> on </b><a href="https://unsplash.com/@joshuaearle?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><span style="text-decoration: underline; -webkit-font-kerning: none; color: #5b5854; -webkit-text-stroke-color: #5b5854;"><b>Unsplash</b></span></a></span></p>					</div>
						</div>
				</div>
						</div>
					</div>
		</div>
								</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-313bb66 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="313bb66" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
							<div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7a5ae75" data-id="7a5ae75" data-element_type="column">
			<div class="elementor-column-wrap elementor-element-populated">
							<div class="elementor-widget-wrap">
						<div class="elementor-element elementor-element-2e0689b elementor-widget elementor-widget-heading" data-id="2e0689b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Presentation of the new site</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-7711163 elementor-widget elementor-widget-text-editor" data-id="7711163" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
								<div class="elementor-text-editor elementor-clearfix">
					<p>The first article of the blog I wanted it to be the presentation of the new look of the site and the mission I gave myself starting from the name of my project: nEraLab.</p><p>I’ve decided that was the moment to change the previous site (plain-HTML) into one with the possibility to have also a blog. I would like to tell the reader all the experiences of this journey describing the birth of the developed applications. This will allow the clients (actual and potentials) to know better the products available into the site. I consider the user as the most important  part of a project. To have feedbacks and understand how a product can be improved giving the user more value is fundamental. This give me a big satisfaction.</p><p>I wanted for the new site a simple structure. It has a single initial page, so to enhance the developed applications and the last blog articles. Sometimes it&#8217;s difficult to summarize <span style="font-size: 14px; font-style: normal;">in an AppStore description </span><span style="font-size: 14px;">the reasons that led to the development of an application or its strengths. This can be done instead with a blog post, which is designed to deepen and explain to users the choices made in the implementation phase.</span></p>					</div>
						</div>
				</div>
						</div>
					</div>
		</div>
								</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-9e17722 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9e17722" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
							<div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f848bbf" data-id="f848bbf" data-element_type="column">
			<div class="elementor-column-wrap elementor-element-populated">
							<div class="elementor-widget-wrap">
						<div class="elementor-element elementor-element-c9d1067 elementor-widget elementor-widget-heading" data-id="c9d1067" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">The journey to nEraLab</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-82bfe5b elementor-widget elementor-widget-text-editor" data-id="82bfe5b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
								<div class="elementor-text-editor elementor-clearfix">
					<p>We come now to <span style="color: #b4243c;"><a style="color: #b4243c; text-decoration: underline;" href="http://neralab.it"><b>nEraLab</b></a></span>, when it was born and why. A few years ago, it was 2009, with a friend of mine we had set up the MitAPP project. It was focused on mobile development for the Apple devices. We had started almost as a game and within 6 months we found ourselves overwhelmed with requests for iPhone applications. All this without the use of advertising or paid marketing but simply through the word of mouth of the customers.</p><p>A couple of years later, MitAPP has been acquired by a small Italian company. Unfortunately, in just over a year everything ended with the definitive closure of the company.</p><p>I’ve continued to carry on my software development activity on C++, Python and Javascript/NodeJS. After another year, the desire to get involved in something challenging has come back overwhelmingly.</p><p><a style="font-size: 14px; font-style: normal; color: #b4243c; text-decoration: underline;" href="http://neralab.it"><span style="font-weight: bold;">nEraLab</span></a> (new Era Laboratory) is born. A new era of my <b>life</b>, in which to work on the development of applications designed by me. The idea is to develop useful products that make users’ lives more <strong>efficient</strong> and <strong>easier</strong>.</p>					</div>
						</div>
				</div>
						</div>
					</div>
		</div>
								</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-49d27f0 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="49d27f0" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
							<div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-57a0a33" data-id="57a0a33" data-element_type="column">
			<div class="elementor-column-wrap elementor-element-populated">
							<div class="elementor-widget-wrap">
						<div class="elementor-element elementor-element-3134523 elementor-widget elementor-widget-heading" data-id="3134523" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Brief description of the products</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-ab87cfc elementor-widget elementor-widget-text-editor" data-id="ab87cfc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
								<div class="elementor-text-editor elementor-clearfix">
					<b><span style="text-decoration: underline;"><a href="http://neralab.it/nera-cms/products/font-studio"><span style="color: #b4243c; text-decoration: underline;">Font</span></a><a href="http://neralab.it/nera-cms/products/font-studio"><span style="color: #b4243c; text-decoration: underline;"> Studio</span></a></span></b> is the first product developed. It borns from a practical need to choose the right font for a text. Instead of repeatedly applying different formatting to a selected text, Font Studio displays the text with all the fonts available on your Mac. This drastically <b>reduces</b> the <b>time</b> to choose the right font.

Another example is the iPhone and Apple Watch application: <span style="text-decoration: underline;"><b><a href="http://neralab.it/nera-cms/products/on-this-day"><span style="color: #b4243c; text-decoration: underline;">What’s Happened On This Day</span></a></b></span>. It was born at the time of the presentation of the first Apple Watch version. I wanted to create something that had to do with <b>time</b> and at the same time was <b>informative</b>. It shows the events that occurred in the past years corresponding to the today’s day. It is a sort of time machine that allows us to remember past events and anniversaries.

I then devised the <span style="color: #b4243c;"><b><u><a style="color: #b4243c;" href="http://neralab.it/nera-cms/products/kronos">Kronos Time Tracker</a></u></b></span> to keep track of application development time and costs in the <b>easiest</b> and most agile without too many frills.

In applications and more in general in the software development, I’ve always believed that simplicity was a strong point and not a weakness. When things are simple, people learn them quickly, use them easily and developers manage them quickly.					</div>
						</div>
				</div>
						</div>
					</div>
		</div>
								</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-05969c4 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="05969c4" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
							<div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1423629" data-id="1423629" data-element_type="column">
			<div class="elementor-column-wrap elementor-element-populated">
							<div class="elementor-widget-wrap">
						<div class="elementor-element elementor-element-3577931 elementor-widget elementor-widget-heading" data-id="3577931" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Other posts that may be of interest</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-4304ba0 elementor-widget elementor-widget-text-editor" data-id="4304ba0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
								<div class="elementor-text-editor elementor-clearfix">
					<ul><li><a href="https://neralab.it/2021/03/04/new-book-presenting-a-practical-approach-on-design-patterns/"><span style="color: #ff0000;"><strong><span style="text-decoration: underline;"><span style="color: #b4243c; text-decoration: underline;">New book presenting a practical approach on design patterns</span></span></strong></span></a></li></ul>					</div>
						</div>
				</div>
						</div>
					</div>
		</div>
								</div>
					</div>
		</section>
						</div>
						</div>
					</div>
		<p>The post <a rel="nofollow" href="https://neralab.it/nera-cms/2018/03/19/neralab/">nEraLab Presentation</a> appeared first on <a rel="nofollow" href="https://neralab.it/nera-cms">nEraLab - Mobile and desktop Development</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
