<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alfredo Motta</title>
    <description>The latest articles on DEV Community by Alfredo Motta (@mottalrd).</description>
    <link>https://dev.to/mottalrd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F19157%2F01a89cbe-7804-4ad7-9814-e6b1e3a7f9f8.jpeg</url>
      <title>DEV Community: Alfredo Motta</title>
      <link>https://dev.to/mottalrd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mottalrd"/>
    <language>en</language>
    <item>
      <title>Agile or Waterfall; a risk management perspective</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Fri, 19 Jun 2020 08:04:29 +0000</pubDate>
      <link>https://dev.to/mottalrd/agile-or-waterfall-a-risk-management-perspective-3pa0</link>
      <guid>https://dev.to/mottalrd/agile-or-waterfall-a-risk-management-perspective-3pa0</guid>
      <description>&lt;p&gt;Today Agile is the default choice for the software development life cycle (SDLC); every conference, book, or blog post is telling us we are doomed to fail if we don’t follow this established convention. But isn’t it surprising to think that we should use Agile for every possible company doing software out there? Are we going to organize software development exactly the same way if we work for a startup, NASA, or FedEx? It seems hard to believe.&lt;/p&gt;

&lt;p&gt;If you are already screaming this is heresy! …please bear with me; I am not trying to send us back to the dark ages of Waterfall. At the same time, no project or company is the same and we should keep thinking about Why we do what we do. Choosing the appropriate SDLC requires a deep understanding of the dynamics of your environment.&lt;br&gt;
In this blog post, I will use the lenses of risk management to help you pick what SDLC is right for you. We will first look at how to put your software development lifecycle into context by interpreting it as a risk map. We will then look briefly at the history of Agile and Waterfall and why these risk maps make sense in their own context. Finally, we are going to learn how to use Cynefin and Wardley maps as tools to better understand the uniqueness of your risk territory, so you can pick the software lifecycle that better suits your team or company profile.&lt;/p&gt;

&lt;p&gt;I hope you enjoy the journey and looking forward for your thoughts in the comments. &lt;a href="http://www.alfredo.motta.name/agile-or-waterfall-a-risk-management-perspective/"&gt;http://www.alfredo.motta.name/agile-or-waterfall-a-risk-management-perspective/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full blog post on the link above (sorry for my lazyness and not including it all here, it's just a lot of copy and paste!)&lt;/p&gt;

</description>
      <category>agile</category>
      <category>softwareengineering</category>
      <category>discuss</category>
    </item>
    <item>
      <title>The often overlooked consideration when choosing Ruby as your next programming language</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Mon, 13 Aug 2018 06:42:27 +0000</pubDate>
      <link>https://dev.to/mottalrd/the-often-overlooked-consideration-when-choosing-ruby-as-your-next-programming-language-2kjl</link>
      <guid>https://dev.to/mottalrd/the-often-overlooked-consideration-when-choosing-ruby-as-your-next-programming-language-2kjl</guid>
      <description>&lt;p&gt;When faced with the choice if Ruby should be your next programming language there is a lot to consider depending on your perspective. If you are new to the industry you might be looking for the fastest way to get a job, for example by checking how many companies are hiring Ruby developers. If you are an experienced engineer you might be looking for a way to solve a technical problem, for example, you might be considering Rails or Hanami to build your next web application.&lt;/p&gt;

&lt;p&gt;The point I want to make here is that even though job market and technical considerations are definitely important, making sure that your values align with the ones of the community you will help you stay motivated and keep improving even when faced with hard challenges. Ruby is not just a beautifully designed language (which turned out to be great for building web applications) but it also has a great community around it which will inspire and help you constantly improve your engineering skills.&lt;/p&gt;

&lt;p&gt;Everything that follows in this article is anecdotal and based on my own personal experience, so handle with care. Despite that, I think it is worth sharing as an invitation to reflect on what values are important to you and if your community is helping you let them flourish. So, what are the values of the Ruby community? While I can’t speak for the community itself this is what I think best describes the Rubyists out there.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.alfredo.motta.name/the-often-overlooked-consideration-when-choosing-ruby-as-your-next-programming-language/"&gt;Read full story here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
    </item>
    <item>
      <title>An Introduction to Event Sourcing for Rubyists</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Sun, 13 May 2018 09:36:13 +0000</pubDate>
      <link>https://dev.to/mottalrd/an-introduction-to-event-sourcing-for-rubyists-41e5</link>
      <guid>https://dev.to/mottalrd/an-introduction-to-event-sourcing-for-rubyists-41e5</guid>
      <description>

&lt;p&gt;Video here: &lt;a href="https://skillsmatter.com/skillscasts/11903-an-introduction-to-event-sourcing"&gt;https://skillsmatter.com/skillscasts/11903-an-introduction-to-event-sourcing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Slides here: &lt;a href="https://speakerdeck.com/mottalrd/an-introduction-to-event-sourcing-for-rubyists"&gt;https://speakerdeck.com/mottalrd/an-introduction-to-event-sourcing-for-rubyists&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code here: &lt;a href="https://gist.github.com/mottalrd/52a99a0a67275013df5a66281a4a1b11"&gt;https://gist.github.com/mottalrd/52a99a0a67275013df5a66281a4a1b11&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Event sourcing is a design pattern to build applications that are domain centric and easy to extend. The pattern is based on the usage of a persistent event log which substitutes the more classical relational database model for Rails applications.&lt;/p&gt;

&lt;p&gt;Last week I gave this presentation at the London Ruby User Group. You can find the details of what I learned over the last year using such pattern, hope you enjoy it!&lt;/p&gt;


