<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Beauty Tomorrow - Medium]]></title>
        <description><![CDATA[If you&#39;re an impact seeking inventor, a driver of disruption, join us to lead the Beauty innovation to the next level - Medium]]></description>
        <link>https://medium.com/beauty-tomorrow?source=rss----1b684d6c9385---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Beauty Tomorrow - Medium</title>
            <link>https://medium.com/beauty-tomorrow?source=rss----1b684d6c9385---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 00:37:54 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/beauty-tomorrow" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Five benefits of making your developers talk with your end-users]]></title>
            <link>https://medium.com/beauty-tomorrow/five-benefits-of-making-your-developers-talk-with-your-end-users-8a73b3ffe1f7?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/8a73b3ffe1f7</guid>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[development]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Fri, 08 Apr 2022 11:43:50 GMT</pubDate>
            <atom:updated>2022-04-08T11:43:50.420Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*LuvX0jIPOi_oPj5q.jpg" /></figure><p>TL ; DR : Agile aims at focusing all the developments to the value delivered to the end user. To do so, it’s critical that the developers and the end users understand each other well: any misunderstanding between them could result in features that are not perfectly aligned with the user needs. However, too often, agile’s implementations imply the disappearance of any link between dev and users; such a role being dedicated to the Product Owner.</p><p>This presents several risks for the delivery, mainly (i) misunderstandings thus misaligned features; (ii) low motivation for developers.</p><p>Reversely, implementing a direct link between devs and users will be beneficial for everyone.</p><p>Technically : (1) no more quiproquos; (2) innovations thanks to devs.</p><p>For the team dynamic: (3) dev teams feel proud and valued; (4) precious knowledge of business issues by dev; (5) less work for PO no longer interpreter.</p><h3>The “no link dev / user” antipattern occurs because of good intentions but generates several risks</h3><p><strong>Good intention 1: the wishful thinking of “protecting” the developer from sollicitations from the end-users</strong></p><ul><li>Most of the time, the idea is just to keep the dev focused so (s)he is not disturbed all the time when (s)he develops, an activity that requires focus.</li><li>Of course, the developer is not a “hotline” for all the users, to be called when there’s an issue on the application. However, that shouldn’t make us jump to the conclusion that any direct exchanges between dev and users should be forbidden.</li><li>Such exchanges should be feature-oriented and help both dev and user gain a common understanding of their relative issues. If every exchanges end up in a bug fixing / discovering session, then it means you have technical excellence issues. And you should deal with that in priority and not focus on your dev’s time schedule.</li></ul><p><strong>Good intention 2: the idea that users cannot handle exchanging with a “technical” people</strong></p><ul><li>Users are most of the time very busy; PO / PM usually have a feeling that their time is precious and that it shouldn’t be wasted. And as users are not technical people, they fear that users will be frustrated if they exchange with dev, because they won’t understand what they say.</li><li>Even though it is a good intention initially that drives this decision, it shows a huge lack of trust regarding your dev. They are able to handle such exchanges with users and there is no need for PO / PM to be an “interpreter”.</li></ul><p>Here are the risks implied by such practices.</p><p><strong>Risk 1 : the more intermediaries you have, the more misunderstandings you get</strong></p><ul><li>If the User tells something to its Business Owner; who then repeats it to the Product Owner; that validates the need with the Product Manager; before finally talking about it with the Developer…</li><li>… there is a high chance that some information has been lost in all the process</li></ul><p><em>A video illustrates better than 1000 words 👇👇👇</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FNI43U9UpkQo%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNI43U9UpkQo&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FNI43U9UpkQo%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/7f31ec2c11106c7a4f8d58c1becb6ae6/href">https://medium.com/media/7f31ec2c11106c7a4f8d58c1becb6ae6/href</a></iframe><p><strong>Risk 2: lack of focus of developers on delivering value to the end-user</strong></p><ul><li>Of course if you can never freely exchange with the end-user, it’s harder to understand how what you do impacts positively its work.</li><li>It creates frustration and can have the downside effect of having developers focusing mostly on achieving technical tasks rather than focusing on delivering value.</li></ul><p>Such lack of focus is detrimental to both the technical realizations and the team dynamic.</p><h3>Three technical benefits, of enabling dialogue between developers and users</h3><p>By putting in place regular and direct exchanges between developers and end-users, your delivery will improve.</p><p><strong>Benefit 1: no quiproquos</strong></p><p>By discussing together, we create a common language (what Domain-Driven Design calls “ubiquitous language”). The same word has the same meaning for the user and the dev; any ambiguity can be solved most quickly. It ensures that the features will correctly deliver value: when the users asks for “something”, there will be no misinterpretation of this “something” by the dev.</p><p><strong>Benefit 2: innovation opportunities thanks to devs</strong></p><p>Developers spend a lot of time developing applications; therefore they do get a lot of ideas in order to improve them and better the service they are delivering to the users. With this kind of exchanges, it encourages developers to pitch such ideas and to validate right now that they’re on target.</p><p>It does make sense if you look at the numbers, 1 agile team = 5 devs + 1 PO; we shouldn’t be surprised if at least 50% of innovation ideas come from devs that are 5 times more than POs.</p><h3>Three benefits for the team dynamic, of enabling dialogue between developers and users</h3><p>A better team dynamic is something you should aim for as it will result in delivering high quality products.</p><p><strong>Benefit 3: dev team feeling valued</strong></p><p>We owe developers to have a feeling of self-accomplishment through their work. They must feel proud and valued of what they do. There is no better way to do it than making developers talk with their end client, assumedly satisfied with the application. Of course, things might get messy sometimes and the users might be unsatisfied. If so, there should not be as well, any “protection” towards dev that must understand why their work hasn’t given full satisfaction.</p><p><strong>Benefit 4: pushing devs to master user issues</strong></p><p>Through dialogue, developers will tend to be business / user experts, which is invaluable. Less quiproquos as mentionned, but it goes further. Their knowledge is very precious within the team, because they will be able to fully understand by themselves the issues at stake. And their vigilance is precious: the more the better when it’s about making the right choices of features / prioritization.</p><p><strong>Benefit 5 : less work for PO/PM</strong></p><p>If dev and users can have direct exchanges by themselves, the PO/PM can focus on more value-added tasks. Being just an interpreter is not only time-consuming and not very satisfying, it’s not the best manner of employing their time for POs/PMs that usually have a lot to deal with on their plate.</p><p>Instead of translating between these two world, one interesting occupation should be to identify how the communication and the flow of information could be intensified between users and devs.</p><blockquote>What about these “exchanges” ? How to put them in place ?</blockquote><p>Two quick ideas here:</p><ul><li>Use one of the several agile meetings to put them in place, for instance sprint planning or backlog refinement</li><li>Let them (devs &amp; users) decide by themselves! They’re grown-up (most of the time) and they can figure it out.</li></ul><p><em>You want to debunk the false belief of “no exchanges between devs and users” ? Join us:</em></p><p><a href="https://careers.loreal.com/en_US/content">careers.loreal.com</a></p><p>Interested about tech like us? Get in touch with us and stay tuned for more articles to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8a73b3ffe1f7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/five-benefits-of-making-your-developers-talk-with-your-end-users-8a73b3ffe1f7">Five benefits of making your developers talk with your end-users</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why you should be careful with “agile frameworks” and three recommandations to make the most of it]]></title>
            <link>https://medium.com/beauty-tomorrow/why-you-should-be-careful-with-agile-frameworks-and-three-recommandations-to-make-the-most-of-it-923b6d7249d0?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/923b6d7249d0</guid>
            <category><![CDATA[scrum]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[scaled-agile-framework]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Thu, 31 Mar 2022 15:23:29 GMT</pubDate>
            <atom:updated>2023-02-21T10:36:35.828Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/641/1*6AE2fExHnwPcqanoYDreng.png" /></figure><p>TL ; DR : Nowadays agile frameworks like SAFe and Scrum are criticized a lot.</p><p>This is for a reason: first, frameworks tend to normalize ways of working which is anti-agile; second, institutes behind frameworks are most of the time more interested in making money, than making agile better; third, frameworks might lead you to fail your agile transformation and “throw the agility baby out with the water”.</p><p>However frameworks do bring a lot to agility: (i) they are reinsuring for stakeholders that might not buy in agile without; (ii) even if superficial, they are a great learning starting point; (iii) at the end of the day, it gets people interested about agile and there’s no such thing as bad publicity.</p><p>My recommandations regarding frameworks: (1) see them like a table of contents not like a guide / gourou; (2) don’t shame agile newbies, beginning with SAFe or Scrum, pull them upwards; (3) be clear with stakeholders that frameworks are not a silver bullet towards agility.</p><p><em>A quick definition of frameworks: they are methodological guides that define good practices and ways of implementing agile. Two of the most famous agile frameworks are Scrum and SAFe.</em></p><p><em>Scrum is twenty years old and has created roles like Product Owners or Scrum Masters; items like backlog (prioritized list of functionalities to develop) and ceremonials like sprint plannings.</em></p><p><em>SAFe is more recent but is very renowned in the IT world as it’s supposed to help you achieve agility @Scale, namely, for a number above of 50 developers.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*kIv5avpQRc9Z0Cv9.jpg" /></figure><h3>First a little confession : SAFe taught me huge deal about agile</h3><p>I was certified SAFe Program Consultant (SPC) in november 2019 and it actually enabled to improve myself a lot about agile:</p><ul><li>First, I had to study hard. The certification is tough. I had 4 days of course with 2 high-level teachers, each of them with several years of agile transformation experience. You have to study for at least 10–15 hours to make it through the exam which is a hard multiple choice questionnaire.</li><li>Second, you know better where to look to deep dive into agile. You cannot deep dive in all the topics are mentionned in SAFe before the certification. But afterwards, it was very interesting for me to dig further into topics. For instance, I bought, read and studied books about DevOps or Lean Software Development (which constitutes the theoretical basis of SAFe). Thanks to SAFe, I knew these books were references on the matter and it had already given me a first understanding of it so the books were not unaccessible for me.</li><li>Third, “you’re certified? So you’re an expert”. Good or bad, deserved or not, once you’re certified, you’re seen as an expert of agility. Quite concretely, it implied for me to give trainings to many people in my company. The training and the expert posture pushed me to challenge myself even harder which helped me improve myself even more.</li></ul><h3>You should be careful with frameworks can easily lead to agile antipatterns</h3><p>Nonetheless, let’s keep in mind that most of the critics about frameworks like SAFe or Scrum are justified:</p><ul><li>They tend to normalize when agile theoretically strongly relies upon auto-organization to deliver value. Frameworks push us to apply rules that are supposed to be agile without understanding how agile could help us and to what extent following these rules is agile. Therefore it might make things more rigid and making us diverge from our goals with antipatterns like “we do that because it’s in the framework not because it brings value to the user”.</li><li>Institutes behind frameworks have marketing / sales objectives. Just like any business, they want to make money through certifications and providing coaches. The more people know them, the better for them. It introduces a bias towards easier and lower quality certifications that are therefore less relevant. Moreover, to appear the most relevant on the theoretical plan, they tend to gather many theoretical elements even if the whole lacks consistency</li></ul><p><em>For instance, with SAFe, it seems that as soon as there is a new trendy buzzword, they have to include it in the framework which ends up looking like a “patchwork”-framework</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/297/1*Zcskp9gotBPQQyrP_iYJZw.jpeg" /></figure><ul><li>Consequence of the two first points, you might not succeed in your agile transformation only thanks to the implementation of SAFe or Scrum. There’s a high risk then, that the initial buy-in of sponsors gets replaced with a strong opposition not only against the framework but also against agility in itself. What we could call throw out agility baby with the bath water.</li></ul><p>Many prominent actors in the software world have put emphasis about the agile antipatterns brough by frameworks ; I like a lot the one of Ron Jeffries (one of the signatory of the Agile Manifesto) “<a href="https://ronjeffries.com/articles/016-09ff/defense/">Dark Scrum</a>”.</p><h3>However, it would be wrong to completely discard frameworks because they also bring a big deal to agility</h3><p>Despite all their flaws, I still believe frameworks can be useful for agility:</p><ul><li>The “patchwork” aspect makes the whole framework less convincing intellectually; however it gathers a lot of informations in the same place and it’s a good starting point. Of course it doesn’t make quite sense to gather in SAFe Lean Software Development principles; DevOps practices and Design Thinking methodology. But still, it’s still useful just to know that these stuff exist in the IT ecosystem and to be able to find easily the relevant books on SAFe website.</li><li>Big fat frameworks like SAFe are reinsuring for stakeholders. They can picture themselves in it and they can see their teams in it. Of course agile is not supposed to work this way: stakeholders’ focus should rather be on how to picture developers and themselves, but if it’s the only way to get an initial buy-in, I’ll take it.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/862/1*vPFIaiW0n5Vl1DPuguYWfw.png" /></figure><ul><li>Good or bad, they make people talk about agility. It remains publicity and publicity is never bad. Even Scrum of SAFe or another framework are not the best way to achieve agility, they might still be smart enough to take hindsight and not follow religiously the framework. This is the exact path I took. Eventually, so many people go into agile through this frameworks that they cannot be 100% bad.</li></ul><h3>Three recommandations to make the best of frameworks</h3><p>To sum up, I think that frameworks are “good servants but bad masters”; use them wisely:</p><ul><li>See the framework as a table of contents that can guide you towards more detailled content that will help upskilling you or anyone that want to be better at agile. And most of the time, frameworks do rely a lot on detailled content written in books, so make the effort to go further than only the superficial presentation for the framework and read the raw content.</li><li>Don’t shame beginners that are enthusiastic about frameworks as they start their agile journey. It will just make them feel bad and once again, enthusiasm about agile even if it’s through a questionnable framework is still positive and must be encouraged. As a more experienced agilist though, you should pull them up towards better ways of achieving agility. The journey is not over. Help them achieve and keep a learning spirit.</li><li>When it comes to stakeholders, be very careful to handle their expectations wisely to avoid the “throw out the baby with the shower water” effect. It’s okay to start with a framework be it SAFe, Scrum, XP, Kanban; but stakeholders should be aware of the fact that it’s not enough to generate all the benefits of agility. Therefore, communicate clearly about the fact that it’s only the starting point of the journey and that the rules within the frameworks should not be followed eternally to the letter.</li></ul><p><em>You want to learn more about agility and the wise use of frameworks ? Join us:</em></p><p><a href="https://careers.loreal.com/en_US/content">careers.loreal.com</a></p><p>Interested about tech like us? Get in touch with us and stay tuned for more articles to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=923b6d7249d0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/why-you-should-be-careful-with-agile-frameworks-and-three-recommandations-to-make-the-most-of-it-923b6d7249d0">Why you should be careful with “agile frameworks” and three recommandations to make the most of it</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Back to the future of the Datawarehouse Episode 3/3]]></title>
            <link>https://medium.com/beauty-tomorrow/back-to-the-future-of-the-datawarehouse-episode-3-3-acfd70f82f5c?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/acfd70f82f5c</guid>
            <category><![CDATA[google-cloud-platform]]></category>
            <category><![CDATA[data]]></category>
            <dc:creator><![CDATA[Antoine Castex]]></dc:creator>
            <pubDate>Fri, 25 Mar 2022 08:27:09 GMT</pubDate>
            <atom:updated>2022-03-25T08:27:08.829Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/259/0*wuEEwL0hWb0LpvaP.jpg" /></figure><p>It’s time for our final chapter on <strong>Datawarehousing</strong>.</p><p><strong>We already discussed :</strong></p><p>#1 ETL vs ELT &amp; BigQuery choice</p><p>#2 Secure the Data access</p><p>Today we’ll discuss data<strong> Governancy</strong> and <strong>Deployment</strong> !</p><h3><strong>Governancy</strong></h3><p>A successful project starts with strong executive sponsorship in line with the organization’s business strategy.</p><p>It’s not so easy to develop a data-driven culture, so we clearly defined new ways of working with the business team, the product owner, etc.</p><p>We have decided to let business team build their use case on what we call the <strong>consumption layer</strong>, based on the transformed &amp; prepared data called <strong>shared domain layer</strong>.</p><p>The most important information is the responsibility model, which means that a Domain Product Owner is in charge of the complete life cycle, definition, access and evolution of its data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NI6BWc3-2r098TCEarqBzA.png" /></figure><h3>Deployment</h3><p>On how we deploy this new platform with all its capabilities and guidance, here are the principles that the data platform team is adopting:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rxTpMEPJQZl_kkoTWu_EkQ.png" /></figure><p>And here is below the set of tools chosen with industrialization at the heart of these choices (the best example is probably Terraform, as Infrastructure As Code is a standard to be adopted without any doubt to be sure that everyone does the same work everywhere)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kLBx_eUNRy1068bB3iBpCA.png" /></figure><p>Additions to this template should be proposed on GitHub to the entire company’s technical team to reuse (and contribute) to the code.</p><p>In the end, from a purely technical point of view, we have something like this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qji6pDj6KcHdMBhO48jXng.png" /></figure><p>Again, don’t forget to use the ETL model and transform/aggregate the data as much as possible in BigQuery using only SQL (again a standard).</p><p>All the technicals elements are shared here :</p><p><a href="https://cloud.google.com/blog/products/serverless/loreal-combines-google-cloud-serverless-and-data-offerings">https://cloud.google.com/blog/products/serverless/loreal-combines-google-cloud-serverless-and-data-offerings</a></p><p>Any ideas or comments ? Contact me :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=acfd70f82f5c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/back-to-the-future-of-the-datawarehouse-episode-3-3-acfd70f82f5c">Back to the future of the Datawarehouse Episode 3/3</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Don’t focus on planning, focus on value]]></title>
            <link>https://medium.com/beauty-tomorrow/dont-focus-on-planning-focus-on-value-aee4ef60594d?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/aee4ef60594d</guid>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Fri, 25 Mar 2022 07:56:14 GMT</pubDate>
            <atom:updated>2022-03-25T07:56:14.865Z</atom:updated>
            <content:encoded><![CDATA[<p>“An IT project is always late”: this phrase doesn’t make sense. As Gandalf wisely says it: “an IT project is not late nor early, it arrives precisely when it means to”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3m0RB2anQO53fz5RWtnqmQ.png" /></figure><p>TL ; DR :</p><p>I’m sure you’ve already heard this sarcastic phrase “IT projects are always late”. It doesn’t make sense for two main reasons:</p><ul><li>First, an IT project is highly unpredictible. It goes back to the combined complexity of computer systems and users needs. Therefore, it’s impossible to anticipate <em>a priori</em> everything that could happen during an IT project. Hence, speaking of “delays” doesn’t make sense : how can we be late if we’re not able to anticipate the duration of something in the first hand ?</li><li>Second, planning is the last thing you want to focus on when developing an application. Shipping features within the expected timeframe but without bringing value to your end users is useless. Focus on the value delivered. That’s the only thing that matters.</li><li>Finally, if you’re absolutely required to give planning estimations, do it wisely. Perform estimation of small batches of work which will be more accurate. Actualize a lot these estimations. And most importantly: communicate with a lot of caution about these timing issues for the reasons mentioned above.</li></ul><h3>When it comes to IT, the notion of “being late” / “delay” doesn’t apply</h3><p>An IT product / project makes you deal with two complexities: (1) computer’s complexity and (2) users’ needs complexity. This makes it impossible to define or measure rigorously any delays.</p><p><strong>Computer’s complexity: an IT project being late would mean you can anticipate all the implementation caveats before even starting it</strong></p><p><em>Let’s picture ourselves a quite classic story to illustrate this point.</em></p><ul><li><em>You’ve planned on shipping a feature at the end of week 1</em></li><li><em>Once you start building the feature, you realize that you need first to perform a major upgrade of a technical brick.</em></li><li><em>The feature you’re developing depends on this upgrade, and without it, you won’t finish it</em></li><li><em>You need one week to perform the upgrade and you will only be able to ship the feature before the end of week 2</em></li></ul><p><em>Is it a delay?</em></p><ul><li><em>We were not able to identify the need of the upgrade in the first place, the scope of what had to be done changed after this identification.</em></li><li><em>If it had been identified before, it would be correct to say that we were “late”. As it had not, it cannot be said that it was a delay.</em></li><li><em>One might argue that we should have been able to identify anything from the start but that’s just impossible as we’ll explain it afterwards.</em></li><li><em>Thus, NO, it’s not safe to say that the feature was delayed in this context.</em></li></ul><p>This kind of issue actually goes back to the complexity of computer systems that consists in two main aspects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*58elSObFbLnggGjLFhrUUw.jpeg" /></figure><p>First “intrinsic complexity”: an IT system is composed of several different components. (A) The behavior of the whole system cannot be reduced to the sum of the behavior of all its components. This makes quite harder the identification of causal links in the system. And therefore, (B) the same action performed at two different moments doesn’t imply the same results.</p><p>As a consequence, you will never be able to anticipate everything without a holistic view (A) and even if you can anticipate some things, the behavior of components might not be the same over time (B).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*iO4wIA68bvy2N1yw9qV_bA.jpeg" /><figcaption>Spaghetti architecture with a lot of interdependencies</figcaption></figure><p>Second “interdependency complexity”, an IT system never lives in isolation. Softwares rely on other systems, libraries, APIs. Softwares are in the end deployed on servers that are composed of hardware devices, fueled by electricity and so on. You are not alone whenever you develop software and you cannot secure and cross-check that all the “partners” you rely upon won’t block you.</p><p>As a consequence, issues will happen and they will make your job harder; you cannot control everything, especially when it comes to external partners. That’s a fact and you have to deal with it.</p><p><strong>Users needs’ complexity: you cannot forecast all the users needs regarding a tool without showing it to them. You cannot do it by anticipation</strong></p><p><em>Another anecdote to illustrate this point:</em></p><ul><li><em>Back to the early days of Google, they conducted user interviews to identify if people would rather have a long list of results whenever they were searching for something.</em></li><li><em>10 ? 20 ? 30 ? The users told they wanted to have “as much results as possible”.</em></li><li><em>When Google implemented it, they realized that their users weren’t happy: the higher number of results induced a slower response speed. In the end, users would rather have less results but a quicker response speed.</em></li><li><em>They wouldn’t have been able to identify this without showing the working website to the users.</em></li></ul><p><em>This time, once again, we cannot say that a feature is delayed just because it wasn’t shipped within the expected timeframe because of a misunderstood user need. It’s just impossible to anticipate the user experience before you have a tool.</em></p><p>Just like computers, humans are complex and you cannot anticipate all the functionalities that they would have in a given tool without showing them prototypes or a beta version of the application. With all the user research in the world, you won’t be able to fully anticipate these needs. Hence, it doesn’t make sense to expect a software “not to be delayed”: the timeframe will be continuously adjusted to emerging user needs.</p><p>What’s next then ? If planning is not the right thing to measure, how can we handle efficiently IT projects ?</p><h3>Monitor the value delivered by a tool and not the fact it’s been developed in the expected timeframe</h3><p>Focus on the right thing: value delivered to the user.</p><ul><li>Go talk to your users and ask him bluntly if the software you’re giving him access to is useful for him. You can do that during demonstrations or schedule ad hoc meetings. How you do it doesn’t matter as long as you do it. For instance, Reed Hastings Netflix’s CEO has a customer-testing session every three months.</li><li>Do not only focus on what the user says, use analytic tools, observe the behavior in order not to biase this analysis. Remember that as the Google users mentioned above, users are often wrong about what they need. I’ve deep dived more on the topic in <a href="https://beautytmr.com/focus-on-what-your-user-doesnt-even-know-she-he-wants-304cd947e8cf">this article about MRI for kids</a>.</li><li>Prioritize your work accordingly. The only reason why a given feature is on the roadmap should be that it delights our user. Period. It should not be because the CEO or a sponsor likes it. It should not be because it’s a feature we’ve put on our roadmap for a long time.</li></ul><h3>If you still need to provide visibility on planning, be very careful with estimations and communication</h3><p>Sometimes, your sponsors will be very pushy and agressive about plannings and deadlines. Thus, you might have to give them “timing estimations” and answer to questions like “are we late ?”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/249/1*W1SJ8l2NwPmknIHGrhI1Ng.jpeg" /></figure><ul><li>Small batches of work are key in order to give more predictable estimations. By developing software incrementally and trying to have a software always releasable, many things will be easier and more predictable. For instance, all we said about interdependencies remain true. But by being more incremental, you will identify dependency incrementally and deal with them one by one without having the complexity of dealing with their combined impact.</li><li>You can also estimate higher volume of work. But when doing so, try to do it by using references to past projects : “the amount of work to perform broadly corresponds to half of this other project we’ve finished a few months ago”. And use some margin.</li><li>Actualize a lot your estimations. Planning should always refer to the process of thinking about estimates and not about the “plan” in itself. As most of your initial estimations will be false, make sure you go back to them quite often. Scrum advocates planning adjustments at every two week-sprints which is a good rule of thumb.</li><li>Most importantly: communicate with a lot of caution about a given project / product being developed on schedule or not. It doesn’t mean that you should always be pessimistic and put an extra margin of 200% on any roadmap you’re presenting. But be very transparent about the fact that any estimation about an IT task is most of the time not reliable on the long run. More ambitiously, you should also advocate the right ways to think about IT : your sponsors are able to understand that roadmaps and timeframes shouldn’t be our primary focus.</li></ul><p><em>Tired about people being focused on IT products / projects being late or on track ? Join us:</em></p><p><a href="https://careers.loreal.com/en_US/content">careers.loreal.com</a></p><p>Interested about tech like us? Get in touch with us and stay tuned for more articles to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aee4ef60594d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/dont-focus-on-planning-focus-on-value-aee4ef60594d">Don’t focus on planning, focus on value</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[“We’re agile” : why it is usually false and 3 essential practices to make it really happen]]></title>
            <link>https://medium.com/beauty-tomorrow/were-agile-why-it-is-usually-false-and-3-essential-practices-to-make-it-really-happen-4aeb0468516f?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/4aeb0468516f</guid>
            <category><![CDATA[transformation]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[testing]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Thu, 17 Mar 2022 17:33:14 GMT</pubDate>
            <atom:updated>2022-03-17T20:16:10.108Z</atom:updated>
            <content:encoded><![CDATA[<h3>“We’re agile” : why it is usually false and 3 essential practices to make it really happen</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EabsTEN4wql6PV-SkVI-9w.png" /></figure><p>TL ; DR<br>Most of the time, <strong>agile is summed up by organizational aspects: new positions, new meetings</strong>. However, these aspects are only agile by name and are mostly “good practices” (well defined roles, clear meetings’ objectives etc.). They do matter, but <strong>they won’t help get the whole value that agile could bring you</strong>.<br>Therefore you should rather put a high emphasis on the <strong>three following aspects </strong>along your agile transformation:</p><ul><li><strong>Achieve technical excellence </strong>(TDD, DevOps, decoupled architecture)</li><li>Implement a <strong>true link with end user</strong></li><li>Shift from “cost/quality/delay” project-paradigm to <strong>“value delivered” product-paradigm</strong></li></ul><h3>Agile is too often summed up by new meetings and new positions</h3><p>Whenever an agile transformation is initiated, the focus is most of the time put on organisational aspects.</p><p><strong>New meetings </strong><br>Several new meetings are put in place. And wording is important:</p><ul><li>The developments are now sequenced in “sprints” (between 1 and 4 weeks)</li><li>The development team plans the content of what will be developed during a “sprint planning”.</li><li>Everyday, teams gather to exchange on what they’re currently working and what is blocking them, that’s the “daily stand up”</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/306/1*xqdlwjecmByoF7HZYnQhQw.jpeg" /></figure><ul><li>At the end of each sprint, the developers broadcast what they have achieved during a “demo” (and applauses are in order)</li><li>Finally, you discuss about the improvement axis during a “retrospective”…</li></ul><p><strong>New positions</strong></p><ul><li>What used to be the project leader is now either a Product Owner (PO) either a Product Manager (PM); (s)he is now responsible of the backlog’s priorities — which used to be the specifications</li><li>Scrum masters enter the org charts with the responsibility of ensuring that agile is properly implemented</li><li>Architects become tech leads</li><li>The developers keep a similar role but are now gathered in smaller “two-pizza” teams…</li></ul><h3>It’s the easiest way to go when you begin but you won’t generate much benefits from it</h3><p>Be careful because even though (i) these are most of the time the entry points into agility and (ii) these practices will generate some benefits to you, they are in no way sufficient in order to achieve agility and the huge benefits it can generate.</p><p><strong>Why it’s the easiest way</strong><br>-&gt; First, any transformation can be worrisome; therefore creating right away new roles / positions has a reassuring effect for everyone that can picture oneself in the “new” world. It even remains reasurring if it just means putting “agile” in front of any old positions’ name (agile PMO, agile Project Leader, agile Program Manager etc.).<br>-&gt; Second, the meetings and the whole agile ceremonial has a quite energetic and dynamic effect. Meetings’ objectives are well-defined. They are time-boxed and there’s even someone in charge of time-keeping. Gathering people in smaller teams reinforces communication and forces more transversality<br>-&gt; Third, the numerous meetings and new activities to perform are of course chronophage which keep people busy a lot and give them the impression they’re effective. However if the time spent is not allocated on the right work items, your effectiveness could as well be only a false impression.</p><p><strong>Why it won’t generate huge benefits</strong><br>There are three main aspects that will surely block agile from delivering its maximal value to you:</p><ul><li>Technical excellence: without being careful about how you design your code and how you architecture it, the complexity will increase more and more as you ship more features. In the end, your software will get harder to change. You can create any meetings or any roles you want but insufflate this kind of excellence rigor is not something you can improvize and without it you risk facing the following vicious circle:</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/938/1*ZSB9NLuprIoMkrAvGcheRw.png" /></figure><ul><li>Link with end-user: agile is by essence a software methodology that aims at delivering value to the end user. That means that you have to actually talk and put it in the hands of these users. However, with many new positions like Product Owners, Product Managers or Business Owners, you introduce stratifications and rigidity between our product and the end-user. Yet, anything that gets between our product and our user is delaying feedbacks and thus, is increasing the risk of developing a product that doesn’t fit the user’s problem</li><li>Project/product mindset : most of the time, when agile meetings and agile positions are implemented, people still have a project-oriented mindset. It means that they judge the success of the development of an application on the fact it was delivered within the expected timeframe without budget exceedance. Once again, this kind of mentality moves us away from our sole objective that is delivering value to our customer. Shipping a beautiful application in the expected timeframe without budget exceedance doesn’t have any interest AT ALL if the user won’t use it in the end.</li></ul><h3>The three practices you need to truly make agile happening</h3><p><strong>Guarantee technical excellence of the teams</strong></p><p>This implies putting in place the technical elements necessary to make agility possible over time; the three main aspects are</p><ul><li>(1) DevOps approaches to be able to have a software that you can deploy multiple times a day, incrementally so that your end-user can use it and give you feedbacks</li><li>(2) modular architecture to decouple the different modules of your application so you can change one module without fearing to introduce regressions in other modules</li><li>(3) TDD / self-testing deployment approaches to make the system “bug-free”. A common error in implementing agile is to keep QA/testing a separate aspect from developers. Quite the opposite, we should make them work together in order not to fix bug but rather to make the system bug-free</li></ul><p><em>(more on that in this other </em><a href="https://beautytmr.com/the-importance-of-tech-excellence-theres-more-in-agility-than-only-ceremonials-44897451196a"><em>article</em></a><em>)</em></p><p><strong>Establish a strong link with the end-user</strong></p><p>Agile aims at delivering value to the user by solving a problem they encounter. To be sure that we are solving the right problem, we need regular exchanges throughout the product lifecycle. This should include as well exchanges between the end users and the developers. PM / PO shouldn’t be the only privilegded people to be allowed to talk to the end users. To do that, you should set up meetings dedicated (1) to validate the features developed with a sample end users ; (2) to engage discussion to help the developers and the users to gain a common understanding and language of what needs to be done. <em>(Nb : this is what Domain-Driven Design puts forward as ubiquitous language.)</em></p><p><strong>Change the culture of the organization from a project mindset to a product mindset</strong></p><p>Everyone’s objective should no longer be “to finalize a project on time” but “to deliver a product that solves a problem encountered by our end-users”. This means being able to measure the value delivered and use it to orient our product’s lifecycle in time. This might sound scary and expensive but it is not “how will we be sure we don’t throw money down the drain ?”. Actually, you will still monitor your expenses but you will just make sure it is well allocated because it generates value to your end users.</p><p>If you are willing to do true and not fake agile, join us: <a href="https://careers.loreal.com/fr_FR/content/HOME">https://careers.loreal.com/fr_FR/content/HOME</a>.</p><p>Interested about tech like us? Get in touch with us and stay tuned for more article to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4aeb0468516f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/were-agile-why-it-is-usually-false-and-3-essential-practices-to-make-it-really-happen-4aeb0468516f">“We’re agile” : why it is usually false and 3 essential practices to make it really happen</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[There’s more in TDD than only automated tests]]></title>
            <link>https://medium.com/beauty-tomorrow/theres-more-in-tdd-than-only-automated-tests-fc14a22f16f7?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/fc14a22f16f7</guid>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[test-automation]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[tdd]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Mon, 14 Mar 2022 08:06:25 GMT</pubDate>
            <atom:updated>2022-03-14T08:31:44.516Z</atom:updated>
            <content:encoded><![CDATA[<h3>There’s more in Test Driven Development than only automated tests</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/579/1*KdIVGkvI5zXNG5eQqsdqiw.jpeg" /></figure><h3>What is TDD ?</h3><p>TDD is a software development approach where you make incrementally emerge code and tests at the same time. In the end, all the code that is being written, developed is covered by tests. It can be summed up by the repetition of this cycle red / green / refactor.</p><p>Here is how the cycle works for a given feature :</p><p><strong>RED</strong></p><ul><li>Start by writing a test that describes part of the behavior of the feature</li><li>If you run the test, it will fail because the code hasn’t been written yet</li><li>It’s the first part, make a failing test : RED</li></ul><p><strong>GREEN</strong></p><ul><li>Write the minimum amount of code to make the test pass</li><li>“Minimum” is key here, the code should grow incrementally by baby steps</li><li>Thus it’s OK at this step to be quick and dirty, copy paste lines of code stack overflow etc</li><li>Run the test, it must pass: GREEN</li></ul><p><strong>REFACTOR</strong></p><ul><li>Now you have code that behaves as expected because it passes your test.</li><li>If you change this code, you will see right away if it doesn’t have the behavior expected anymore thanks to the test</li><li>Therefore, it makes you quite comfortable to improve its design without fearing breaking its right behavior : REFACTOR</li></ul><p>At this step, you can use design patterns or any good practices of code design. Nonetheless, even if the refactor phasis is a little longer, it should not take too much time as this cycle is meant to remain quick and repeated many times. Of course, having been focused on incremental and baby steps makes this phasis shorter as well which is a good thing.</p><h3>What it is not ?</h3><p>TDD is often misunderstood ; these are two misconceptions about it.</p><p><strong>Not a test first approach</strong><br>A test first approach is quite different from TDD. For one feature or one technical component, you create all the test cases verifying its behavior <strong><em>before</em></strong>. Usually, it’s a senior member of the team that creates them so that a junior can have “safeguards” when he develops its code to check that it brings the right behavior.</p><p>Even if this approach can appear right on the paper, it has two important drawbacks :<br>First, it forces the senior developer to anticipate how the code should work beforehand with all the test cases. However, all the agile methodologies rely on this heavy assumption that it’s impossible, before writing code, to anticipate all the technical problematics you might run into.<br>Second, as the code and the tests don’t grow together simultaneously, the test use cases might be less fine-grained than what they would have been in TDD approach. Yes, you would have the validation of the expected behavior. But it might be harder to make emerge the right code for that, when TDD drives you all along the way with better-sized tests.</p><p><strong>Behavior driven rather than technical driven</strong><br>A second misconception makes tests focused not on behavior but on technical elements (classes, methods, functions). In this case, you would not be writing a test to validate a business behavior. You would be writing one test for one class or one test for one method.<br>The main drawback of this approach is that you couple your tests to the technical implementation of your software. This makes refactoring way more difficult : tests aren’t anymore a safeguard against changing how a component validates a functional behavior, it’s a safeguard against the current technical implementation of one given element. In the end, it makes it harder to change the business behavior of software, which makes it <em>per se </em>a bad approach because any proper software development methodologies aims at making software easier and not harder to change.</p><p><em>Two experts of TDD go further on that topic :</em><br><em>A famous reference on that by Ian Cooper, a TDD purist : </em><a href="https://www.youtube.com/watch?v=EZ05e7EMOLM"><em>TDD here did it all went wrong</em></a><em> <br>Another reference by Valentina Cupac explaining the difference between the two approaches : </em><a href="https://www.youtube.com/watch?v=3wxiQB2-m2k"><em>TDD and clean architecture, driven by behavior</em></a></p><h3>One obvious benefit : an automated test suite</h3><p>The main benefit from having automated test suite is that, well, the tests are automated meaning they’re not performed by human. This brings three benefits :</p><ul><li>No schedule : tests can be run whenever you want by the machine</li><li>No time limit : machines can repeatedly run test cases for long hours</li><li>As many tests as you like : you can run tests in parallel on different machines which enables you to be way more exhaustive in your coverage</li></ul><h3>But there’s more than that !</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7rYFGaz9xCbc3G4V4HbV8w.png" /></figure><p><strong>1 : Always up to date documentation</strong><br>Your tests constitute a “living documentation”, at any time, the behavior of the system is tracked in all the test use cases. Whenever the behavior changes, the tests change accordinly therefore it’s always up to date.<br>Therefore you don’t need anymore to plan retro-documentation session or create documentation US to track system’s behavior.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NcqIxb3_MlfG09cn03IlPA.png" /></figure><p><strong>2 : A cleaner code thanks to a continuous and disciplined refactoring</strong><br>As explained before, the inclusion of refactoring all along the TDD red/green/refactor cycles is extremely powerful. The code is continuously improved and refined which has a very high return on the long run.<br>Without that, refactoring is always deferred which results in a dirty codebase you have to clean every 3–4 years with a huge refactoring project.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TW1vhHtAWn_vgNd0TZVTzA.png" /></figure><p><strong>3 : A decoupled architecture</strong><br>TDD makes you focusing by design, on having small testable components. The only way to keep your tests simple is to have small decoupled components. As soon as components are imbricated and grow too big, it’s way more complex to test them. Therefore, TDD helps you get small decoupled components tested in isolation.<br>The benefits of a decoupled architecture are numerous, to name only a few: bugs are easier to localize, changes / bug fixes might not bring regressions at unexpected places, developments can be paralellized.</p><p><em>If you are interested in making making tech efficient with TDD, join us:</em></p><p><a href="https://careers.loreal.com/en_US/content">careers.loreal.com</a></p><p>Interested about tech like us? Get in touch with us and stay tuned for more articles to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fc14a22f16f7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/theres-more-in-tdd-than-only-automated-tests-fc14a22f16f7">There’s more in TDD than only automated tests</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Focus on what your user doesn’t even know she/he wants]]></title>
            <link>https://medium.com/beauty-tomorrow/focus-on-what-your-user-doesnt-even-know-she-he-wants-304cd947e8cf?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/304cd947e8cf</guid>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Fri, 04 Mar 2022 13:39:54 GMT</pubDate>
            <atom:updated>2022-03-04T13:39:54.355Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*I2xtsXlDFbYuXO07r_OVhQ.png" /></figure><h3>It’s hard to deliver value to users</h3><p><strong><em>Where is value?</em></strong></p><p>While we build products, delivering value is always our number 1 focus. An application has no interest if it doesn’t bring value and help a user solve a problem it is facing. However, it’s always hard to deliver value because value in itself is always hard to identify.</p><p>As PM / product builder, we’re always biased towards solution. We always have a tendency to think that our product is delivering value to the users. It’s scary and difficult to humbly ask your end-users if the product is efficient in solving its problem, if it’s giving him a fulfilling experience or solving its needs. And if we do, users might not be able to answer right to these questions.</p><p>In fact, we must treat with cautious even the opinion of the most willing-to-help users.</p><p><strong><em>When users know what they want</em></strong></p><ul><li>What they want may change: users’ need might change and fluctuate</li><li>They might have difficulties to verbalize what they want, which makes it harder for a PM to understand the right need behind</li><li>They might know what they want and verbalize it clearly but be biased towards an answer, for instance they might just twist their answer because they want to give you the answer that pleases you</li></ul><p><strong><em>When users don’t know what they want</em></strong></p><ul><li>In that case, there’s hardly a chance you can get a clear explanation of what would bring value to the users. Worst case scenario, users might not even know the solution to their problem exist</li></ul><p>When users know what they want, it’s easier, with careful analysis and awareness of biases dangers, you might be able to identify their needs.<br>But the last point is the hardest one, how can you help someone that can’t know how he/she could be helped?</p><p>Let’s hear a quick story about how someone achieved great success facing such problematic.</p><h3>How a terrifying MRI was transformed into a playful pirate vessel</h3><p>That’s Doug Dietz story, twenty year engineer veteran at General Electrics, as it is related in the great book <a href="https://www.ideou.com/blogs/inspiration/from-design-thinking-to-creative-confidence">Creative Confidence</a> written by Tom and David Kelley.</p><p><strong><em>Context: an MRI specialist on a trip to see its device in action</em></strong></p><ul><li>Doug Dietz worked at General Electrics for several years and worked on several improvements on the very famous and succesful MRI. A device that enables to see “magically” inside the body of a patient without any physical pain for him.</li><li>The device improved by Doug’s work was installed in several hospitals and had even been submitted for an Excellence award: “Oscars of design”.</li><li>When Doug had the opportunity to see his invention in action; he jumped on it and went to a hospital in order to see his machine in action.</li></ul><p><strong><em>Trigger: a kid that seems to dislike the user experience of the device</em></strong></p><ul><li>As he was about to leave, he noticed a child with his mother that was actually very afraid of going inside the MRI. Despite the encouragements of her parents, the kid was still terrified. In the end, she was so scared that the technician had to call an anesthesiologist to sedate her.</li><li>This helped Doug understanding that even his device was extremely efficient, its kid-experience could be improved. And that it was actually a great opportunity to make MRI more valuable through a fresh perspective so that kids feel reinsured and nurtured in the MRI environment</li></ul><p><strong><em>Solution: a kid-centric device to make MRI a positive and memorable experience</em></strong></p><ul><li>Through a lot of exchanges, workshops and prototyping Doug transformed MRI into a kid’s adventure story. The device is rebranded into a pirate vessel and the kid is the hero of an adventure in this vessel. They even pushed the realism to create a script for the technician so young patients are lead in the adventure.</li><li>Of course the results were measurable and showed an impressive success : the satisfaction of patient increased and the need of sedation reduced a lot accordingly. Nonetheless, the biggest measure of user satisfaction for Doug was seeing a little girl asking to her mom after going out of the MRI “can we come back tomorrow?” (as a matter of fact, a feedback he got from unbiased observation and not direct interviews)</li></ul><h3>Three ideas to help you dealing with this kind of situations: data; unbiasedness to raise empathy; open-mind</h3><p><strong><em>Good data don’t lie</em></strong></p><p>But it might be hard to perceive the right signal when you listen to it: in the MRI, there was this statistic that 80% of children were sedated, but was Doug aware of the stat? And was it possible to establish the link between the sedation and the fact that MRI was scary for kids?</p><p><strong><em>Unbiased observation is key</em></strong></p><p>Doug Dietz discovered about how kids were terrified, only by chance, when he was in the hallways and just observed silently the family with the little girl entering the MRI.</p><p>There’s hardly a chance that he would have been aware of the problem and able to develop empathy without this kind of unbiased observation. By asking directly a kid, he/she might either censored itself or just couldn’t have pictured a more user-friendly way to go through MRI</p><p><strong><em>Always keep an open mind</em></strong></p><p>Even if your device / product is succesful and state-of-the-art, there’s always room for improvement. Therefore, keep doing user research, continuous discovery and cycles of prototyping along with confrountation of profiles from different services and industries. It will give you a broader perspective.</p><p><em>If you are interested in making making tech efficient with user-centric tools, join us:</em></p><p><a href="https://careers.loreal.com/en_US/content">Homepage | L’Oréal Careers</a></p><p>Interested about tech like us? Get in touch with us and stay tuned for more articles to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=304cd947e8cf" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/focus-on-what-your-user-doesnt-even-know-she-he-wants-304cd947e8cf">Focus on what your user doesn’t even know she/he wants</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is the rational behind the “two-pizzas” team]]></title>
            <link>https://medium.com/beauty-tomorrow/what-is-the-rational-behind-the-two-pizzas-team-980c1aa45a91?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/980c1aa45a91</guid>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[tech]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Fri, 25 Feb 2022 10:31:45 GMT</pubDate>
            <atom:updated>2022-02-28T12:44:35.485Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*v6o-Ldrjjfw8_OResqAaHA.png" /></figure><h3>Two-pizza teams: an Amazon best practice but not only</h3><p>There are not many IT concepts / organizational concepts that are as famous as the “two-pizza teams” motto of Amazon.</p><p>Jeff Bezos once mentionned that he had instituted a rule: the teams in Amazon should be small enough to be fed with 2 pizzas. The idea behind that was to increase their efficiency: intuitively, less people means less need of coordination and keeping people up to date</p><p>This rule is so “catchy” that IT literature makes numerous references to it:<br>- Agile theory emphasizes the idea of small delivery teams &lt;10 people auto-organized<br>- DevOps advocates small, market-oriented, pluridisciplinary teams in order to stimulate autonomy and reduce technical dependencies<br>- Some famous “small” product teams are renowned: Apple’s iPhoto was built by 5 developers (<a href="https://www.linkedin.com/in/glennreid/">source</a>); there were 13 people in Instagram product teams when it was acquired for 1 billion by Facebook (<a href="https://www.dailymail.co.uk/news/article-2127343/Facebook-buys-Instagram-13-employees-share-100m-CEO-Kevin-Systrom-set-make-400m.html">source</a>)</p><p>Bref, smaller teams appears to be more relevant to deliver software.</p><h3>Why less is better: fewer people enhances communication</h3><p>As we bring more people into a project, the communication complexity increases quadratically:<br>- If there is only 3 people in the team =&gt; 3 communication links;<br>- If the team is composed of 6 people =&gt; 15 communication links;<br>- If the team is composed of 12 people =&gt; 66 communication links.</p><p>Thus, we see that by adding people, the number of intercommunication grows way more than only the number of people added: between 6 and 12, we multiply by 4 not by 2 the intercommunication possibilities.</p><p>There’s another way of seeing it; if we have one team already formed and we decide to add one people in the team, we generate a lot of new intercommunication possibilities:<br>- From 3 to 4 people -&gt;we add 3 communication links;<br>- From 6 to 7 people -&gt; we add 6 communication links;<br>- From 12 to 13 people -&gt; we add 12 communication links.<br>We see that the number of new communication links = the number of people in the initial team, logically each initial teammember has 1 link with the new teammember.</p><p>The anthropologist Hackmann also made this reasonning and points out the “process problems” that get exponentially more severe as the number of people in a team grows. He identifies two main issues:<br>- The first is the communication links as explained before, the intrinsic complexity of “keeping anyone up to date”;<br>- The second is the fact that larger teams will get overconfident with the false feeling that they will be able to be more efficient as they are more numerous.</p><h3>The “more resource antipattern”: why adding more people to an ailing project is probably making things worse</h3><p>This reasonning has initially been introduced by Jeff Brookes in The mythical man-month with the following story / vicious circle:<br>- An ailing project is experiencing delays<br>- Therefore, the sponsors bring in more people<br>- Therefore, it adds complexity regarding communication for the reasons presented above<br>- Therefore, the delays are more severe</p><p>In other words, increasing the number of people on a delayed project is unlikely to make things better; quite the opposite actually, it’s surely making things worse.</p><p>To illustrate this point, Brookes uses the strong metaphor of tarpits. Big projects are like dinosaurs in tarpits. Bringing more people here would be the false belief that struggle and move in order to escape the tarpits will make things better. However, struggling and moving in tarpits is only making the situation worse.</p><p>Furthermore, it’s not only intercommunication that’s making things worse. When you add new people to a preexisting team, it also implies: (i) getting to know each other to achieve a good team dynamics; (ii) upskilling newcomers; (iii) performing work to secure contracts and HR aspects.</p><h3>Reversely, smaller teams enable better communication which generates numerous benefits</h3><p>By now, we’ve made clear that bigger teams are never the solution. Here are some illustrations of why the bettered communication in smaller teams that can be fed by two pizzas make them way more efficient.</p><p><em>On the skills level:</em> <br>- Team members can be upskilled more quickly<br>- Better pluridisciplinarity therefore a more reactive team <br>- Reduced tendency to rely on experts that always risks to create bottlenecks</p><p><em>On the alignment level: </em><br>- A smaller team will be more engaged and solidar <br>- It’s also easier to orient fewer people towards a goal<br>- Fewer people will feel more accountable : that’s the Kitty Genovese effect</p><p><em>On the technical level: </em><br>- Smaller teams will more easily work in smaller batches with more incremental developments <br>- This will make continuous delivery easier with numerous other advantages<br>- As a consequence of Conway law, independant teams will generate modular and decoupled software components</p><p>In fine, your project will be more efficient, deliver faster and your teams will be happier.</p><p><em>If you are interested in making making tech efficient with right-sized teams, join us:</em></p><p><a href="https://careers.loreal.com/en_US/content">Homepage | L&#39;Oréal Careers</a></p><p>Interested about tech like us? Get in touch with us and stay tuned for more articles to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=980c1aa45a91" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/what-is-the-rational-behind-the-two-pizzas-team-980c1aa45a91">What is the rational behind the “two-pizzas” team</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The importance of tech excellence — there’s more in agility than only ceremonials]]></title>
            <link>https://medium.com/beauty-tomorrow/the-importance-of-tech-excellence-theres-more-in-agility-than-only-ceremonials-44897451196a?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/44897451196a</guid>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[beauty]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Fri, 18 Feb 2022 09:03:28 GMT</pubDate>
            <atom:updated>2022-02-18T13:36:58.826Z</atom:updated>
            <content:encoded><![CDATA[<h3>The importance of tech excellence — there’s more in agility than only ceremonials</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QuHGQaDpuyG41knN_IYk2w.jpeg" /></figure><h3>Technical excellence and codebase’s complexity</h3><blockquote>Agility can be defined as a user-centric software development process that aims at delivering software in small batches to the end-user in order to get fast feedbacks and to generate knowledge.</blockquote><blockquote>Technical excellence consists of practices enabling softwares, products, applications, to be delivered fast, with high quality and be maintained without prohibitive costs in the long run.</blockquote><p>In the context of this article, technical excellence will refer to three main areas, the constant focus on maintaining a high level of exigence on these aspects:<br> — Decoupled architecture: the architecture consists of modular and independant components that are consistent functionnally ; one component serves different features and changing one feature of one component can be done in isolation from other components:<br> — Self-testing development: developers are continuously implementing tests in order to validate that the code written has the expected behavior; TDD appears to be the most effective technic to do it <br> — Automated deployment and continuous integration: codebase evolutions are merged as soon as possible (several times a day) and automatically deployed on prod-like environment to be tested (with automatic tests and manual — exploratory tests as well)</p><p>As you develop more and more features, the codebase gets bigger, it’s getting hard to understand it as a whole and all the interactions in it. These practices will help you control the increase of your codebase’s complexity:<br> — Decoupled architecture keep changes localized, therefore complexity remains localized as well on a limited scope <br> — Self-testing development forces you to keep small testable unities, along with decoupled architecture; furthermore you can detect regressions as soon as they arrive and help you knowing exactly the behavior of your system at all times<br> — Automated deployment and continuous integration will help you focus on value-added tasks and synchronize teams regularly withou having to perform quick &amp; dirty hot fixes because you deferred the painful integration of codebase’s evolutions</p><h3>Antipattern: agility without technical excellence</h3><p>At the beginning of a project, there might be a lot of enthusiasm. Delivery is fast in the beginning; agile processes enable the team to be very dynamic; users are happy to see features arriving “fast”<br>But if you haven’t been careful about the technical excellence the complexity of codebase grows, <br> — 1 as you don’t automate test and still want to ship quickly to users, defects will begin to come and their number will grow;<br> — 2 as you don’t automate deployment and implement CI, merges will get more and more painful and therefore you will naturally lean on doing them less often; <br> — 3 with an intrincated architecture, developing a new feature gets complicated because it might have impacts on other part of your application; therefore (i) you’re reluctant to developing them, (ii) when you do so, inexplicable regressions might occur (and you’ll have difficulties identifying them without automated tests)</p><p>All is then gathered to have a nice vicious circle:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/938/1*ZSB9NLuprIoMkrAvGcheRw.png" /></figure><h3>How your agile development process can benefit from technical excellence</h3><p>Self-testing development will give you: <br> — Better design through TDD approach, among other reasons because in order to have an effective testing strategy, tests must run fast and therefore testable units must be small and decoupled from each other<br> — Faster feedback, because you don’t need to wait for painful merges or deployments and then for manual acceptance tests to check if your code behaves as expected, you can see it (and fix it) right away<br> — Maintainability in the end, with an effective automated test suites, 1 there are less bugs because the system is defect free; 2 the test suite is a safe guard preventing you from changing behavior unpurposedly, quite the opposite it will help you continuously refactoring</p><p>Automated deployment / continuous integration: <br> — It enables your teams to focus on the value-added task of developing feature for the end-user instead of (i) manually provisioning and deploying software; (ii) trying to fix all the defects happening because of a “merge hell”<br> — You can figure out more rapidly your software’s behavior in “live conditions” because you can directly deploy it in prod-like environments <br> — Make deployments and integration less painful because performed more often [(1) more used to it; (2) changes are smaller); (3) users give feedback more frequently]</p><p>Through a decoupled architecture:<br> — Components are better isolated and therefore changes are located and so are their potential pbs. Therefore it’s way easier to add more and more features for users <br> — With hexagonal architecture paradigm, business rules / business invariants are properly housed and protected which helps you focusing on business complexity without having to deal with “details” like data persistance or view aspects</p><h3>What are the benefits for you?</h3><p>In the end, you are winning on all sides:<br>On the technical side, it’s easier to develop new features and it’s actually the one thing expected from software, namely being easy to make change.</p><p>On the people side: <br> — Users are more satisfied because they were able to give feedback regularly and the software given to them is reliable and efficient, <br> — Teams are more engaged because they enjoy building new features instead of fixing bugs, moreover they can be proud of their work</p><p>On the financial side: costs are more predictible and controllable, revenues keep on increasing because satisfied users retain and refer to other people.</p><p>If you are willing to make agility right with us, join us: <a href="https://careers.loreal.com/fr_FR/content/HOME">https://careers.loreal.com/fr_FR/content/HOME</a>.</p><p>Interested about tech like us? Get in touch with us and stay tuned for more article to come.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=44897451196a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/the-importance-of-tech-excellence-theres-more-in-agility-than-only-ceremonials-44897451196a">The importance of tech excellence — there’s more in agility than only ceremonials</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Being a product manager : doing the thing right… but also doing the right thing]]></title>
            <link>https://medium.com/beauty-tomorrow/being-a-product-manager-doing-the-thing-right-but-also-doing-the-right-thing-3f4b28fa983b?source=rss----1b684d6c9385---4</link>
            <guid isPermaLink="false">https://medium.com/p/3f4b28fa983b</guid>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Victor Billettedev]]></dc:creator>
            <pubDate>Fri, 11 Feb 2022 10:57:23 GMT</pubDate>
            <atom:updated>2022-02-11T13:45:15.495Z</atom:updated>
            <content:encoded><![CDATA[<h3>Being a product manager: doing the thing right… but also doing the right thing</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/759/1*ulrwLnP0xHhEFi-UjSMkmQ.png" /></figure><p><em>After a few years with positions of Product Owner / Product Manager in agile environments, a recent </em><a href="https://lecampus.hubvisory.com/"><em>PM certification</em></a><em> I passed made me realize how much being a PM means not only designing an IT solution right [doing the thing right] but also resolving the right problem for the user [doing the right thing].</em></p><p>On the one hand, since I’ve been a PM, I mainly focused my efforts on “doing the thing right”. Designing software is a hard job because it forces you to interact with the inherent complexity of computer systems.</p><p>Such systems are complex because they are among other things non-deterministic (a same action performed on two occurences can have different outcomes); no holistic vision; sum of component’s behavior doesn’t enable to predict the system’s behavior, etc.<br> <br>Facing this, I’ve always thought about a PM’s mission to adapt its ways of working to deal optimally with these challenges. This is achieved through mainly two aspects :</p><p>1. Fostering technical excellence to achieve a sustainable and reliable product through advanced software design technics (TDD, BDD and DDD) jointly with DevOps and Automation.</p><p>2. Implementing lean and agile processes to enable efficient and short feedback loops that help achieving incremental objectives and delivering a flow of value to end-users.</p><p>On the other hand, since a few weeks I’ve had sort of a revelation that emphasized to me how much “doing the right thing” is equally important. One cannot stress enough how much you have to keep in mind as a PM creating a product that you are building it for someone, a user. This is as difficult as designing an efficient and sustainable solution as it makes you interact with the inherent complexity of human behavior.</p><p>It’s hard to define what makes human behavior complex. Some elements to be aware of in the context of product could be the following : users are easily biased towards a decision, asking them what they want might in itself influence them towards an answer ; even if they are unbiased, they might not be really aware of what’s best for them, of their “latent needs”. Something this quote wrongly attributed to Henry Ford synthezises quite well :</p><blockquote>“If I had asked people what they wanted, they would have told me faster horses” Henry Ford (apocryph)</blockquote><p>As a PM, it is then crucial to deal with this complexity in the whole lifecycle of product. To sum up how this takes place concretly, I like the <a href="https://medium.com/@keenancummings/a-working-definition-of-product-design-4e48069727c8">definition of product design of Keenan Cummings</a></p><blockquote>(i) Recognizing patterns of human behavior ;</blockquote><blockquote>(ii) discovering the motivations and impulses that drive those patterns ;</blockquote><blockquote>(iii) creating tools that improve or elevate the output of those behaviors.</blockquote><p>This goes through two main fields of actions:<br>1. Do research to undertsand your users’ problems: focus on the problem first before to think about a solution; to understand your user, you need to observe them the most unbiasedly possible; and work iteratively with hypotheses statements you try to validate.</p><p>2. Conceive applications and make sure they solve the users’ problems: identify key features; design smart interfaces that guide users; take into account all the potential interactions of your user with them; build prototypes to validate your hypothesis then release a first version of your product and continuously adjust with feedbacks with the objective of maximizing product’s adoption.</p><p>Of course the point here is not to say that one of these two aspects is more important than the other: they are both equally crucial and necessary to build succesful products.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3f4b28fa983b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/beauty-tomorrow/being-a-product-manager-doing-the-thing-right-but-also-doing-the-right-thing-3f4b28fa983b">Being a product manager : doing the thing right… but also doing the right thing</a> was originally published in <a href="https://medium.com/beauty-tomorrow">Beauty Tomorrow</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>