<?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[Stories by Robby Russell on Medium]]></title>
        <description><![CDATA[Stories by Robby Russell on Medium]]></description>
        <link>https://medium.com/@robbyrussell?source=rss-ac1b810bb849------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*5BW2ZSgUIuTuAV-6u08A4Q.jpeg</url>
            <title>Stories by Robby Russell on Medium</title>
            <link>https://medium.com/@robbyrussell?source=rss-ac1b810bb849------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 24 May 2026 07:19:39 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@robbyrussell/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[3 Reasons Why You Shouldn’t Outsource Your Rails Upgrades]]></title>
            <link>https://medium.com/planet-argon-tenets/3-reasons-why-you-shouldnt-outsource-your-rails-upgrades-a747ceb5cfc9?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/a747ceb5cfc9</guid>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[technical-debt]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Thu, 21 May 2020 01:45:11 GMT</pubDate>
            <atom:updated>2020-05-21T01:46:01.347Z</atom:updated>
            <content:encoded><![CDATA[<p><em>(from someone who gets hired to handle your upgrades)</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*S-stIOVv-oLQtyWI.png" /></figure><p>Does the following sound familiar?</p><p>You found product/market fit and have since grown a small-to-medium size software engineering team. A few of your developers have been around for a majority of your application’s lifespan, but most of your team is somewhat new.</p><p>You hired additional developers because the cycle time was slowing. Your team is experiencing some growing pains. They’re focused on what’s next in the Product Backlog and keeping things stable for your end-users. They’ve been doing a pretty good job at that.</p><p>As new team members have come in, it’s been a challenge to solidify some of your processes around handling tasks like:</p><ul><li>Pull-requests</li><li>Documentation</li><li>Improving your tests</li><li>Formalizing your QA process</li><li>Mentoring</li><li>Debating what tools you’ll use for what</li></ul><p>Phrases like “technical debt” and “legacy code” show up in planning meetings but it’s not clear what should be done about that. You’ll find some time to deal with that one day. <em>Right?</em></p><p>If we’re being honest with each other, just <em>how</em> important are those concerns anyhow?</p><p>Your stakeholders (or product owners?) have heard these phrases a number of times but don’t seem to “get it.” Your team doesn’t know how to best advocate for dealing with them. I mean…if they really cared about the underlying technical problems your team is experiencing, they would <em>obviously</em> prioritize them, right?</p><p>So, it continues to get tossed into the someday/maybe pile.</p><p>Someday.</p><p>Someday…your team will have fewer priorities on their plate and they can spend that spare time to address some of those issues.</p><p>The team stops raising these concerns. They assume that nobody really cares, or that it’s someone else’s responsibility.</p><h3>A big problem — your Rails version falls behind</h3><p>Eventually, someone raises a very specific problem. Your Ruby on Rails application has fallen a few major versions behind the latest stable release ( <a href="https://rubyonrails.org/">currently v6.0.x</a>). Unlike most technical debt concerns, an overdue upgrade to your application’s programming language and/or framework is easier for engineers and stakeholders to get on the same page.</p><blockquote>“The version we’re running on is no longer actively supported.”</blockquote><blockquote>“We will no longer receive ‘security patches’ until we update.”</blockquote><blockquote>“We should see some performance gains and ability to use newer features, too!”</blockquote><p>Nobody wants their application hacked and/or data stolen and shared on the dark web — so the security angle is often the easiest-to-understand approach for getting buy-in.</p><p>The team agrees to start exploring an upgrade. Before you get too far ahead of yourselves, an engineer on your team volunteers to do a deep dive into exploring just how big of a project a Ruby on Rails upgrade might be. We always appreciate when someone raises their hand to be a trailblazer.</p><p>They create a new branch in git, begin bumping the versions, start trying to make sense of the configuration changes, wait…are all of our 3rd-party Rubygems compatible? Why are most of our tests failing? Wait, do we even have automated testing on that one critical component in our application? After a day or three of digging into this, something else pops up that your engineer needs to switch over to.</p><p>They can pick this upgrade up again next week. Next week comes and goes. It’s unintentionally fallen back on the someday/maybe list, again.</p><p>Sound familiar?</p><p>Upgrades are complicated…but perhaps not for the reasons you believe they might be.</p><p>From a technical level, there is an abundance of valuable information available online to help engineers work through coding updates that are required to perform an upgrade.</p><p>The primary problem tends to be with your team being able to gain momentum.</p><p>Upgrade projects are difficult to jump in and out of. We’ve heard many stories of how 1–2 developers got a week or two into an upgrade, then had to switch over to something else for a while. When it’s time to look back at the upgrade, they’re not able to quickly merge code that they and the rest of the team have been working on in parallel.</p><p>Reality sets in. Can you be successful at continuing to work on the application under the older version of Rails while also trying to get everything working in the upgrade Rails branch? Aligning these types of projects, in parallel, is difficult. Especially if the engineer(s) working on the upgrade are also jumping back into helping with the next priorities in the backlog.</p><p>At this point, your team searches online for someone who has more experience working on upgrades.</p><p>This leads them to find an agency like ours (Planet Argon) to ask the question, <em>“Can your team handle the Rails upgrade for us? We don’t have the time to do it, ourselves.”</em></p><p>While we can respond with, <em>“Yes, yes we can help you with that”</em> …we’re becoming increasingly convinced that you shouldn’t delegate your upgrade to a team like ours. (At least, not quite to the degree that you might be thinking.)</p><p>Let’s dive into our arguments.</p><h3>1. You’re underestimating the time commitment needed.</h3><p>It seems straight forward. Your team has X hours/week to work on the Product Backlog. If you outsource the upgrade to another team, you might believe that your team will only need to spend a few hours each week collaborating with the external team. The conversation with stakeholders to discuss budgets is that it’ll have very little impact on your internal team’s velocity.</p><p>On the surface-level, it seems like a win-win for everyone. However, if you haven’t gone down this path before — you might not realize just how involved one or more of your engineers will need to be to help dig through problems that pop up during the upgrade process.</p><p>This is particularly true if there isn’t much in the way of accurate documentation or automated tests in your application.</p><blockquote>“We have 150 failing specs related in this area of the application. How exactly is this supposed to work?”</blockquote><blockquote>“We merged in your recent upstream changes and noticed that your team is using syntax that will not work with the newer version of Ruby.”</blockquote><blockquote>“This upgrade is going to require that we replace the following Rubygems. Is that something that your team will be able to start transitioning to or should we try to do that ourselves? Again, how should this feature work?”</blockquote><p>Knowing that some level of this will likely happen — you assign one of your more Senior Engineers to act as a Technical Lead/project liaison. It’s not their only project to oversee.</p><p>Is it a safe assumption that they can’t be 100% focused on the upgrade — because if they could, wouldn’t you just have them lead this themselves?</p><p>So…after the initial <em>“We delegated this to an agency”</em> honeymoon period, your Technical Lead is voicing concerns.</p><blockquote>“This is taking far too much of my time.”</blockquote><blockquote>“I’m not able to focus enough on my own coding commitments.”</blockquote><blockquote>“I feel like we could have done this faster, ourselves.”</blockquote><blockquote>“I feel like a bottleneck.”</blockquote><p>While every project is a little different, it’s been our experience that it is rare for our clients to accurately reserve enough time for them to also be involved in the upgrade project.</p><p>I wish we could say, “You need to be available at least 10 hours/week for our team” but it really depends on what state your application and team’s process is in at the moment.</p><p>This tends to be an ongoing discussion throughout each of our client relationships. It’s an ongoing struggle to achieve perfect harmony.</p><h3>2. The great merge is going to hurt.</h3><p>A logistical challenge with any upgrade project is going to be when the upgrade gets fully merged, deployed, and is considered done. Depending on how rigorous your testing procedures are (automated or not) when you hire an external team, there is a grey area where the upgrade is handed off to your internal team to take ownership of.</p><p>There might be changes to your hosting infrastructure, your deployments, your third-party tools, possible data migrations, etc. This shared area of responsibility, if not carefully planned out, can create some frustration points.</p><p>We’ve encountered several scenarios where our team will get the major upgrade bump essentially finished, but the client’s team will be focused elsewhere at the moment. They don’t have the time to have their QA folks focus on this area, in-depth, nor does it seem like the right time to get the project pushed to production.</p><p>Why not? Risk.</p><blockquote>“There might be new bugs introduced…so we’ll wait for a quieter month in our schedule to roll it out.”</blockquote><blockquote>“This requires data changes and we need to test that out more before we push it out as rolling back will not be a good option.”</blockquote><p>While we have a number of clients who have been able to efficiently roll out an upgrade, we’ve also several sit on an upgrade branch that we “delivered” for a few quarters.</p><p>As I’m typing this; I am thinking about a client we wrapped up working with nearly a year ago. We’re still not certain they finished rolling that upgrade out. Their DevOps team wanted to handle that and from a stakeholder perspective, “it’s nearly finished” seems to be equivalent to “no longer a big problem”.</p><p><em>“Thanks, we can take it from here!”</em></p><p>…but did they?</p><h3>3. You have a process problem; not a technical problem.</h3><p>Your team of Ruby on Rails developers is capable of handling an upgrade — when it comes to the code. There are <a href="https://blog.planetargon.com/entries/helpful-resources-for-your-rails-upgrade">many articles available</a> to help guide them through the common changes between each major version of Rails.</p><p>It’s quite possible that they’ve even participated in a few Rails upgrade projects before.</p><p>What they might not have a lot of experience with is…</p><ul><li>Explaining to stakeholders why upgrades are important.</li><li>Being able to track, measure, and report their progress throughout the upgrade.</li><li>Knowing how to best divvy up upgrade work amongst multiple team members so they aren’t all trying to solve the same problems, in parallel.</li><li>Getting multiple team members up-to-speed with the project.</li><li>Figuring out a healthy way to rotate who is involved in the upgrades.</li><li>Fighting the urge to debate a, <em>“it would be easier if we just rewrote it.”</em> conversation (hint: no, it wouldn’t).</li><li>Handling the scenario when we need to temporarily hit PAUSE on the upgrade to shift gears to focus on another company priority (without losing too much momentum).</li><li>Finding sanity when there are over <a href="https://blog.planetargon.com/entries/how-to-deal-with-1000-failing-specs-in-a-rails-app">1000 failing specs</a> and trying to debug and resolve that.</li><li>Exploring ways to make upgrades safer and faster in the long-run. (ProTip: Setting up a dual-boot approach)</li><li>Making sure you aren’t reliant on a single developer to see it all the way from start-to-end.</li><li>Avoiding burnout when it ends up taking far longer than your team expected it to.</li><li>..and most importantly, not having the next upgrade get put off for another 3–4 years.</li></ul><p>Depending on how your upgrade project pans out, it could very well lead to introduce some residual trauma amongst your team and stakeholders.</p><p>This is, ultimately, why teams like yours reach out to companies like Planet Argon. You want your organization and team to get over these hurdles as painlessly as possible.</p><p>There’s an illusion that once you get caught up — your team will be able to successfully be able to keep up going forward. If that were true, wouldn’t you have been able to keep up with the latest version of Rails from the start of the project, all along?</p><p>Unless you make a commitment to making tactical changes to your regular development cadence, you will end up in this painful position, again.</p><h3>Okay, so what should you do?</h3><p>First, you need to admit that you have a bigger challenge here. There is a localized goal of being able to cross off a sizable task from your todo list. It’ll probably feel great but if we’re being honest, we both know that you’re going to find yourself in a similar position, again, in the next 1–2 years.</p><p>This is where we strongly recommend that you approach this as a global challenge with your team. That is if you want to avoid having to come back and try and sell an upgrade to those controlling the budget in the not-so-distant future.</p><p>“Did we not just pay for a big upgrade a little over a year ago?”</p><p>We both know that conversation isn’t going to be met with a blank check. So, you’ll opt to wait another year. The price tag increases.</p><h3>Focus on the processes that led to your team falling behind</h3><p>What your team needs is a cohesive strategy and processes for your team so that this just becomes part of your team’s regular workflow and routine. What if we could automate some aspects to upgrades while also making sure that your team has the authority to keep moving things forward, without it needing to put the rest of the Product Backlog on hold?</p><p>What we recommend here is to outline a process blueprint for your team. A guide that will help your team determine who is responsible for what, the frequency of when certain updates should be made, and to maintain a regular scorecard to help highlight whether your software is starting to fall off the rails, again.</p><h3>Pick a strategy for technical debt repayment — and stick to it</h3><p>With the constant go, go, go of new product development, technical debt is the unglamorous work that gets sidelined indefinitely. We have heard stories about this over and over from engineering teams of all sizes on our technical debt-focused podcast, <a href="https://maintainable.fm/">Maintainable</a>.</p><p>A few recommendations:</p><ul><li><a href="https://www.maintainable.fm/episodes/mariah-howard">Mariah Howard: How To Discuss Technical Debt With Product Managers</a></li><li><a href="https://www.maintainable.fm/episodes/eileen-uchitelle-upgrading-ruby-on-rails">Upgrading Ruby on Rails with Eileen Uchitelle</a></li><li><a href="https://www.maintainable.fm/episodes/sandi-metz-making-is-easy-mending-is-a-challenge">Making is Easy, Mending is A Challenge with Sandi Metz</a></li></ul><p>Part of solving your ongoing problem is to give your developers time to fix these issues as they pop up. This might require specific members of your team to focus on technical debt or to have some sort of backlog system for this type of issue. Whatever strategy you pick, stick to it, and hold your whole team accountable — including looping in your stakeholders to set expectations.</p><h3>Hire consultants to focus on the long-term problem, not a quick fix</h3><p>Outsourcing the bulk of your Rails upgrade is a temporary solution to a long-term problem. If you want to avoid needing to outsource this type of work every other year or so, we encourage you to seek a team that can focus on helping guide your team through this process, yourselves.</p><p>We believe that your team is fully capable of getting these issues ironed out. Having worked on ~100 Ruby on Rails applications since 2005, we have a lot of experience tackling the upgrades. As much as we do enjoy rolling up our sleeves and digging into a big gnarly upgrade, we really believe that your team will benefit more from doing more of the underlying work themselves.</p><p>We’d love to show you how.</p><figure><a href="https://www.planetargon.com/services/rails-upgrade-kickoff"><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*u8m8ROjvo5Worcl0.png" /></a></figure><p><em>Originally published at </em><a href="https://blog.planetargon.com/entries/3-reasons-why-you-shouldnt-outsource-your-rails-upgrades"><em>https://blog.planetargon.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a747ceb5cfc9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/planet-argon-tenets/3-reasons-why-you-shouldnt-outsource-your-rails-upgrades-a747ceb5cfc9">3 Reasons Why You Shouldn’t Outsource Your Rails Upgrades</a> was originally published in <a href="https://medium.com/planet-argon-tenets">Planet Argon</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[An invitation to listen to Maintainable Software Podcast]]></title>
            <link>https://medium.com/@robbyrussell/an-invitation-to-listen-to-maintainable-software-podcast-1e8eab3633ac?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/1e8eab3633ac</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[podcast]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Tue, 09 Jul 2019 15:50:19 GMT</pubDate>
            <atom:updated>2019-07-10T01:52:04.408Z</atom:updated>
            <content:encoded><![CDATA[<iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBZB8dAcnCBI%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBZB8dAcnCBI&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBZB8dAcnCBI%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/8d8873e611577cc36a122618f3505644/href">https://medium.com/media/8d8873e611577cc36a122618f3505644/href</a></iframe><p>Around a year ago, I was chatting with a good friend about an idea I had for a podcast. Over the last several years, I’ve learned that I’ve become really focused on improving existing software over building something new.</p><p>I’m not <a href="https://medium.com/@robbyrussell/herzogs-cave-of-forgotten-code-432f73cf1903">a maker</a>. That is somewhat true, I prefer to spend more of my time improving something than making something from scratch.</p><p>The concept for the <a href="https://maintainable.fm">Maintainable podcast</a> was to challenge myself with finding a diverse collection of experienced professionals from our industry — and to hear their stories about how they played a part in improving existing software.</p><p>While we, as an industry, are creating a ton of new things — we also need to be focused on making the existing things better today than we found them yesterday. We don’t need to label this as “legacy code” — it’s just code.</p><p>As of today, my team has helped me publish 13 episodes (with several more on the way). I’ve had an opportunity to speak with people like:</p><ul><li><a href="https://maintainable.fm/episodes/charity-majors-deploys-are-just-the">Charity Majors</a> of Honeycomb who thinks we need to spend more time “testing” in production.</li><li><a href="https://maintainable.fm/episodes/eileen-uchitelle-upgrading-ruby-on-rails">Eileen M. Uchitelle</a> of GitHub on how to tackle a large Ruby on Rails upgrade.</li><li><a href="https://maintainable.fm/episodes/matt-weagle-what-will-it-enable-us-to-do-in-the-future">Matt Weagle</a>, Engineering Manager at Lyft on coaching developers on how to better discuss technical debt</li><li><a href="https://maintainable.fm/episodes/coraline-ada-ehmke-the-role-of-empathy-in-engineering-teams">Coraline Ada Ehmke</a>, Principal Engineer at Stitch Fix on the role of empathy in the workplace</li><li><a href="https://maintainable.fm/episodes/pim-elshoff-refactoring-how-engineers-c">Pim Elshoff</a> a software developer at Procurious about communication tactics within technical teams</li><li>…and several other people that I have learned a lot from.</li></ul><p>Have you heard any of the episodes yet? (and find value in it?) If so, it would mean the world to me if you could take a moment to <a href="https://podcasts.apple.com/us/podcast/maintainable/id1459893010">add a rating on Apple Podcasts</a>. 😊</p><p>If you haven’t, I invite you to listen to an episode or two at <a href="https://maintainable.fm">Maintainable.fm</a>.</p><figure><a href="https://maintainable.fm"><img alt="" src="https://cdn-images-1.medium.com/max/518/1*w61FIl-cspJ0Stzv8FR4HQ.jpeg" /></a></figure><p><em>Originally published at </em><a href="https://dev.to/planetargon/an-invitation-to-listen-to-maintainable-software-podcast-56pi"><em>https://dev.to</em></a><em> on July 9, 2019.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1e8eab3633ac" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hello, Maintainable Software Podcast.]]></title>
            <link>https://medium.com/planet-argon-tenets/hello-maintainable-software-podcast-90c97ec4236?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/90c97ec4236</guid>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[podcast]]></category>
            <category><![CDATA[technical-debt]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Tue, 23 Apr 2019 01:09:48 GMT</pubDate>
            <atom:updated>2019-04-23T01:47:11.324Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*o57fbVyf5VOjpk3mB73mTA.png" /><figcaption><a href="https://maintainable.fm/">Maintainable Software Podcast</a></figcaption></figure><p>First off, do we <em>really</em> need — another — podcast about software development?</p><p>For a number of years, I’ve been kicking around the idea of starting a podcast to talk with people about software but really felt like it’s a saturated market. I kept telling myself that I wouldn’t pursue anything that was focused on a specific technology choice (i.e., <a href="http://www.robbyonrails.com/">Robby on Rails</a> almost graduated to be a podcast several times over the last 15 years?). I also have very little interest in talking about <em>“what’s shiny/new/hot in our industry”</em>, either.</p><p>There are plenty of podcasts for that.</p><p>Last year, I found myself thinking a lot more about what starts to happen to software after it’s been through many different iterations, phases, engineering teams, and pivots. I’m really not an advocate of the BIG REWRITE and think that developers far too often find themselves starting to dread working on their code bases.</p><p>As a result, momentum slows down. Team’s get discouraged. People quit. New people get hired. More people complain about the state of the code base. More time passes…and the problems have become far more problematic than they ever needed to.</p><p>Does this sound remotely familiar?</p><p>I’ll be honest. You’re not alone.</p><p>A lot of us have felt this. In many scenarios, we’ve felt that the only way out of the problem is to quit and find somewhere with a better code base to work on.</p><p>However, there are tons of scenarios where the company has good intentions but their trajectory has compromised their technology decisions…a few too many times. What they really need is an advocate — from within — to help them start making positive steps to their ideal future.</p><p>I want to talk about <a href="https://www.amazon.com/Messy-Middle-Finding-Through-Hardest/dp/0735218072">“The Messy Middle”</a> phases of software development. (btw, a great book by <a href="https://medium.com/u/f8025419d9c8">Scott Belsky</a>). This is why the team at Planet Argon has helped me launch the Maintainable Software Podcast.</p><p>On the podcast, I’ll be speaking with seasoned veterans of our industry…who have seen some 💩 over the years and have been able to help organizations push through the problems often associated with technical debt and legacy code.</p><p>The first two episodes are now published for your listening pleasure.</p><p>On this first episode, I speak with <a href="https://medium.com/u/c5fd3576d312">Anna Filina</a> about what technical debt is and how we don’t need to ask for permission to adopt better development processes.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fembed.simplecast.com%2Fb398f5e4&amp;url=https%3A%2F%2Fsimplecast.com%2Fs%2Fb398f5e4&amp;image=https%3A%2F%2Fmedia.simplecast.com%2Fepisode%2Fimage%2F291616%2Fthumb_1555953940-artwork.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=simplecast" width="400" height="200" frameborder="0" scrolling="no"><a href="https://medium.com/media/31f10337849ac499cae1f18ca5c53afd/href">https://medium.com/media/31f10337849ac499cae1f18ca5c53afd/href</a></iframe><p>On the second episode, I speak with <a href="https://medium.com/u/f7068b07493d">James Smith</a> about ways to measure the reliability and technical debt of an application’s code base.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fembed.simplecast.com%2Fa59698d0&amp;url=https%3A%2F%2Fsimplecast.com%2Fs%2Fa59698d0&amp;image=https%3A%2F%2Fmedia.simplecast.com%2Fepisode%2Fimage%2F288903%2Fthumb_1555953967-artwork.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=simplecast" width="400" height="200" frameborder="0" scrolling="no"><a href="https://medium.com/media/6065dd92b94f8cea21aa09cb40b1d093/href">https://medium.com/media/6065dd92b94f8cea21aa09cb40b1d093/href</a></iframe><h3>FAQs</h3><h4>Q. How often will you be publishing?</h4><p>A. I’m aiming for weekly releases (for half of the year… maybe a spring + autumn schedule).</p><h4>Q. Where can I subscribe to Maintainable?</h4><p>Great question! Here are a few places</p><ul><li><a href="https://open.spotify.com/show/6Ah6xxZ04VQBqjBB5ZU0Ll?si=WcBTIfdvToSY3VtMFWA1lQ">Spotify</a></li><li><a href="https://overcast.fm/itunes1459893010/maintainable">Overcast</a></li><li><a href="https://podcasts.apple.com/us/podcast/maintainable/id1459893010">Apple Podcasts</a></li><li><a href="https://www.stitcher.com/podcast/maintainable">Stitcher</a></li><li><a href="https://www.maintainable.fm/">via RSS</a></li></ul><h4>Q. What if I have some great stories to share?</h4><p>A. If you think you’d make a good guest for the podcast, do get in touch with me via robby@maintainable.fm to pitch a topic or three.</p><h4>Q. How can I help promote Maintainable?</h4><p>A. Another great question, you ask the best ones!</p><p>You could share links on social media, follow <a href="https://twitter.com/_maintainable">Maintainable on Twitter</a>, re-tweet links to episodes you find value in, <a href="https://podcasts.apple.com/us/podcast/maintainable/id1459893010">post an honest review</a> on Apple/iTunes, etc.</p><p><a href="https://www.linkedin.com/feed/hashtag/?keywords=%23BecauseARewriteIsWorse">#BecauseARewriteIsWorse</a> <a href="https://www.linkedin.com/feed/hashtag/?keywords=%23technicaldebt">#technicaldebt</a> <a href="https://www.linkedin.com/feed/hashtag/?keywords=%23softwareengineering">#softwareengineering</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=90c97ec4236" width="1" height="1" alt=""><hr><p><a href="https://medium.com/planet-argon-tenets/hello-maintainable-software-podcast-90c97ec4236">Hello, Maintainable Software Podcast.</a> was originally published in <a href="https://medium.com/planet-argon-tenets">Planet Argon</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ My birthday gift to you. The Planet Argon Tech Internship Toolkit]]></title>
            <link>https://medium.com/planet-argon-tenets/my-birthday-gift-to-you-the-planet-argon-tech-internship-toolkit-8cc672fae6b4?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/8cc672fae6b4</guid>
            <category><![CDATA[leadership]]></category>
            <category><![CDATA[internships]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[tech]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Wed, 05 Dec 2018 15:26:15 GMT</pubDate>
            <atom:updated>2018-12-06T19:19:40.058Z</atom:updated>
            <content:encoded><![CDATA[<h3>🎂 My birthday gift to you. The Planet Argon Tech Internship Toolkit 🚀</h3><h4>Cultivate our industry’s next generation of talent while improving your team’s mentorship skills.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qjrE5QMVK0cjK6T6wtUTKA.jpeg" /></figure><p>Running tech internships at <a href="https://www.planetargon.com">Planet Argon</a> has become a regular activity. We’ve had nine separate interns this year (2018) alone and will have around the same number next year. We’re a small company (&lt; 12 employees)…yet we find a way to make this work well for our interns and ourselves.</p><figure><a href="https://www.planetargon.com/internships/toolkit"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*676HfrfVu75N0aHkrKKQGg.png" /></a><figcaption>Go download our tech internship toolkit — it’s free!</figcaption></figure><p>One of our business goals is to be seen as an example for <a href="https://www.planetargon.com/internship">running great internships</a> and to “open source” how we do it.</p><p>We know there are a lot of organizations that are intern-curious but don’t know how and/or where to start.</p><p>…which is where I found myself back in 2009 when I tweeted:</p><h3>Robby Russell 🐘🚂 on Twitter</h3><p>Anybody have experience overseeing interns? We&#39;ve been reluctant to do it in the past because we aren&#39;t sure what is expected...</p><p>A decade later, I’m delighted to share our philosophy and approach to running a great internship with you.</p><p>Are you considering bringing on an intern or five in 2019 and aren’t quite sure where to start? OR are you want to streamline an existing internship program a touch?</p><p>Today I’m delighted to share the <a href="https://www.planetargon.com/internships/toolkit">Planet Argon Tech Internship Toolkit</a> with you. It’s free.</p><p>We touch on how to a) recruit interns b) how to onboard interns c) how to challenge interns d) how to learn from interns and e) how to send them off into the wild — ready to get their new career started.</p><p>Today is my birthday and this is my gift to you.</p><h4><a href="https://www.planetargon.com/internships/toolkit"><strong>Read and/or download the toolkit</strong></a></h4><p>Should you find some valuable tidbits in the toolkit, please consider sharing it with your peer networks.</p><iframe src="https://www.instagram.com/p/Bm4Ibe5hlNC/embed" width="658" height="728" frameborder="0" scrolling="no"><a href="https://medium.com/media/d5de45a16528c9e4d666566c378a8e59/href">https://medium.com/media/d5de45a16528c9e4d666566c378a8e59/href</a></iframe><p>P.S. a huge thanks to all or our past interns for helping each of us become better versions of ourselves.</p><p><a href="https://blog.planetargon.com/entries/my-birthday-gift-to-you-the-planet-argon-tech-internship-toolkit"><em>This was originally published on blog.planetargon.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8cc672fae6b4" width="1" height="1" alt=""><hr><p><a href="https://medium.com/planet-argon-tenets/my-birthday-gift-to-you-the-planet-argon-tech-internship-toolkit-8cc672fae6b4">🎂 My birthday gift to you. The Planet Argon Tech Internship Toolkit</a> was originally published in <a href="https://medium.com/planet-argon-tenets">Planet Argon</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Insights: 2018 Ruby on Rails Community Survey]]></title>
            <link>https://medium.com/free-code-camp/insights-2018-ruby-on-rails-community-survey-30632eccf1f3?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/30632eccf1f3</guid>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ruby]]></category>
            <category><![CDATA[data-analysis]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Sat, 05 May 2018 13:13:15 GMT</pubDate>
            <atom:updated>2018-05-16T20:31:37.885Z</atom:updated>
            <content:encoded><![CDATA[<p>We recently published <a href="http://rails-hosting.com/2018/">the final results</a> from our semi-biennial survey that we’ve been conducting for nearly a decade. Over 2,000 Rails developers responded from 72 different countries across the globe. We posted a collection of articles about a few of the results that caught our attention:</p><ul><li><a href="http://blog.planetargon.com/entries/the-state-of-test-coverage-in-rails">The State of Test Coverage in Rails</a></li><li><a href="https://blog.planetargon.com/entries/keeping-ruby-on-rails-on-track-with-containers">Keeping Ruby on Rails on Track with Containers</a></li><li><a href="http://blog.planetargon.com/entries/code-quality-matters-in-rails">Code Quality Matters in Rails</a></li></ul><p>In addition, I’ve prepared a short video presentation to talk through further data points that were a bit surprising…while injecting my take on what might be contributing to them.</p><p><strong><em>Are Rails developers keeping their apps updated? Is Ruby on Rails attracting new developers? What RubyGems are keeping developers awake at night? …is Ruby on Rails dying?</em></strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F1cdUIVWzn5M%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D1cdUIVWzn5M&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F1cdUIVWzn5M%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/9b87f63227b1b440125b1dc496be11db/href">https://medium.com/media/9b87f63227b1b440125b1dc496be11db/href</a></iframe><p>If you’re interested in learning more about the state (and history) of the Ruby on Rails community — visit <a href="http://rails-hosting.com/">http://rails-hosting.com/</a></p><p>What were you most surprised to learn about in this year’s survey results?</p><p><a href="https://www.planetargon.com/about/robby-russell">Robby Russell</a> is the VP of Engineering and a partner of <a href="https://www.planetargon.com/">Planet Argon</a>, a <a href="https://www.planetargon.com/services/ruby-on-rails-development">Ruby on Rails development firm</a> based in Portland, Oregon.</p><h3><strong>A few related articles:</strong></h3><ul><li><a href="https://medium.com/planet-argon-tenets/7-steps-to-take-over-an-existing-rails-app-before-you-write-a-line-of-code-c2327c356634">7 Steps to Take Over an Existing Rails App (Before You Write A Line Of Code)</a></li><li><a href="https://medium.com/planet-argon-tenets/healthcare-on-rails-why-these-10-companies-chose-ruby-on-rails-6ac435984467">Healthcare on Rails: Why these 10 companies chose Ruby on Rails</a></li><li><a href="https://medium.com/planet-argon-tenets/ruby-on-rails-code-audits-8-steps-to-review-your-app-d08dc4375df2">Ruby on Rails Code Audits: 8 Steps to Review Your App</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=30632eccf1f3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/free-code-camp/insights-2018-ruby-on-rails-community-survey-30632eccf1f3">Insights: 2018 Ruby on Rails Community Survey</a> was originally published in <a href="https://medium.com/free-code-camp">We’ve moved to freeCodeCamp.org/news</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[INSTRUMENTAL Post-Rock Music to Work and Focus to]]></title>
            <link>https://medium.com/@robbyrussell/instrumental-post-rock-music-to-work-and-focus-to-5f6316fb08cf?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/5f6316fb08cf</guid>
            <category><![CDATA[work]]></category>
            <category><![CDATA[focus]]></category>
            <category><![CDATA[music]]></category>
            <category><![CDATA[post-rock]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Sun, 18 Mar 2018 23:59:48 GMT</pubDate>
            <atom:updated>2018-03-18T23:59:48.572Z</atom:updated>
            <content:encoded><![CDATA[<p>Whether I am researching solutions, writing code, or organizing my email…I’m usually doing that with some music in the background in my headphones.</p><p>When I’m in this mode — I try to remove music with vocals so that I can focus on my task on hand and less on the stories being shared. So, I tend to always be on the lookout for new instrumental music to put on as my daily soundtrack.</p><p>Recently, I decided to start curating a few new playlists and wanted to share.</p><p>Here is one that now has over six hours of music from instrumental post-rock bands from around the globe. You can listen along on Spotify <a href="https://open.spotify.com/user/robbyrussell/playlist/0kpWAohBQ0VVRQkeh1eZg4?si=0nh9tlYmQEKjh6v5yPlK9g">here</a>.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fopen.spotify.com%2Fembed%2Fuser%2Frobbyrussell%2Fplaylist%2F0kpWAohBQ0VVRQkeh1eZg4&amp;url=https%3A%2F%2Fopen.spotify.com%2Fuser%2Frobbyrussell%2Fplaylist%2F0kpWAohBQ0VVRQkeh1eZg4&amp;image=https%3A%2F%2Fpl.scdn.co%2Fimages%2Fpl%2Fdefault%2F4c09047f77c7f27c44461cffcde8b77b5ff91b99&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=spotify" width="300" height="380" frameborder="0" scrolling="no"><a href="https://medium.com/media/9d68f94d1d39e58db5f5cd93f7e50d07/href">https://medium.com/media/9d68f94d1d39e58db5f5cd93f7e50d07/href</a></iframe><p>Also, disclaimer… my band, “<a href="https://open.spotify.com/artist/2hdPrlDzLhhuwSnRioIdqh?si=wqRfYTsyRgO08xyhrlbbQw">The Mighty Missoula</a>” shows up in here, too. ;-)</p><p>Let me know what you think! Do you have a favorite playlist to listen to while working and/or focusing? Share a link below. 🙃</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5f6316fb08cf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 Steps to Take Over an Existing Rails App (Before You Write A Line Of Code)]]></title>
            <link>https://medium.com/planet-argon-tenets/7-steps-to-take-over-an-existing-rails-app-before-you-write-a-line-of-code-c2327c356634?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/c2327c356634</guid>
            <category><![CDATA[project-management]]></category>
            <category><![CDATA[business-strategy]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Mon, 26 Feb 2018 21:35:11 GMT</pubDate>
            <atom:updated>2018-02-26T21:35:11.181Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*meE5RDaTC5AhcyVQ.png" /></figure><p>The majority of Ruby on Rails applications that we provide long-term maintenance and development on are inherited. Our clients usually bring applications to us that were originally built by a freelancer, in-house developers, or another agency.</p><p>Over a dozen years of working on apps, I believe we do our best work when improving and evolving existing Ruby on Rails application.</p><p>One of the best aspects about Ruby on Rails community is that when conventions are followed we’re able to dive in fairly quickly to an existing code base and have a sense of how things fit together.</p><p>But inheriting a “legacy” Rails application requires a certain few steps before you ever type a line of code. It’s impossible to accurately estimate the amount of time it will take to accomplish a task, let alone actually complete the task itself, without taking the time to explore and understand how the app is currently architected and working.</p><p>So what does our process look like before we begin working on an existing Rails application?</p><p>Here are seven steps that we take when we inherit a legacy Ruby on Rails app, why they’re important, and how these processes support our ability to improve our clients’ products.</p><h3>Step 1. Have the stakeholder(s) explain their business</h3><p>We do this through a series of questions in our initial calls with a potential client. Depending on the company, we meet with anyone from marketing managers to designers to directors of technology. Here are some of the questions we ask about in our first few conversation.</p><ul><li>What does their business do?</li><li>What industry do they work in?</li><li>Who are some of their biggest competitors?</li><li>How do they make decisions?</li><li>How would they describe their company culture?</li><li>How does this application fit into their software ecosystem?</li><li>Do their customers interact with it?</li><li>Do third-party vendors/partners need to interact with it?</li><li>And/or is this primarily for behind-the-scenes operations?</li><li>Have they developed APIs within the app that need to be exposed for external and/or internal tools? If so, who relies on those?</li><li>Does this application facilitate any financial transactions?</li><li>Does this application store any extremely sensitive data? (i.e., Health records, billing information, personal data, etc.)</li><li>Is it mission-critical? If the project went down in the middle of a Saturday evening — what impact would that have on their business?</li></ul><h3>Step 2: What isn’t working?</h3><p>Every client, with an existing application, comes to us with a story of things that have worked well (and not so well) with their application.</p><ul><li><strong>Are their areas of their app that <em>seem</em> brittle?</strong> Are there pieces that seem to repeatedly break, get fixed, break again, get patched, break, rinse, lather, and repeat? This could highlight an area of the code base that might be really complicated and/or under tested.</li><li><strong>Are there features that were developed that nobody appears to use?</strong> Is this an area that could get removed and/or does it need to improve so that is becomes useful?</li><li><strong>What area(s) of the application do they dread having to deal with?</strong> What parts of the app are they complaining about — or they have an ongoing joke about dealing with?</li><li><strong>What area(s) of the app did they end up creating “creative” workarounds for?</strong> This could hint at a poorly designed set of features — perhaps an area to improve at some point.</li></ul><p>We document this for future reference. An important aspect to our job here is to listen. These pain points might not be at the top of their priority list at the moment — but at some point, these areas would be good to raise in the future.</p><p>Four months later, asking a question like, <em>“Hi Sarah — is that importing tool still a pain in the ass for your team? Should we take a look into that in the near future?”</em></p><p>Humans have a funny way of just accepting and getting used to annoyances in their software. It’s our position that good partners listen for that and find ways to make their life a better — even if it’s as minor as making a textarea box a little bigger so that they aren’t having to type several paragraphs into a text field or cleaning up an awkward navigation pattern. Sometimes, we get the biggest thanks for the smallest of solutions.</p><h3>Step 3. Get a walk-through of the application</h3><p>Before we start diving too far into the code base, we’ll schedule an in-person or screen sharing meeting and have our new client walk us through their web application. We record this session, if possible, so that we can go back for reference and/or onboard other team members to the project.</p><p>This is really helpful to connect back to their user roles and business goals. As we will not have time (nor cognitive ability to remember) to dive into every nook and cranny of the application, we typically ask them to demo the 2–3 tasks that each role needs to reliably interface with.</p><p>During this process, we’ll take notes on their user roles, document these in Confluence, and determine which stakeholders would be best to approach if we have further questions about the application. For example, “Maggie is a good point of contact for their reporting tools”, “Geoffrey is a good point of contact for their data importing features”, “Lindsay appears to know the most about their API functionality”, etc.</p><p>Our aim here is to supply our team with useful information so that they can reach out to the right people.</p><h3>Step 4. Show us your backlog</h3><p>From here, we ask to see any existing backlog documentation that the team has in place. We’ve seen clients approach us with access to their existing Pivotal Tracker account, JIRA Kanban boards, huge spreadsheets (we see this far more often than you’d think!), a list of requests in an email, or formal PDF documents that outline thorough user stories and mockups.</p><p>More often than not, we typically move our clients into our own JIRA Cloud account and help them import and/or add tickets for us to begin prioritizing. While some clients may want to keep their history intact, migrating future to-dos into one cohesive system is the most efficient route forward. Here are <a href="https://blog.planetargon.com/entries/the-tools-that-make-our-agency-tick-jira">just a few things we love about JIRA</a>.</p><h3>Step 5. Document all the things!</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*O8VHmqX1JU2E_hCQ.jpg" /></figure><p>Before we start coding, we need to get a lay of the land. Some of these are asked and determined when we conduct a formal <a href="https://www.planetargon.com/services/ruby-on-rails-code-audit">code audit/review</a> of their application. Others we will ask in early meetings.</p><p>Here are a few of the application specifics that we’ll document.</p><ul><li>Is it hosted on Github, Bitbucket, etc.?</li><li>Will our developers need to interact with a VPN? Who are our primary contacts to dealing with any access/permissions there?</li><li>Do they have any architecture documentation, mockups, etc?</li><li>Where is the application being hosted? (Heroku, AWS, Rackspace, EngineYard, internal servers, etc.?)</li><li>Do they have staging environments? How closely do these match their production environment?</li><li>Does the application run through any CDNs (Akamai, CloudFlare, CloudFront, etc.)</li><li>Do they have any performance monitoring tools in place (New Relic, Skylight, Scout, etc?)</li><li>Are they using any automated bug reporting tools (Bugsnag, Airbrake, Honeybadger, etc.)</li><li>Is their documentation on how their existing developers have been handling deployments?</li></ul><h3>Step 6: Audit the Ruby on Rails code base</h3><p>We’re firm believers that beginning a new partnership with a thorough code audit of an existing application is a solid way to start on the right foot. When there aren’t crunched timelines to begin new development, we’ll begin development with a flat-rate audit of the Rails application’s code base.</p><p>This audit gives us more information about potential security and stability issues that may not have been uncovered previously. It also documents how the application is structured. After a code audit, we know tons more about the application than we would without one — and usually, the client learns a lot about their application as well.</p><p>We’ll keep it brief as we’ve written about code audits extensively before. You can read about <a href="https://blog.planetargon.com/entries/ruby-on-rails-code-audits-8-steps-to-review-your-app">eight steps we take when auditing a Rails application</a> for more information.</p><h3>Step 7: Start coding (on something small first)</h3><p>Before we dive into any of the big updates that our new client desires, we always try to identify a small update (i.e., that we can code and test within a few hours). The aim here is to have a test run through our communication tools, stage the update, get approval from the client, push to production, get final approval and close out the request.</p><p>We tend to spot small issues with server access, communication between our teams, and/or need to provide some more training on our tools. After we’ve collectively built up some confidence — we are able to then start tackling bigger ticket items.</p><p>From my perspective, this ease into it approach is so vital early on. If a client has an urgent bug pop up a few days into our relationship — and we’ve yet to demonstrate to them (nor ourselves!) that we can successfully push an update to their environment — we might not be able to respond to the issue quick enough.</p><p><strong>Closing Thoughts</strong></p><p>At this point, we should have a decent understanding of how our new (to us) client’s business operates, how their existing Rails web application fits into that, a general idea of what it offers them, how critical it is, where it’s hosted, and what technical debt we need to be mindful of. From here, we can start diving into their backlog and checking off their feature requests and fixes.</p><p>Do you have an existing Rails application that you’re looking to rebuild, redesign, scale, or update?</p><p>We’d love to talk to you about your project challenges and goals. Click below to schedule a call with us.</p><figure><a href="https://www.planetargon.com/contact"><img alt="" src="https://cdn-images-1.medium.com/max/443/0*aBRhaDuM_zpmTTH7.png" /></a></figure><p><em>Originally published at </em><a href="https://blog.planetargon.com/entries/7-steps-to-take-over-an-existing-rails-app-before-you-write-a-line-of-code"><em>blog.planetargon.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c2327c356634" width="1" height="1" alt=""><hr><p><a href="https://medium.com/planet-argon-tenets/7-steps-to-take-over-an-existing-rails-app-before-you-write-a-line-of-code-c2327c356634">7 Steps to Take Over an Existing Rails App (Before You Write A Line Of Code)</a> was originally published in <a href="https://medium.com/planet-argon-tenets">Planet Argon</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why I Don’t Sell to New Startups]]></title>
            <link>https://medium.com/planet-argon-tenets/why-i-dont-sell-to-new-startups-3a3b6b80a3bb?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/3a3b6b80a3bb</guid>
            <category><![CDATA[agency]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[agencylife]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Tue, 01 Aug 2017 01:02:24 GMT</pubDate>
            <atom:updated>2017-08-07T18:34:52.556Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QM8QkWZ8GClqZnl0YeG6xA.jpeg" /><figcaption>Me wandering San Francisco. 1998, pre-Dot-Com bubble.</figcaption></figure><h4>Confession. I have become bored with most startup entrepreneurs.</h4><p>Lucky me. I have the benefit of meeting a wide array of business owners and stakeholders. Getting to speak with these folks is one of the great joys of running a software consulting company.</p><p>…but I have a confession. I have become bored with most startup entrepreneurs.</p><p>A decade ago, you could find me enamored with a budding startup founder’s vision. I would be enthusiastic about most of their projects. So many innovative ideas were getting pitched, started, and built.</p><p>Reflecting back, I am reminded that most of those businesses no longer exist. I still have a lot of admiration for those who were taking a huge risk, though.</p><p>Now, I find myself dreading a call with a budding startup entrepreneur. They’ll share their great idea and will say, <em>“we intend to become the (insert ‘successful’ app/SaaS name here) of (insert niche industry).”</em></p><ul><li><em>“We’re going to become the Instagram of HIPAA Compliance”</em></li><li><em>“We’re building the Tinder of Linux IT Security.”</em></li><li><em>“We’re making a better Uber for Halloween Costumes.”</em></li></ul><p>Oh, is that so? <strong>Cool. </strong><em>(sigh)</em></p><p>I’ll often respond with a, <strong><em>“who will be your first customer? …and how will you meet them?”</em></strong></p><p><em>If their response is something like, “we’re going to invest heavily into content-marketing and SEO,” …I get cynical.</em></p><p>Note: an ideal answer would be, <em>“we’re going to track down a few target customers, introduce ourselves, and begin building a relationship with them.</em>”</p><p>While I see a lot of value with content marketing and SEO, I strongly believe that these should be how you attract more customers; not your first ones.</p><p>These startups are trying to solve problems for hypothetical customers. They’re investing in an experiment. They’re not running a business…at least, not quite yet.</p><p>While I do enjoy experimenting, I prefer focusing on incremental improvements these days. (I suspect this has a lot to do with where I find myself, as a business owner, these days. Iterating on an existing set of systems is completely different set of challenges)</p><p>Contrast this with having an established business call upon your team’s skill-set. A company that needs you to help them solve focused problems that they’re currently facing. A company that has been butting their head against pain points and need a fresh set of eyes on the problem.</p><p>This is where I get excited. I love getting to understand how different businesses operate.</p><ul><li><em>How did they get to where they are today?</em></li><li><em>How do they make decisions at an organization?</em></li><li><em>How do they measure success?</em></li><li><em>How do iterate on their business model?</em></li><li><em>How do they sell and market themselves?</em></li><li><em>What has and has not worked for them?</em></li></ul><p>During every prospective client’s sales cycle, I will ask myself the following question:</p><p><strong><em>“What can we learn from their business that might help us with our own?”</em></strong></p><p>There are a lot of lessons to learn from startups but they don’t seem to interest me in the same way anymore. I’ve become cynical of the startup culture over the last decade. Unfortunately, I’m not capable of faking excitement when it doesn’t exist.</p><p>Another important reflection on our past client portfolio. For several years, we’d see startups launch and go out of business within 2–3 years. Money would run out and the founders would go onto their “next big idea.”</p><p>It’s hard to maintain enthusiasm about building a portfolio that might resemble a graveyard five years from now.</p><p>A decade ago our average client relationship might last one-to-two years in length. We now find ourselves celebrating clients who have been with us 3–4x times that.</p><p>If you’re a consultant and rely on building longterm relationships — selling to a fresh startup is a bit of a crap shoot.</p><p><em>Dear Startup, I admire your gumption and wish you the best with these next steps. Let’s reconnect in three years. Perhaps we can help you with the next phases of your business. Love, Robby.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3a3b6b80a3bb" width="1" height="1" alt=""><hr><p><a href="https://medium.com/planet-argon-tenets/why-i-dont-sell-to-new-startups-3a3b6b80a3bb">Why I Don’t Sell to New Startups</a> was originally published in <a href="https://medium.com/planet-argon-tenets">Planet Argon</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[On Managing Expectations: Pilot it, first]]></title>
            <link>https://medium.com/@robbyrussell/on-managing-expectations-pilot-it-first-edfd99836c0c?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/edfd99836c0c</guid>
            <category><![CDATA[nonprofit]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[change-management]]></category>
            <category><![CDATA[organizational-culture]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Mon, 24 Jul 2017 18:11:16 GMT</pubDate>
            <atom:updated>2017-07-24T21:26:28.136Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GzFhb96n_REIQvm_Ogkc5Q.jpeg" /></figure><h4>Turning Big Decisions Into Short-Term Pilot Programs</h4><p>In a board meeting recently, the organization shared their desire to drop a program. As they shared their rationale, I reflected on the conversations a few years prior. At that time, the organization wanted to address a large pain point in their operations. We had many discussions leading to an approval of an investment of time and budget.</p><p>Two years later, we found ourselves questioning why it was a surprise that it hadn’t been the success we hoped for.</p><p>The organization lacked a clear consensus on how we would measure the program’s success. Most of us have found ourselves in this position before, right?</p><p>In general, I was comfortable with the program getting canned. But, that wasn’t the difficult part of the equation. The challenge was now on ensuring that all stakeholders understood the decision, too. The staff had grown accustomed to the program being available to them.</p><p>When it comes to decision making, it is harder to decide to stop a program then it is to decide to start new one.</p><p>Through these discussions, the lesson learned was that we should have framed this as a “pilot” program.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F6lWgXDOAJ5s%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6lWgXDOAJ5s&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F6lWgXDOAJ5s%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/f8471a25aad7d30fcbd45dc236de01cf/href">https://medium.com/media/f8471a25aad7d30fcbd45dc236de01cf/href</a></iframe><p>By classifying it a pilot program, we would have needed to discuss and answer the following eight questions:</p><p>1. What problems do you believe this will solve?<br>2. What would success <em>feel</em> like? (yes, feel.)<br>3. How (and how often) will you measure the success of it?<br>4. Who is responsible for measuring that success?<br>5. How can your team contribute toward its success?<br>6. Who is accountable should it not work?<br>7. What would it take for you to abandon it?<br>8. How long will you accept inadequate results?</p><p>When you pilot a program, the stakeholders know it could go away if it does not meet the defined objectives.</p><p>Like a TV pilot, the studio, cast members, and production staff know that there no guarantee it’ll get picked up. Yet, they’ll make sure they contribute to making it as successful as possible.</p><p>It’s the subtle difference between announcing, <em>“Hey team, we’re going to do X from now on.”</em> versus, <em>“Hey team, we’re going to pilot X. Here is how we’ll measure it and how you can help us make it work.”</em></p><p>Reflecting on many decisions that I’ve been part of, it’s easy to lose sight of the potential conversation you may need to have amongst yourselves at a later point. Recently, I’ve started to keep a list of “Pilots” that I have in play that have yet to get picked up for a full season.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F8Yredc3ayOE%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8Yredc3ayOE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F8Yredc3ayOE%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/3cc2d5f0afac188fb8c679846801711d/href">https://medium.com/media/3cc2d5f0afac188fb8c679846801711d/href</a></iframe><p>If you’re not quite ready to commit for the long haul, consider a pilot.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=edfd99836c0c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The 2017 Portland Tech Diversity Survey Results]]></title>
            <link>https://medium.com/@robbyrussell/the-2017-portland-tech-diversity-survey-results-f9c08b8cd76d?source=rss-ac1b810bb849------2</link>
            <guid isPermaLink="false">https://medium.com/p/f9c08b8cd76d</guid>
            <category><![CDATA[diversity-in-tech]]></category>
            <category><![CDATA[portland]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[inclusion]]></category>
            <category><![CDATA[diversity]]></category>
            <dc:creator><![CDATA[Robby Russell]]></dc:creator>
            <pubDate>Fri, 21 Jul 2017 18:00:13 GMT</pubDate>
            <atom:updated>2017-07-21T18:00:13.246Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vw8kmOTYy6T03aV5rn4jCw.png" /></figure><p>Two years ago, <a href="http://blog.planetargon.com/entries/why-we-signed-the-portland-tech-diversity-pledge">we signed</a> the Portland TechTown Diversity Pledge with a number of other local tech organizations.</p><p>At the time, we were ignorant on many aspects of the issues in our industry.</p><p>Today I say, with confidence, that we’re <em>less</em> ignorant of the issues. But we still have a long way to go.</p><p>Earlier today, Prosper Portland published the results that outline the progress (and non-progress) of Portland’s tech community over the last two years.</p><p>Our team was able to contribute to this project by donating time to design and develop a microsite to highlight the results of this year’s research findings. <strong>We invite you to take a look at the </strong><a href="https://techtown2017.herokuapp.com/"><strong>2017 Portland Tech Diversity Survey results</strong></a><strong>.</strong></p><p>Since we signed the pledge, our nearly all of our team has participated in Unconscious Bias Training and other inclusion workshops to discuss ways to put best practices into play.</p><p>From a hiring perspective, we’ve revisited our recruitment process starting with the job ads themselves, how we review resumes and applications, and how we grade and discuss interviewees as a team. The entire process has become more formalized, clearly documented, and the entire team is now on the same page.</p><p>We’re a small company and not anticipating a massive hiring spree in the near future, so we’re focusing on other ways to promote diversity and inclusion.</p><p>We have plans to connect with local youth in our community through volunteering, mentoring, internships, and sponsoring programs over the next year. The underlying goal of our involvement in these programs is to show the different types of career paths young people could explore with some real-world examples.</p><p>I’m encouraged by the small progress that the Portland tech community has made in two short years, and motivated by the areas where we <em>haven’t</em> seen progress to continually work harder with the Planet Argon team for a more inclusive and diverse environment.</p><p><a href="http://blog.planetargon.com/entries/the-2017-portland-tech-diversity-survey-results"><em>Originally published on the Planet Argon Blog</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f9c08b8cd76d" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>