</description>
      <category>ruby</category>
      <category>rails</category>
      <category>eventsourcing</category>
      <category>ddd</category>
    </item>
    <item>
      <title>To raise or not to raise exceptions, and the art of designing return values</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Fri, 03 Nov 2017 08:46:55 +0000</pubDate>
      <link>https://dev.to/mottalrd/to-raise-or-not-to-raise-exceptions-and-the-art-of-designing-return-values-3m7</link>
      <guid>https://dev.to/mottalrd/to-raise-or-not-to-raise-exceptions-and-the-art-of-designing-return-values-3m7</guid>
      <description>&lt;p&gt;Each time we call a function that’s meant to perform some operation that could succeed or fail we are always left with the same dilemma. What should be the return value? Should I return nil if a failure happened? Or I should throw an exception? What does failure means anyway?&lt;/p&gt;

&lt;p&gt;Like every interesting question, the answer is it depends. &lt;a href="http://www.alfredo.motta.name/to-raise-or-not-to-raise-exceptions/"&gt;In this blog post&lt;/a&gt;, I’ll bring clarity to the discussion and present what are the tradeoffs involved and how to choose between the existing alternatives.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.alfredo.motta.name/to-raise-or-not-to-raise-exceptions/"&gt;Read the full story here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Create isolated Jupyter kernels with pyenv and virtualenv</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Mon, 30 Oct 2017 08:48:14 +0000</pubDate>
      <link>https://dev.to/mottalrd/create-isolated-jupyter-kernels-with-pyenv-and-virtualenv-9nh</link>
      <guid>https://dev.to/mottalrd/create-isolated-jupyter-kernels-with-pyenv-and-virtualenv-9nh</guid>
      <description>&lt;p&gt;Everyone loves isolation. Makes our life easier and our systems much more robust. Isolating Jupyter notebooks makes no exception. Maybe you want to try some cutting edge scientific library, or more simply your latest project dependencies are not compatible with your current system setup.&lt;/p&gt;

&lt;p&gt;Whatever is your situation, follow me in this simple tutorial on how to create an isolated python notebook kernel.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/"&gt;http://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking forward to hearing your comments! If you enjoy what I write you can also follow me on &lt;a href="https://twitter.com/mottalrd"&gt;twitter&lt;/a&gt; so I'll see you there too&lt;/p&gt;

</description>
      <category>python</category>
      <category>jupyter</category>
      <category>datascience</category>
    </item>
    <item>
      <title>How to isolate complex queries in an object oriented fashion</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Fri, 27 Oct 2017 07:28:29 +0000</pubDate>
      <link>https://dev.to/mottalrd/how-to-isolate-complex-queries-in-an-object-oriented-fashion-nd</link>
      <guid>https://dev.to/mottalrd/how-to-isolate-complex-queries-in-an-object-oriented-fashion-nd</guid>
      <description>&lt;p&gt;Building complex queries in ruby can make your code quite difficult to read, manage and reuse. In this blog post I'll present a simple method to decorate active record objects to make your queries fun again!&lt;/p&gt;

&lt;p&gt;Continue reading here: &lt;a href="http://www.alfredo.motta.name/how-to-isolate-complex-queries-in-an-object-oriented-fashion/"&gt;http://www.alfredo.motta.name/how-to-isolate-complex-queries-in-an-object-oriented-fashion/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking forward to hearing your comments!&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>activerecord</category>
      <category>rails</category>
    </item>
    <item>
      <title>Learning to rank with Python scikit-learn</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Mon, 23 Oct 2017 05:43:57 +0000</pubDate>
      <link>https://dev.to/mottalrd/learning-to-rank-with-python-scikit-learn-5ma</link>
      <guid>https://dev.to/mottalrd/learning-to-rank-with-python-scikit-learn-5ma</guid>
      <description>

&lt;p&gt;If you run an e-commerce website a classical problem is to rank your product offering in the search page in a way that maximises the probability of your items being sold. For example if you are selling shoes you would like the first pair of shoes in the search result page to be the one that is most likely to be bought.&lt;/p&gt;

&lt;p&gt;Thanks to the widespread adoption of machine learning it is now easier than ever to build and deploy models that automatically learn what your users like and rank your product catalog accordingly. In this blog post I'll share how to build such models using a simple end-to-end example using the movielens open dataset.&lt;/p&gt;

&lt;p&gt;Read the full article here: &lt;a href="http://www.alfredo.motta.name/learning-to-rank-with-python-scikit-learn/"&gt;http://www.alfredo.motta.name/learning-to-rank-with-python-scikit-learn/&lt;/a&gt;&lt;/p&gt;


</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>scikitlearn</category>
    </item>
    <item>
      <title>Making Ruby Hash#dig even more awesome. Introducing Hash#dig_and_collect</title>
      <dc:creator>Alfredo Motta</dc:creator>
      <pubDate>Wed, 17 May 2017 10:43:54 +0000</pubDate>
      <link>https://dev.to/mottalrd/making-ruby-hashdig-even-more-awesome-introducing-hashdigandcollect</link>
      <guid>https://dev.to/mottalrd/making-ruby-hashdig-even-more-awesome-introducing-hashdigandcollect</guid>
      <description>&lt;p&gt;In this blog post I will introduce &lt;code&gt;Hash#dig_and_collect&lt;/code&gt;, a simple utility method that is built on top of &lt;code&gt;Hash#dig&lt;/code&gt; to help you navigate nested hashes mixed up with arrays.&lt;/p&gt;

&lt;p&gt;Check out the full story here:&lt;br&gt;
&lt;a href="http://www.alfredo.motta.name/making-ruby-hashdig-even-more-awesome-introducing-hashdig_and_collect/"&gt;http://www.alfredo.motta.name/making-ruby-hashdig-even-more-awesome-introducing-hashdig_and_collect/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
    </item>
  </channel>
</rss>
