<?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>Solutions &#8211; Polarising</title>
	<atom:link href="https://polarising.com/category/solutions/feed/" rel="self" type="application/rss+xml" />
	<link>https://polarising.com</link>
	<description>Nearshore Teams For Expert IT Services</description>
	<lastBuildDate>Mon, 27 Jun 2022 14:52:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://polarising.com/site21/wp-content/uploads/2025/06/cropped-LOGO-05-32x32.png</url>
	<title>Solutions &#8211; Polarising</title>
	<link>https://polarising.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>5000 automated tests and the project failed! Why?</title>
		<link>https://polarising.com/5000-automated-tests-and-the-project-failed-why/</link>
					<comments>https://polarising.com/5000-automated-tests-and-the-project-failed-why/#respond</comments>
		
		<dc:creator><![CDATA[Márcia Catarino]]></dc:creator>
		<pubDate>Mon, 11 Jan 2021 19:15:14 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=38496</guid>

					<description><![CDATA[This is the story of how one of my previous teams has built a software and delivered all its features to the client. My team was technically strong, so they have decided that the testing strategy&#160;would include&#160;only automatic tests. The scope of the project was&#160;initially closed. So, the risk that [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This is the story of how one of my previous teams has built a software and delivered all its features to the client.</p>



<p class="wp-block-paragraph">My team was technically strong, so they have decided that the <strong>testing strategy&nbsp;would include&nbsp;only automatic tests</strong>. The scope of the project was&nbsp;initially closed. So, the risk that tests would have to be reimplemented&nbsp;was low, because of the change requests. This was a good start.</p>



<p class="wp-block-paragraph">To make the tests implementation faster, <strong>automatic tests were immediately developed for every component</strong>. By doing so, whether it was an API, screen, event consumer, bpm process, or other, the backlog item was instantly closed. How wonderful!</p>



<p class="wp-block-paragraph">The team implemented&nbsp;<strong>more than&nbsp;5000 automatic tests</strong>, correcting some issues. And we delivered&nbsp;the project to&nbsp;the client for the User Acceptance Testing.&nbsp;We&nbsp;were confident that this would be a success!</p>



<p class="wp-block-paragraph">A few days’ time, we started getting not so good news… in fact, bad news. Some<strong> bugs were found</strong>, there were several <strong>unmet requirements</strong>, problems in <strong>processes that included more than one component</strong>, and some status machine had issues. Finally, some solutions met the requested requirements, but <strong>some requirements no longer made sense to the customer</strong>.</p>



<p class="wp-block-paragraph">We were stunned; we had implemented automatic tests for all the components. Why had this strategy failed causing so many problems?</p>



<p class="wp-block-paragraph">To answer that question, we needed to <strong>analyse the methodology</strong> used to manage the project scope and its deliveries. And the <strong>test strategy</strong>.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="800" height="600" src="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem2-marcia.png" alt="automated testing" class="wp-image-38502" srcset="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem2-marcia.png 800w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem2-marcia-300x225.png 300w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem2-marcia-768x576.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">So, we <strong>went through all the requirements with the client</strong>. It looked like everything was perfect, but because we hadn’t done this in the first place, we caused ourselves some problems:</p>



<ul class="wp-block-list"><li><strong>Some requirements no longer made sense for the client when we implemented them</strong>. If we had reviewed them with the client, we would probably conclude that other requirements would make more sense, or the same ones but with some differences.</li><li><strong>How could some requirements not be being met, despite having implemented a solution for those requirements?</strong> Because in the beginning of the project we did not understand the real needs and pains of the client (we thought we had!). If the topics had been revisited during the project, we could have had a better understanding of their needs and more knowledge on their business. Continuous communication with the client allows us to understand their real pains.</li><li><strong>We developed the project using sprints,&nbsp;but we&nbsp;only delivered all features to&nbsp;the&nbsp;client in the end of project</strong>. Hence, we did not receive any feedback&nbsp;during all&nbsp;the&nbsp;development phase,&nbsp;and because of that we didn’t adjust&nbsp;the features to the client’s real requirements.</li></ul>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Automate didn’t kill manual tests.  </h2>



<p class="wp-block-paragraph">So, about the test strategy, we made a huge mistake: to believe that having almost <strong>100% coverage of Automatic Unit Tests</strong> (functional tests) would result in almost zero bugs. We were so naive!</p>



<p class="wp-block-paragraph"><strong>When we automate tests we need to ensure that the test is correctly implemented and really tests the requirement</strong>. When this is done by the person that develops the feature, then tests are influenced by this person’s knowledge about the implementation, and not by the requirements.</p>



<p class="wp-block-paragraph">For example, if the developer misunderstood&nbsp;a business rule&nbsp;or implemented&nbsp;it&nbsp;wrongly,&nbsp;the test that he’ll implement will be according to&nbsp;his&nbsp;understanding,&nbsp;so it will be wrong&nbsp;and&nbsp;it won’t&nbsp;<strong>validate&nbsp;the business rule when&nbsp;executed</strong>.</p>



<p class="wp-block-paragraph">If another person implements the test, they will look for the business rule specification and do the test without being influenced by its implementation.</p>



<p class="wp-block-paragraph">If the test is not correctly implemented, this is not an issue because it will fail when executed. Someone will analyse the feature (and the test) and will fix the component with problems.</p>



<p class="wp-block-paragraph">On the other hand, <strong>unit tests are not enough</strong>. Integration tests and system tests are essential to ensure that the system works holistically. Even so, testing each component singly with a 100% coverage, does not mean that the system has no bugs.</p>



<p class="wp-block-paragraph"><img decoding="async" width="800" height="600" class="alignnone wp-image-38505 size-full" src="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem5-marcia.jpg" alt="shopping list" srcset="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem5-marcia.jpg 800w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem5-marcia-300x225.jpg 300w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem5-marcia-768x576.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">In fact, there are still <strong>bugs that can exist</strong>, like errors on&nbsp;the design or specification,&nbsp;incorrect assumptions about the meaning, units, or boundaries of the data being passed between,&nbsp;failures in&nbsp;message interpretation&nbsp;between systems, or other.</p>



<p class="wp-block-paragraph">To mitigate this,&nbsp;every time&nbsp;an interaction between two components, systems, packages or microservices&nbsp;is&nbsp;developed,&nbsp;a set of integration tests must be executed.&nbsp;<strong>These&nbsp;tests are&nbsp;strong candidates to automation.&nbsp;</strong></p>



<p class="wp-block-paragraph">Even&nbsp;when all integrations are working, the system testing&nbsp;must be executed&nbsp;because&nbsp;it&nbsp;“<strong>focuses&nbsp;on the behaviour and capabilities of a whole system or product</strong>”, validating that the system is complete and all processes work as expected.</p>



<p class="wp-block-paragraph">For example, in a state machine implementation, sometimes some non-final statuses are forgotten and the transition event is not implemented. Other example is in event-driven systems, when sometimes an event is produced but no service consumes it and the process remains unfinished.</p>



<p class="wp-block-paragraph"><strong>These kind of problems are usually found by executing system testing</strong>. These are the most important tests for any business, in my opinion. As <a href="https://www.istqb.org/downloads/send/2-foundation-level-documents/281-istqb-ctfl-syllabus-2018-v3-1.html" target="_blank" rel="noopener"><strong>ISTQB syllabus</strong></a> teaches us, testing includes checking whether the system meets specified requirements, but not only. It also involves <strong>validating whether the system will meet the client and its business needs</strong> in their operational environment(s). We need to understand if one process or functionality makes sense and works end-to-end.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">What knowledge base to use? </h2>



<figure class="wp-block-image"><img decoding="async" width="800" height="600" src="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem3-marcia.png" alt="automated testing strawberry" class="wp-image-38503" srcset="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem3-marcia.png 800w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem3-marcia-300x225.png 300w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem3-marcia-768x576.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Automatic testing&nbsp;is&nbsp;a strong&nbsp;testing&nbsp;tool</strong>,<strong>&nbsp;but it cannot&nbsp;replace all manual tests</strong>.&nbsp;We need to evaluate the&nbsp;whole system&nbsp;characteristics and environment to understand what&nbsp;tests&nbsp;we should execute manually, and what tests we should automate.</p>



<p class="wp-block-paragraph">To decide the test strategy it&#8217;s important to understand the advantages and disadvantages of each approach.</p>



<p class="wp-block-paragraph"><strong>Manual testing is a knowledge science activity that includes&nbsp;human judgment</strong> and capacity to analyse if something makes sense. If we do not execute manual testing, we lose the advantage of experience-based test techniques, and the human capacity to analyse if the solution makes sense for the business and meets the requirements.</p>



<p class="wp-block-paragraph">Manual testing give us a chance to find extra bugs&nbsp;that&nbsp;automated tests would never find,&nbsp;because it allows us to follow&nbsp;that gut feeling that “something smells bad”&nbsp;and explore&nbsp;themes that may not have been tested or required.</p>



<p class="wp-block-paragraph"><strong>Even when&nbsp;we&nbsp;decide to implement automated testing,&nbsp;we&nbsp;should&nbsp;test the software manually </strong>before&nbsp;running&nbsp;the automated&nbsp;tests. First, to&nbsp;be&nbsp;sure that automation is possible, and then to ensure that&nbsp;this automation&nbsp;is correct.</p>



<p class="wp-block-paragraph"><strong>Automated testing is an&nbsp;exact&nbsp;science that ensures accurate results.</strong> It is software testing other software.</p>



<p class="wp-block-paragraph">Testing a new feature manually could be&nbsp;fun, but testing the same features time and time again to prevent regression issues&nbsp;can be demotivating,&nbsp;leading to frustration and wasting time. That is why regression tests&nbsp;automation is&nbsp;a very important mechanism to<strong> save money and spare the test team</strong>.</p>



<p class="wp-block-paragraph">And how about performance and load tests? It is insane to execute those tests manually! You could try but you’ll take a lifetime,&nbsp;and probably the tests won´t be accurate and the test coverage will be smaller.&nbsp;<strong>The greater the software and the more stable the feature scope, the greater&nbsp;value of testing automation.</strong></p>



<p class="wp-block-paragraph"><strong>When&nbsp;a part of&nbsp;the testing process is automated, you have many advantages</strong>:</p>



<ul class="wp-block-list"><li>The productivity increases because the test execution is faster.</li><li>Your confidence grows since you’re more reliable&nbsp;and&nbsp;error&nbsp;proofing.</li><li>Your team is more&nbsp;efficient&nbsp;because the tests after implementation are repeatable without human intervention, and the team can use their energy on non-automated tasks.</li></ul>



<p class="wp-block-paragraph">Check the following table to see when each test is more suitable:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="800" height="600" src="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem4-marcia.jpg" alt="tests table" class="wp-image-38504" srcset="https://polarising.com/site21/wp-content/uploads/2021/01/Imagem4-marcia.jpg 800w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem4-marcia-300x225.jpg 300w, https://polarising.com/site21/wp-content/uploads/2021/01/Imagem4-marcia-768x576.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Bet your money on the right testing.</h2>



<p class="wp-block-paragraph">So, the one-million-dollar answer to the question on how 5000 automated tests were made and the project failed is simple: <strong>the test strategy was wrong!</strong></p>



<p class="wp-block-paragraph">We need to find the <strong>right balance between automated and manual testing</strong>, because each one&nbsp;has&nbsp;strengths and weaknesses. Their value only exists when they are applied in the right environment.</p>



<p class="wp-block-paragraph">As<strong> an agile company</strong>,&nbsp;Polarising implements automated tests to<strong>&nbsp;save teams, time, </strong>and&nbsp;above all,<strong>&nbsp;to&nbsp;deliver high-quality software</strong>. However, to ensure that the solutions bring value and are the right ones to your business requirements, manual tests are also performed.</p>



<p class="wp-block-paragraph"><strong>Márcia Catarino</strong><br><strong>Business Analyst</strong></p>



<p class="wp-block-paragraph"><strong>Links</strong><br><a href="https://www.testim.io/blog/test-automation-vs-manual-testing/" target="_blank" rel="noopener">https://www.testim.io/blog/test-automation-vs-manual-testing/</a><br><a href="https://www.guru99.com/difference-automated-vs-manual-testing.html" target="_blank" rel="noopener">https://www.guru99.com/difference-automated-vs-manual-testing.html</a><br><a href="https://www.testingcompany.com.br/blog/teste-manual-de-software/" target="_blank" rel="noopener">https://www.testingcompany.com.br/blog/teste-manual-de-software/</a><br><a href="http://www.tecnisys.com.br/noticias/2019/teste-manual-vs-teste-automatizado" target="_blank" rel="noopener">http://www.tecnisys.com.br/noticias/2019/teste-manual-vs-teste-automatizado</a><br><a href="https://www.softwaretestingmaterial.com/automation-testing-vs-manual-testing/" target="_blank" rel="noopener">https://www.softwaretestingmaterial.com/automation-testing-vs-manual-testing/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/5000-automated-tests-and-the-project-failed-why/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Are you AGILE or just a Wannabe?</title>
		<link>https://polarising.com/are-you-agile-or-just-a-wannabe/</link>
					<comments>https://polarising.com/are-you-agile-or-just-a-wannabe/#respond</comments>
		
		<dc:creator><![CDATA[Joana Carneiro]]></dc:creator>
		<pubDate>Thu, 15 Oct 2020 08:13:04 +0000</pubDate>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=38233</guid>

					<description><![CDATA[In an everyday faster world, all of us, people and companies, feel the urge of being also faster. But it’s not enough to be faster, you need to be effective, efficient, and goal driven. So, this impels you to be highly adaptable, to be agile. But… what does it mean [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In an everyday faster world, all of us, people and companies, feel the urge of being also faster. But it’s not enough to be faster, you need to be effective, efficient, and goal driven. So, this impels you to be highly adaptable, to be <strong>agile</strong>. But… <strong>what does it mean to be agile in a company, in a team, in a project, in a task?</strong></p>
<p>To be agile you must focus on several elements such as the continuous <strong>value of your product</strong>, the <strong>constant adaptability</strong> to changes in the requirements, the <strong>capability of delivery</strong> on a short term, the <strong>interaction between all the project actors</strong>, the end-users and the self-management competence of the teams, among others.</p>
<p>Well, now you kind of know what is to be agile… but do you know how to make sure that you are really doing it?</p>
<p>And please, don’t answer that you “just know” because you feel you are a “flexible and fast thinker” … This is not a job interview, and believe me, when you need to justify to the company board why Agile is the way to go you will need data, numbers, facts! <strong>Because information is power</strong>.</p>
<p>&nbsp;</p>
<h3>Be multidimensionally agile.</h3>
<p>First you need to know what to measure exactly, and for that you must understand for which <strong>dimensions the Agile methodology looks for in a company</strong> and how those dimensions are impacted and, subsequently, <strong>how to evaluate or measure them</strong>.</p>
<p>There are <strong>four dimensions</strong> impacted by Agile and each one of these dimensions will be the platform to check different pulses:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38235 size-full" src="https://www.polarising.com/site/wp-content/uploads/2020/10/Metricas-ageis-Imagem-1.png" alt="" width="645" height="643" srcset="https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-1.png 645w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-1-300x300.png 300w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-1-150x150.png 150w" sizes="auto, (max-width: 645px) 100vw, 645px" /></p>
<p>Let’s start with <strong>Business</strong>. Here you will measure effectiveness by assessing how your delivery is reaching the goal. We could make a giant list of agile metrics, but let’s keep it simple!</p>
<p>Choose a major question instead: <strong>Are you solving the business needs?</strong> The Fitness For Purpose Score is a good way to check that. You must understand the customer’s purpose for consuming what you’re offering. Then, you can create the appropriate fitness criteria metrics. You can set this score, considering: <strong>Net Fitness Score [NFS] = % satisfied customers – % dissatisfied customers</strong></p>
<p>Another valuable metrics for effectiveness are the Pirate Metrics: acquisition, activation, retention, referral, and revenue. Maybe you will encounter some products where some of these indicators won’t fit, just apply the ones that do. Check this cool illustration to help you understand these 5 steps really quick:</p>
<p>&nbsp;</p>
<h6><img loading="lazy" decoding="async" class="alignnone wp-image-38236 size-full" src="https://www.polarising.com/site/wp-content/uploads/2020/10/Metricas-ageis-Imagem-2.png" alt="" width="825" height="622" srcset="https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-2.png 825w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-2-300x226.png 300w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-2-768x579.png 768w" sizes="auto, (max-width: 825px) 100vw, 825px" /></h6>
<h6><em>Image: Startup Metrics for Pirates by Dave McClure</em></h6>
<p>&nbsp;</p>
<p>Let’s now travel to the next dimension: <strong>Organizational</strong>, where you will measure efficiency. This is the moment to put your team under the microscope and evaluate their overall performance.</p>
<p>One of the most important agile metrics that will help you do this is the Lead Time: <strong>how long are you taking from “To Do” to “Done”?</strong> This is one of the easiest, simplest, and accurate metrics you can use, especially when you are supporting your tasks management with Kanban methodology:</p>
<p>&nbsp;</p>
<h6><img loading="lazy" decoding="async" class="alignnone wp-image-38238 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/10/Metricas-ageis-Imagem-3-1024x442.png" alt="" width="1024" height="442" srcset="https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-3-1024x442.png 1024w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-3-300x130.png 300w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-3-768x332.png 768w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-3.png 1197w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><br />
<em>Image: Kanban Board</em></h6>
<p>&nbsp;</p>
<p>You can apply the metric to the total time from the point of agreement to the point of delivery and/or to how long the tasks/features last in each phase. It’s also important to verify the <strong>Waiting Time</strong> (how long an item continues between the conclusion of one phase to the next one).</p>
<p>You should associate the <strong>Lead Time</strong> with others like, WIP (Work in Progress) and <strong>Throughput.</strong> The WIP considers what is “Ongoing” but also the tasks from “To Do” to “Done”. By attending to this you will help your team to focus on finishing the tasks already started before starting new ones.</p>
<p>The Throughput will tell you the average work units per time units. It will help you, for instance, to know how many items your team can deliver in a week and if that number is increasing or decreasing through the life cycle of the project (so you can identify either possible blockers and facilitators of their workflow).</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38239 size-full" src="https://www.polarising.com/site/wp-content/uploads/2020/10/Metricas-ageis-Imagem-4.png" alt="" width="671" height="407" srcset="https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-4.png 671w, https://polarising.com/site21/wp-content/uploads/2020/10/Metricas-ageis-Imagem-4-300x182.png 300w" sizes="auto, (max-width: 671px) 100vw, 671px" /></p>
<h6><em>Image: The Lead Time is improved by shrinking the WIP</em></h6>
<p>&nbsp;</p>
<p>Let’s now check the <strong>Technical</strong> dimension to see the excellency of your work. Meaning: <strong>does your team works fast, but has the result real quality?</strong></p>
<p>The measures you use here are known and not exclusive of Agile: how many bugs do you have? How much of the product do your tests cover? And what about the infrastructure? Is it robust enough to support your product? Does your code have 15.000 lines that you just realized that aren’t used for anything?</p>
<p>If you work for an IT company and still need explanation on how to measure this, maybe you should rethink your career … just kidding! (no… for real, question yourself!)</p>
<p>For last, but not (at all) the least, we imperatively must look at the <strong>Cultural</strong> dimension to check the ecosystem. <strong>To be agile your organizational culture must be agile.</strong> There is no way to jump this step.</p>
<p>How happy is your team, the organization in general, the project participants? Is it even possible to measure emotions? Oh yeah! For instance, through Burnout Tests or the Happiness Radar, using just a simple white board where your team members can mark the areas they&#8217;re happy, neutral or unhappy about. Ok, it’s a little corny, but I’ll take my chances… just feel your team’s heart!</p>
<p><img loading="lazy" decoding="async" class="wp-image-38240 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/10/Metricas-ageis-Imagem-4-1024x737.jpg" alt="" width="1024" height="737"></p>
<h6><em>Image: Hapiness Radar</em></h6>
<p>&nbsp;</p>
<h3><strong>Don&#8217;t be just any agile-cherry on top.</strong></h3>
<p>As you can see you have many metrics to check up your agility (and we are just giving you a few examples), so please don’t go crazy and megalomaniac and start applying every metric you know every step of the way!</p>
<p>Last piece of advice, simply follow these <strong>two rules</strong>:</p>
<p>1 – Be aware of toxic metrics: don’t start measuring a team member or comparing teams. This will only undermine your environment. <strong>Promote collaboration, not competition.</strong></p>
<p>2 &#8211; Take it easy, understand which metrics make more sense to your team/project/product and <strong>start your own agility barometer!</strong></p>
<p>Now, you are ready to go.</p>
<p><strong>Dulce Monteiro</strong><br />
<strong>Polarising Business Analyst</strong></p>
<p>Contact Polarising for tech that works: <a href="mailto:info@polarising.com">info@polarising.com</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/are-you-agile-or-just-a-wannabe/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How is Collaboration improving your Team Workflows?</title>
		<link>https://polarising.com/how-is-collaboration-improving-your-team-workflows/</link>
					<comments>https://polarising.com/how-is-collaboration-improving-your-team-workflows/#respond</comments>
		
		<dc:creator><![CDATA[Joana Carneiro]]></dc:creator>
		<pubDate>Wed, 26 Aug 2020 11:02:12 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=38156</guid>

					<description><![CDATA[Times are challenging and many Organizations are taking the momentum to re-think their processes and working strategies. Teams must be Collaborative. Now more than ever, choosing the right collaboration model is imperative to create Automation procedures, and technical teams are responsible by evaluating and propose the best approach. The market [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Times are challenging and many Organizations are taking the momentum to re-think their processes and working strategies. Teams must be Collaborative. Now more than ever, choosing the right collaboration model is imperative to create Automation procedures, and technical teams are responsible by evaluating and propose the best approach.</p>
<p>The market is competitive but there are some more “resilient” collaboration tools than others. In 2005 Linus Torvalds presented to the world a new distributive source-control management (SCM), which he named <strong><em>git</em></strong>. A few years later it has become the most adopted SCM in the world, dethroning some of the most popular ones, such as SVN or CVS.</p>
<p>Nowadays, <strong><em>git</em></strong> is primary a hosting provider for large companies like Microsoft, GitHub, Gitlab, Bitbucket and it is used by millions of users every minute. This <a href="https://www.youtube.com/playlist?list=PL0M0zPgJ3HSesuPIObeUVQNbKqlw5U2Vr" target="_blank" rel="noopener">video series</a> from Scott Hanselman is very complete, if you have a chance, watch it.</p>
<p>&nbsp;</p>
<h3><strong>There are tools and Git Workflows.</strong></h3>
<p>There are several collaboration strategies; from the simplest one where every member of the team commits to the same branch, to a more structured workflow approach, such as the notorious <strong>Gitflow</strong>.</p>
<p>Most community collaboration projects follow a Fork and Pull Request (PR): the user creates a copy of the project to themselves, implementing the fix or adding a feature, to finally create a PR to the origin repository that the owner(s) can accept, request changes or reject.</p>
<p>But the <a href="https://docs.gitlab.com/ee/topics/gitlab_flow.html" target="_blank" rel="noopener">GitLab flow</a> and the <a href="https://guides.github.com/introduction/flow/" target="_blank" rel="noopener">GitHub flow</a> are both intended to simplify the workflow, making it more “agile” in continuous deployment models. Atlassian has a <a href="https://www.atlassian.com/git/tutorials/comparing-workflows" target="_blank" rel="noopener">nice article</a> comparing several models, including the Centralized Workflow, Feature Branch Workflow and the Forking Workflow.</p>
<p>&nbsp;</p>
<h3><strong>Go with the Gitflow.</strong></h3>
<p>The<strong> Gitflow</strong> workflow model was proposed by Vincent Driessen in 2010 and ten years later it is one of the most used models by development teams. Its core resides on multiple branches with suggestive naming and semantic meaning.</p>
<p><a href="https://nvie.com/posts/a-successful-git-branching-model/" target="_blank" rel="noopener"><em><img loading="lazy" decoding="async" class="alignnone wp-image-38163 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/08/git-model@2x-1-773x1024.png" alt="" width="773" height="1024" srcset="https://polarising.com/site21/wp-content/uploads/2020/08/git-model@2x-1-773x1024.png 773w, https://polarising.com/site21/wp-content/uploads/2020/08/git-model@2x-1-226x300.png 226w, https://polarising.com/site21/wp-content/uploads/2020/08/git-model@2x-1-768x1018.png 768w, https://polarising.com/site21/wp-content/uploads/2020/08/git-model@2x-1.png 1150w" sizes="auto, (max-width: 773px) 100vw, 773px" /></em></a></p>
<p><span style="font-size: 10pt;"><em>Image from </em><a href="https://nvie.com/posts/a-successful-git-branching-model/" target="_blank" rel="noopener"><em>nvie.com</em></a></span><strong> </strong></p>
<p>&nbsp;</p>
<h3><strong>Main and Supporting Branches.</strong></h3>
<p>There are two main branches In Gitflow: <strong>master</strong> and <strong>develop</strong>. The <strong>master</strong> branch is considered when the code is ready-to-go to production and it’s the root of all truth.  As to the <strong>develop</strong> branch, it is considered as the current state of the project development.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38164 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/08/branching-Page-1-1024x386.png" alt="" width="1024" height="386" srcset="https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-1-1024x386.png 1024w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-1-300x113.png 300w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-1-768x290.png 768w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-1.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>When the release management establishes that development is finished or the developed features are Done (i.e. respects the project definition of done, passes the tests, etc), a new Release should be made by merging the code from the <strong>develop</strong> branch into the <strong>release branch, </strong>do some maintenance task and then merge into <strong>master</strong> branch, usually through a pull request.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38165 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/08/branching-Page-2-1024x653.png" alt="" width="1024" height="653" srcset="https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-2-1024x653.png 1024w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-2-300x191.png 300w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-2-768x490.png 768w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-2.png 1123w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>There are three more supporting branches from the original model, like Feature branches, Release branches and Hotfix branches:</p>
<p><strong>Feature</strong> branches are the ones that reflect the application development features, like bug fixes or project work items, that will not break the application day to day activities.  If it is something with serious impact on production, you should consider using the Hotfix branches. Once the feature is done the code is merged into the <strong>develop</strong> branch through a pull request and all remaining feature branches should sync with it to import the latest changes.</p>
<p><strong>Released</strong> branches are created from the <strong>develop</strong> branch and reflect a new release version to be prepared. Within this branch, several activities like bumping the release version are in order. Once the release is closed and considered done, the code is merged into the <strong>master</strong> branch as this version is on production environment.</p>
<p>Finally, the <strong>Hotfix</strong> branches is where critical application errors or bugs are going to be fixed. Once implemented the are merged into the <strong>master</strong> branch so they can be deployed into production environment and then into the <strong>develop</strong> branch, so the fix would be integrated into all in progress developments.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38166 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/08/branching-Page-3-1024x363.png" alt="" width="1024" height="363" srcset="https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-3-1024x363.png 1024w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-3-300x106.png 300w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-3-768x272.png 768w, https://polarising.com/site21/wp-content/uploads/2020/08/branching-Page-3.png 1123w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p>Vincent Driessen also makes available in his <a href="https://github.com/nvie/gitflow" target="_blank" rel="noopener">GitHub repository</a> a collection of git extensions to provide repository actions to relate to Gitflow mode.</p>
<p>&nbsp;</p>
<h3><strong>Why using a Collaborative Model?</strong></h3>
<p>Choosing your team collaborative model should be a thoughtful decision that needs to also consider the release management model. But most important, this model must adapt to the project needs, always having in mind that there is no such thing as a model that fits all.</p>
<p>A structured and defined released model makes any collaboration model simpler, turning CI/CD pipelines more effective. The more chaotic the release model you select, the more complex it will be the collaboration flow model, and in these cases I recommend an extra branch called <strong>prerelease</strong> branches.</p>
<p>These <strong>prerelease</strong> branches are created from <strong>develop</strong> branches and merged from <strong>feature</strong> branches as pull requests. This way you can combine features into new branches to be “deployed” and “tested” in user acceptance test environments, validating any feature that may not be approved right away.</p>
<p>If you&#8217;re are still in doubt about the best Collaboration model for your project, I hope this article brings some clarity: the Gitflow model can be adapted to your&#8217;s and your team&#8217;s more complex needs, having some automations that can be made like automatic semantic versioning through <a href="https://gitversion.net/" target="_blank" rel="noopener"><strong>gitversion</strong></a> or through git TAGs.</p>
<p><strong>Nuno Cancelo<br />
</strong>Polarising Consultant</p>
<p><span style="font-size: 10pt;"><em>References: </em><a href="https://git-scm.com" target="_blank" rel="noopener"><em>https://git-scm.com</em></a></span><br />
<span style="font-size: 10pt;"><a href="https://www.toptal.com/git/git-workflows-for-pros-a-good-git-guide" target="_blank" rel="noopener"><em>https://www.toptal.com/git/git-workflows-for-pros-a-good-git-guide</em></a></span><br />
<span style="font-size: 10pt;"><a href="https://nvie.com/posts/a-successful-git-branching-model/" target="_blank" rel="noopener"><em>https://nvie.com/posts/a-successful-git-branching-model/</em></a></span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/how-is-collaboration-improving-your-team-workflows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Returning to the office.</title>
		<link>https://polarising.com/returning-to-the-office/</link>
					<comments>https://polarising.com/returning-to-the-office/#respond</comments>
		
		<dc:creator><![CDATA[Márcia Catarino]]></dc:creator>
		<pubDate>Wed, 24 Jun 2020 14:23:44 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer Branding]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=38022</guid>

					<description><![CDATA[It is common knowledge that change is inevitable. Nevertheless, our human condition never prepares us to that precise moment when change actually happens. We already read about the benefits of remote work, they are undeniable; at Polarising is not new to anyone, as we have the flexibility to do it [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>It is common knowledge that <strong>change is inevitable</strong>. Nevertheless, our human condition never prepares us to that precise moment when change actually happens.</p>
<p>We already read about the <strong><a href="http://: https://www.polarising.com/2019/05/the-good-the-bad-and-the-ugly-of-remote-work-part-1/">benefits of remote work</a></strong>, they are undeniable; at Polarising is not new to anyone, as we have the <strong>flexibility to do it when we feel it will improve our performance</strong>.</p>
<p>But if there has been a general underestimated idea of this context, now we know how equally important both office and remote work are to that <strong>work-life balance</strong> companies and employees are always advocating.</p>
<p>So, Polarising decided to <strong>re-open the office</strong> in that assumption: just because things cannot be as they were, it does not necessarily mean we have to exclude any of the options!</p>
<p>República’s office is open since June 1st with limited capacity, and for that we had to come up with a <strong>solution</strong> that allows anyone to see if there’s place available to go and take care of business or just have a relaxing day outside home.</p>
<h3><strong>The challenge.</strong></h3>
<p>HR, LABS and Communication teams were already <strong>working together</strong> to prepare everything, and there were some ideas and possibilities on the table. Finally, I was contacted and asked to develop a <strong>registration app</strong>. There was a catch, thou&#8230; I had two days to do it!</p>
<p>This <strong>app</strong> had to be a <strong>quick and effective solution</strong> that allowed each one of our employees to <strong>book their day/ place and parking space in the office building</strong>.</p>
<p>A few months ago, I had decided to learn a little about <strong>Microsoft power apps</strong>, an Office 365 tool in which we all have a Polarising account. The concept is to develop <strong>no-code applications</strong> for PC, Tablet or Mobile. The data sources of these applications can be simple excel files, sharepoint or database repositories.</p>
<p>Another advantage is that it&#8217;s very <strong>easy to publish applications that can be used</strong>, for example, by integrating or embedding them in a website or in <strong>Microsoft Teams</strong>.</p>
<h3><strong>The requirements.</strong></h3>
<p>This app had to have some specific requirements, of course:</p>
<ul>
<li>an app that any and <strong>only Polarising employees</strong> can access</li>
<li>a feature that allows to <strong>schedule the days at the office</strong> in each of the 3 floors and manage the number of people registered on each floor</li>
<li>when seats run out on a floor, no more bookings can be made for that floor on that day</li>
<li>it is possible for each employee to make only <strong>one reservation per day</strong> and to <strong>unbook a reservation</strong></li>
<li>a feature that allows to <strong>book and unbook a specific parking space</strong> and only one space reservation per day</li>
<li>it is possible to <strong>check Booking and Parking Space details</strong> of all registered employees at any time</li>
<li><strong>booking history</strong> must be saved.</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38026 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/06/MicrosoftTeams-image-8-1024x558.png" alt="" width="1024" height="558" srcset="https://polarising.com/site21/wp-content/uploads/2020/06/MicrosoftTeams-image-8-1024x558.png 1024w, https://polarising.com/site21/wp-content/uploads/2020/06/MicrosoftTeams-image-8-300x164.png 300w, https://polarising.com/site21/wp-content/uploads/2020/06/MicrosoftTeams-image-8-768x419.png 768w, https://polarising.com/site21/wp-content/uploads/2020/06/MicrosoftTeams-image-8-1536x838.png 1536w, https://polarising.com/site21/wp-content/uploads/2020/06/MicrosoftTeams-image-8-2048x1117.png 2048w, https://polarising.com/site21/wp-content/uploads/2020/06/MicrosoftTeams-image-8-1568x855.png 1568w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h3><strong>The solution.</strong></h3>
<p>After comprehending what was needed, I went to work! My biggest challenges were fields like <strong>Data and Calendar</strong>, as well as using the l<strong>ogged user information in to the App</strong>, so I could make the reservation on it behalf, two concepts that I hadn’t yet used working with <strong>power apps</strong>; and it wasn’t as easy as I thought!</p>
<p>Step by step and overcoming each challenge, I came up with a first draft version of the app; I was ready to run some tests, so I asked the team to do it covering all sorts of possible scenarios, and most important, to suggest improvements if necessary.</p>
<p>The tests went so smoothly and mission accomplished: Polarising has an <strong>“express-app”</strong> ready to welcome all on June 1st, <strong>according to all safety procedures</strong>!</p>
<p>Working as a team was fundamental to have this application ready and functional on time.</p>
<p>It’s great to be back!</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-38027 size-large" src="https://www.polarising.com/site/wp-content/uploads/2020/06/app-registration-1024x509.png" alt="" width="1024" height="509" srcset="https://polarising.com/site21/wp-content/uploads/2020/06/app-registration-1024x509.png 1024w, https://polarising.com/site21/wp-content/uploads/2020/06/app-registration-300x149.png 300w, https://polarising.com/site21/wp-content/uploads/2020/06/app-registration-768x381.png 768w, https://polarising.com/site21/wp-content/uploads/2020/06/app-registration.png 1347w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p><strong>Márcia Catarino</strong><br />
Business Analyst</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/returning-to-the-office/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to market your product or service? A simple guide to Product discovery.</title>
		<link>https://polarising.com/how-to-market-your-product-or-service-a-simple-guide-to-product-discovery/</link>
					<comments>https://polarising.com/how-to-market-your-product-or-service-a-simple-guide-to-product-discovery/#respond</comments>
		
		<dc:creator><![CDATA[Polarising]]></dc:creator>
		<pubDate>Tue, 14 Apr 2020 18:39:18 +0000</pubDate>
				<category><![CDATA[Solutions]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=37723</guid>

					<description><![CDATA[The day has come! The project that you’ve been so fiercely pitching to your manager got the green light. You have a team, all the information required, and the company even gave you a budget. From here, nothing can go wrong… right? Everything can go wrong! The product could be [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The day has come! The project that you’ve been so fiercely pitching to your manager got the green light. You have a team, all the information required, and the company even gave you a budget. From here, nothing can go wrong… right?</p>
<p>Everything can go wrong! The product could be so complex that your clients cannot use it, making impossible to meet the sales goal. So, is there any way to prevent such problems? How to reduce the risk of failure and guarantee your product meets the client requirements?</p>
<p>If you are a product owner or a product marketeer, you must know that it’s imperative to speak to your customer, so you know what to build or if what you are creating is, in fact, what they need. This is called Product discovery, where you get data from your client in order to guarantee that you’re working on the right solution to address the problem they are experiencing every day.</p>
<p>Often, we have the preconceived idea about what can be the best solution but when it hits the market, the acceptance rate is so low that sales are even worse than predicted. It’s easier, cheaper and less time consuming to change something that is still in the initial phase, so you should be sure about what you want to build.</p>
<p>There is no blueprint on how to do a product discovery. The main objective of these phase is to get more knowledge over time, so you can understand better what is the best solution to invest in. A good approach can be summarized by these three activities:</p>
<ul>
<li>Interviews: talk with your target and\or investors. Understand what their problems are and get feedback on proof of concepts, prototypes or minimal viable products.</li>
<li>Prototypes or proof of concept: get basic examples of the functionalities that work; they might not be integrated or even fully working but they will allow you to have a better understanding of the product and get feedback before spending time on developing and refining the product;</li>
<li>Minimal viable product: have an MVP release with a basic infrastructure to have everything prepared like in the production phase and customers can test your product and give feedback on the released features.</li>
</ul>
<p>These are basic activities that can be used with any product; you can always add more or choose the ones that better serve you project, as long as these activities help you learn something about your customer by getting information and feedback.</p>
<p>Product discovery is not something that you do only when starting a project, but something you should do as much as possible. Every time you talk to your customer more problems, ideas and solutions will appear. And every time all need to be validated and converted into future features of the product.</p>
<p>However, during the Product discovery phase you can face some problems that can be easily identified, such as:</p>
<p><strong>Not being able to embrace the discovery mentality</strong>. You do not need to make complex questions to have an idea, either of the problem or the product itself. Just be smart; people with a discovery mentality will not settle for the first idea or make pre-assumptions. Do more questions and test the ones that matter, be curious about the context of the product, and more important, have an open mind.</p>
<p><strong>Not concluding the discovery cycle</strong>. You got all the relevant information from your clients, tested the possible solutions, gathered a team to design and build the product, and finally it was tested and approved; well done! But it’s not yet time to start the next project because, in reality, your work is just starting. After the product launch you need to setup solid milestones to evaluate the product success, as well as create and\or adapt the channels from where you collected feedback on the latest changes, and inject that information back to the discovery cycle to help you make future decisions.</p>
<p><strong>Do it yourself, not a third party</strong>. The main purpose of a product discovery is for you to learn as much and as fast as you can about your client problems. If you get a third party to do that work, you will never learn it just be reading interviews and reports; same will apply to a department in you company. Don’t be afraid to get your hands dirty and take an active role in the process, innovation emerges from collaboration!</p>
<p><strong>Your team should be multi-disciplinary</strong>. Product discovery requires many skills like design, marketing, development, just to name a few, which means that you should assemble a multi-disciplinary team that aggregates everyone that is involved in developing the product. Usually what happens is having many intervenient in the process, making it prone to consume unnecessary time and resources.</p>
<p><strong>Ideas or features coming from other people besides the client</strong>. Many companies work based on everyone’s ideas about the client or on market knowledge, but there’s only way of knowing what your client wants and that is talking to them and see what problems are worth to pursue.</p>
<p>So now you know what it takes to build a strategy based in Product Discovery. But use it wisely to create and not to validate an existing solution, this is a waste of money and it will only bring new problems. Keep in mind that the discovery phase is a continuous process that will allow you to learn more about your client over time, focusing on building what adds value to them and finding the right market positioning.</p>
<p><strong>Tiago Simões</strong><br />
Polarising Consultant</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/how-to-market-your-product-or-service-a-simple-guide-to-product-discovery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Building a product roadmap.</title>
		<link>https://polarising.com/building-a-product-roadmap/</link>
					<comments>https://polarising.com/building-a-product-roadmap/#respond</comments>
		
		<dc:creator><![CDATA[Polarising]]></dc:creator>
		<pubDate>Mon, 23 Mar 2020 10:42:19 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=37584</guid>

					<description><![CDATA[Many times, we hear the words “product roadmap”, but what is their real meaning? There’s a good definition on ProductPlan, quoting: “A product roadmap is a high-level visual summary that maps out the vision and direction of your product offering over time. A product roadmap communicates the why and what [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Many times, we hear the words “product roadmap”, but what is their real meaning? There’s a good definition on <a href="https://www.productplan.com/what-is-a-product-roadmap/" target="_blank" rel="noopener">ProductPlan</a>, quoting: “A product roadmap is a high-level visual summary that maps out the vision and direction of your product offering over time. A product roadmap communicates the why and what behind what you’re building. A roadmap is a guiding strategic document as well as a plan for executing the strategy.”</p>
<p>What most stands out to me is “high-level visual summary” because over time there are changes in any product roadmap. For a start-up or a product in its embryonic state, this is very important. In fact, if the roadmap does not change it’s because something is wrong! So do not panic if this happens every week or month, it’s normal, in fact, it shows you are on the right track to respond to customer’s needs. Also, changing the product roadmap can mean that you are keeping up with the latest technology developments and this can only favour your product or business.</p>
<p><strong>General Picture.<br />
</strong>The only part of a roadmap that needs to be clear and sort of fixed, is its final goal and the overall vision for the product. Some good questions to ask yourself are:</p>
<ul>
<li>What are the required features the product needs to provide real value to the customer?</li>
<li>What are the “nice to have” features that can be implemented in the future?</li>
<li>Where will the product be 5 years from now?</li>
</ul>
<p>When building new products, it’s good to think of the 80/20 pareto principle that defends the delivery of 80% of the product value with 20% of its features. Applying this rule can help answering all other questions.</p>
<p>An additional tip on how to define a clear product vision can be found also at Product Talk, just by following the link: <a href="https://www.producttalk.org/vision/" target="_blank" rel="noopener">https://www.producttalk.org/vision/</a>. Also, if you share the roadmap and product vision with your customers and stakeholders, they will feel engaged and contribute to its evolution in time, maintaining their interest and investment from the MVP to the beta version.</p>
<p><strong>It takes organization.<br />
</strong>A good product roadmap takes time and planning. Make sure you organise and produce clear technical documentation explaining all stages and every final decision. It can be a small chapter together with the documentation or just an appendix. Starting with this kind of organization will pay off later since every step can be traced, as well as keeping future iterations aligned with the overall objectives.</p>
<p><strong>Tiago Simões</strong><br />
Polarising Consultant</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/building-a-product-roadmap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How can your company recruit effectively? Machine Learning can help.</title>
		<link>https://polarising.com/how-can-your-company-recruit-effectively-machine-learning-can-help/</link>
					<comments>https://polarising.com/how-can-your-company-recruit-effectively-machine-learning-can-help/#comments</comments>
		
		<dc:creator><![CDATA[Joana Carneiro]]></dc:creator>
		<pubDate>Thu, 03 Oct 2019 10:33:12 +0000</pubDate>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=37450</guid>

					<description><![CDATA[Nowadays, technology is everywhere we look. However, in companies all over the world there are still some departments that need to boost their efficiency and effectiveness, such is the case of Human Resources, that combine recruiting and staffing, benefits, compensation, employee relations, training and payroll. Recruitment is key to IT [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Nowadays, technology is everywhere we look. However, in companies all over the world there are still some departments that need to boost their efficiency and effectiveness, such is the case of Human Resources, that combine recruiting and staffing, benefits, compensation, employee relations, training and payroll.</p>
<p>Recruitment is key to IT companies like Polarising: for the past year, we have been working on a decision-support tool that will revolutionize the way these companies evaluate incoming candidates, and it has been very challenging and rewarding! By studying the integration of machine learning techniques in Polarising’s recruitment process, results are very promising.</p>
<p>I’m sure you’re familiar with the term but in case you’re wondering, <strong>machine learning</strong> is an application of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.</p>
<p>The core idea of this tool is very simple; to process each collaborator cv in order to understand their overall attributes, a list of similar collaborators, open position rankings and group classification. The overall attributes represent candidate’s main characteristics, which will be verified against the list of similar collaborators resembling the evaluated candidate. As to the rankings, they analyse how adequate a candidate is for a certain job position and finally, the group classification represents the group to which the candidate is more adequate, based on his/her characteristics.</p>
<p>From a recruiter’s perspective, instead of analyzing the candidate just by its cv and make a decision based only on his/her understanding, extra and valuable information will be available in order to form a solid opinion and support the decision process of choosing the best candidate. With this tool, the recruiter just needs to fill the candidate’s technical skills and work experience in the system’s web application, instantly receiving a set of outputs generated by the system itself.</p>
<p>This said, it’s obvious for Polarising that our Recruitment process will benefit from machine learning, as it improves its efficiency. Performing a more deterministic procedure and finding structure and patterns in data, is the dream of any good recruiter in this area and we only go for the best! I hope this brief article can transmit the potential of machine learning to maximize your company’s processes too, it has certainly challenged me and my team.</p>
<p><strong>Henrique Delgado</strong><br />
Polarising Consultant</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/how-can-your-company-recruit-effectively-machine-learning-can-help/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>How Automation will simplify my job.</title>
		<link>https://polarising.com/how-automation-will-simplify-my-job/</link>
					<comments>https://polarising.com/how-automation-will-simplify-my-job/#respond</comments>
		
		<dc:creator><![CDATA[Polarising]]></dc:creator>
		<pubDate>Mon, 02 Sep 2019 15:28:52 +0000</pubDate>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=37251</guid>

					<description><![CDATA[For me, the best part of a project is delivering! Those last couple of hours I spend preparing to make sure the customer is happy with the result. 30 minutes to check tests and see if they are covering everything, 1 hour to deploy the solution and finally another 30 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>For me, the best part of a project is delivering! Those last couple of hours I spend preparing to make sure the customer is happy with the result. 30 minutes to check tests and see if they are covering everything, 1 hour to deploy the solution and finally another 30 minutes to verify if everything is running smoothly.</p>
<p>Well, of course this is wishful thinking, since most projects are not that perfect and you don’t control every aspect of it. On the other hand, their complexity requires multiple tasks to deliver.</p>
<p>So, try to imagine a one year project developed with agile methodologies, with deliveries every two weeks (26 to be precise), and on top of that, several components that need to be reviewed and prepared carefully.  If it&#8217;s a small team it can be even more complicated, consuming resources that can be used to work on release features or to ensure the code quality.</p>
<p>At Polarising we use two tools to complete these tasks: Jenkins and SonarQube. To better contextualize, here’s a brief description of what consists each tool:</p>
<p><strong>Jenkins</strong> is used to automate all sorts of tasks related to building, testing, delivering and deploying software. It can have different environments for each configuration, like Java, Python, Angular, etc. <strong>SonarQube </strong>is a tool used to maintain the quality of the code, like bugs, tests coverage, unused code, etc.</p>
<p>Every time there is a commit of new code to the source repository, a “wake up” Jenkins web hook goes off. In an earlier stage, Jenkins will download the new code, install everything that it needs and starts to run unit tests to check if everything is working properly.</p>
<p>After all the tests were done with flying colors, SonarQube will proceed to its quality analysis, generating a full report on the quality of the code created, based in the acceptance criteria of the quality these phase can have an error or not.</p>
<p>The final stage of deployment is only executed if the code is from the main branch of development or delivery, and the code will be compiled and created a deployed of the same. If it is a mobile app it can be uploaded for Google Play or to the Apple Store. If the code is from a server it will be compiled into a docker image and published into a registry that will allow an easier update or system deployment.</p>
<p>If in any of these stages occurs an error, the process is stopped and an email alert is sent to the development team. This flow is just one of the possibilities, since there are other kinds of automation. Jenkins is a simple tool that has several plugins and many configurations that can simplify a Developer’s life.</p>
<p>If you are like me, you’ll prefer to spend time developing rather than deploying. Besides being boring, you can miss something you’ll possibly need further and have to redo everything: what a pain! With Jenkins you only have to do some configurations and have a file that will say what needs to be done, setting you free for other tasks like making sure everything will run perfectly and you do a job well done!</p>
<p><strong>Tiago Simões</strong><br />
Polarising Consultant</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/how-automation-will-simplify-my-job/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Middleware has the answer to everything.</title>
		<link>https://polarising.com/middleware-has-the-answer-to-everything/</link>
					<comments>https://polarising.com/middleware-has-the-answer-to-everything/#respond</comments>
		
		<dc:creator><![CDATA[Hugo Pascoalinho]]></dc:creator>
		<pubDate>Mon, 08 Jul 2019 14:27:36 +0000</pubDate>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=37242</guid>

					<description><![CDATA[I’ve seen my fair share of projects and customers over the past 10 years working in the software Integration industry. At Polarising, the solid expertise in this area allows me to work every day with a team of Architects capable of determine the best solution to the existing challenges, discussing [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I’ve seen my fair share of projects and customers over the past 10 years working in the software Integration industry. At Polarising, the solid expertise in this area allows me to work every day with a team of Architects capable of determine the best solution to the existing challenges, discussing about all the different approaches, and deciding from both an Architecture and Technology point of view.</p>
<p>Is there a right and wrong approach for a specific type of business? First, let’s check each one out.</p>
<p><strong>Point-to-point Architecture<br />
</strong>Already in the category of legacy architecture, this was the most common architecture in the early 2000’s. It consisted in the integration of data from several applications, using a specific channel for each integration flow. This means an ever-growing number of channels and connections between systems, making it difficult to manage the Integration Platform.</p>
<p>Simple to design and implement, this type of middleware might be a good option for low scale integration scenarios where change is predictable. Otherwise, it’s not a recommend architecture, since it has high maintenance costs per each application added, leading to the redevelopment of each connector to each application. It was this lack of scalability that led to what it’s usually referred as a “spaghetti” architecture.</p>
<p><strong>SOA (Service Oriented Architecture)<br />
</strong>To face the challenge of scalability, SOA emerged as an approach that allowed to decouple all integrated applications by exposing their functionalities as services. Each service can then be used as a small building block to compose larger functionalities and systems, leveraging on a centralised Enterprise Service Bus and standardised messaging. This aims to ensure high service reuse, with easier governance and change management, since changes can be performed only on ESB-level and abstracted from other systems.</p>
<p>This type of architecture has become mainstream for the last 15 to 20 years in what concerns to integration and has allowed several companies to easily integrate their systems and those of external partners. But on its downside, SOA has proven itself hard to govern in not so controlled environments, creating similar services and wasting its reuse potential.</p>
<p>Governance requires the definition and enforcement of a strict set of rules, usually by an Architecture team or a SOA Centre of Excellence. This is something that most companies wrongly see as an avoidable cost, leading to an ungoverned SOA that can easily be also compared with a “spaghetti” architecture.</p>
<p><strong>Microservices Architecture<br />
</strong>This “newcomer” shares several characteristics with a SOA architecture, aiming to achieve some of its goals. And it does so with the promise of a simpler architecture, easier to govern, more scalable and better suited to the advent of cloud computing.</p>
<p>How? Well, it’s precisely here that you can find the difference between a SOA service and a Microservice. Where in SOA, services are seen as mere building blocks of one large platform/framework that can be used to orchestrate larger functionalities and processes, Microservices are completely independent entities that can evolve on different lifecycles and be developed in different technologies, also following a different sets of rules, scaled as needed, without impacting each other.</p>
<p>While this leads to a more flexible architecture that can easily scale and adapt to a company’s evolving needs, there is a growing risk of losing control of microservices and ending up with a set of unmanageable services, again resembling a “spaghetti” architecture – where have we heard this already?!</p>
<p>A few more architectures or variations could be named, such as an Event-Driven Architecture (EDA) or a Database-oriented Middleware (for which Polarising developed PortaTM, a Java-based software that allows the exposure of Stored Procedures as Webservices).</p>
<p>In the end, the often-unanswered question is what’s the best architecture. From my experience it all resumes to determine the best approach for each scenario. Although being the “next best thing”, a Microservices architecture is far from being ideal to every business. SOA is a proven architecture, suitable for most scenarios but it requires strong governance to evolve properly. And even a point-to-point architecture can be suitable in some small-scale scenarios, even though it has fallen in disuse.</p>
<p>It’s clear to me that only with experience are we able to access such scenarios and determine the best option. One should always investigate past projects for lessons learned, understand what best fits the next project/challenge and avoid following the “new buzz” just for the sake of being the latest trend. I could name a few companies that are always implementing the “next best thing” and end up with a large set of legacy integration platforms and a nightmare to manage in the future… But I won’t;-)</p>
<p><strong>Hugo Pascoalinho</strong><br />
Polarising Consultant</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/middleware-has-the-answer-to-everything/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Step up your .NET business skills.</title>
		<link>https://polarising.com/step-up-your-net-business-skills/</link>
					<comments>https://polarising.com/step-up-your-net-business-skills/#respond</comments>
		
		<dc:creator><![CDATA[Polarising]]></dc:creator>
		<pubDate>Wed, 03 Jul 2019 16:30:33 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Employer Branding]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.polarising.com/?p=37232</guid>

					<description><![CDATA[The good thing about being a programmer right now is that there are multiple programming languages to choose from and in each iteration, there are better tools, more support for workloads and fewer annoying bugs. The bad thing about being a programmer right now is that… there are multiple programming [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The good thing about being a programmer right now is that there are multiple programming languages to choose from and in each iteration, there are better tools, more support for workloads and fewer annoying bugs. The bad thing about being a programmer right now is that… there are multiple programming languages to choose from, and making the right choice from the get-go is seriously important!</p>
<p>Here at Polarising, we strive to provide the skills and options that are better suited for each of our customers businesses. We know that some methodologies are more advantageous for small companies and others will hold better when there are massive scale or very complex data transactions.</p>
<p>But there are programming platforms that can be used to build pretty much any kind of software application and serve a wide array of business needs, from CRM to finance to supply management and redesign them as needed. That’s what .NET does, and we’re seeing how versatile it is first hand.</p>
<p>As of right now, two .NET programming languages, Visual Basic .NET and C#, are among the six most widely used programming languages for software development around the world, according to the May 2019 Tiobe Index. There are a few core characteristics that explain why: it allows the use of multiple languages, has super easy integration with Windows and Microsoft products (they built it, after all), offers horizontal scalability and consistent UI practices, and because the ecosystem is so large and powerful, all the tools have been pre-tested and can be easily accessed.</p>
<p>First launched in 2002, the .NET Framework is now in generation 4.8, the latest version freshly released and with several enhancements in critical areas, most notably security patches, bug fixes, and product improvements. But more trendy now is .NET Core, a more recent development aimed at simplifying development and testing with a free, open source, cross-platform solution.</p>
<p>This is a redesigned version of the .NET Framework that allows the deployment of apps in multiple environments, from mobile to desktop to cloud, and for Windows, MacOS, and Linux. It’s yet another useful tool to have in your skillset, as a specialist in this area, especially as it grows and develops. Core is potentially revolutionary and we want to be a part of that future.</p>
<p><strong>Growth trajectory<br />
</strong>The community of .NET developers is growing and Polarising, as one of <a href="http://www.mept.pt/" target="_blank" rel="noopener">Portugal’s Best Companies to Work</a>, is part of that. We’ve got specialized teams working with these frameworks, which is another tool in our toolbox of software engineering, alongside a team of 60+ professionals dedicated to the Spring Framework, for instance. We belive that investing in this technology is to assure a wider know-how that allows any programmer to open doors into new career opportunities, providing our customers the best solutions.</p>
<p>These are skills for the now and for the future, as is superbly known at a time when demand for IT professionals with programming skills is at an all-time high, and both Europe and the U.S. show signs of an increasing skills shortage. Speaking of which, a recent study published by consultancy firm EY Global recognizes the problem and stresses that the most digitally mature companies tend to have higher productivity and lower staff turnover. It’s a good outlook to have when planning for the next five years, right?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://polarising.com/step-up-your-net-business-skills/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
