<?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: Mikhail Asavkin</title>
    <description>The latest articles on DEV Community by Mikhail Asavkin (@limenutt).</description>
    <link>https://dev.to/limenutt</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%2F636070%2F53502839-5233-4270-9d3c-fe2c584d375a.jpeg</url>
      <title>DEV Community: Mikhail Asavkin</title>
      <link>https://dev.to/limenutt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/limenutt"/>
    <language>en</language>
    <item>
      <title>6 steps to get your starship off the ground</title>
      <dc:creator>Mikhail Asavkin</dc:creator>
      <pubDate>Tue, 08 Jun 2021 08:06:09 +0000</pubDate>
      <link>https://dev.to/limenutt/6-steps-to-get-your-starship-off-the-ground-5dhc</link>
      <guid>https://dev.to/limenutt/6-steps-to-get-your-starship-off-the-ground-5dhc</guid>
      <description>&lt;p&gt;If you are a person of action rather than a person of words, I advise you to jump to the action points below and then come back here for the hints on how you can convince your team and your boss to make a radical change for success.&lt;/p&gt;

&lt;h3&gt;
  
  
  As engineers, we need to make sure we constantly increase the value we provide to the business.
&lt;/h3&gt;

&lt;p&gt;We are uniquely positioned in our companies to champion change and make decisions that have a critical impact on the value our products deliver to the market. From the economic perspective, we exchange our time, the hours of effort delivering solutions for financial benefits, be it salary/bonuses, share dividends or a combination of the above. Business, on the other hand, exchanges your hours of effort into the increased value provided to the clients. The value that then is exchanged by our companies into money feeds back into our salaries, bonuses, etc. But hours of effort are not born equal, by making better decisions on how to use them, by mastering cutting edge technologies we can dramatically increase the value output of these hours and thus increase our own value for the business and inevitably our financial outcomes.&lt;/p&gt;

&lt;p&gt;As we are on the quest of increasing the value of our time investment, we need to understand our products and businesses very well to make sure our decisions are always aligned with the value for the end customers.&lt;br&gt;
But this is only the first step, there are many areas in our day to day processes that can be significantly improved if we think about them critically.&lt;/p&gt;

&lt;p&gt;There is inertia in the industry making us do things in a certain way not because it makes sense in our particular case, but because it’s the &lt;em&gt;‘best practice’&lt;/em&gt;. Let’s look at a few traditional approaches and how they can be transformed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Actions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  0. From layer engineers to full-stack engineers
&lt;/h3&gt;

&lt;p&gt;Many traditional technology stacks assume you have teams of narrow specialists, each working within their own domain, honing their skills in particular application layers like database design, backend or frontend, DevOps, etc. In order to deliver a change for your product in this setting, you need to involve multiple people even for a small feature, as mostly it will touch all layers. Involving them all increases the management overhead, communication hurdle, as they all need to agree, who does what, and this is a terribly cost-inefficient and frustrating experience for engineers. Today, we can no longer afford this, instead, we should all become full-stack engineers capable of delivering a feature independently, taking full responsibility and credit for its future success. Not only it greatly increases the efficiency but also serves as a huge morale boost, greater engineer’s involvement in the business value creation, improving the quality of decisions they make. It’s also much easier to track the cost per feature, and good product tracking allows you to finally do a proper ROI analysis on a feature level.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Full-stack friendly technologies
&lt;/h3&gt;

&lt;p&gt;In the past, only a few could become full-stack engineers because it was notoriously difficult to equally master all aspects of the stack. Today, we have great technologies, like GraphQL, that allows us to work with data more easily from the frontend, eliminating the need for backend changes for every feature. Even better, GraphQL-powered BAAS services like Hasura or AWS AppSync now allow us to skip writing that glue code between data storage and the API, finally automating this boring process.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. One language to rule them all
&lt;/h3&gt;

&lt;p&gt;With the growing popularity of Node.js as an engine of choice for traditional and serverless backends alike in the last decade and JavaScript being the only language to build web frontend, it’s no coincidence that many teams decided to adopt JavaScript as the only language for their entire stack. And of course, they quickly realised that it doesn’t work on big scale projects and so TypeScript was designed to address that and delivered a huge efficiency boost (in terms of hours of effort and code quality).&lt;br&gt;
It’s for this reason that we at &lt;a href="https://skychute.com.au"&gt;Skychute&lt;/a&gt; use TypeScript throughout our famous Proptech stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Your user journey is the only thing worth testing 40 times a day
&lt;/h3&gt;

&lt;p&gt;We’ve all been taught the value of TDD, unit and integration tests, however, your clients don’t care if the components of your product work in isolation. The value is in the user journeys, and this is what you should be focusing on. So stop caring about your code coverage and unit tests and spend all this energy on automated end to end tests mimicking your users’ behaviour as close as possible. When the QA is concerned, that is the place you should invest at least 90% of your code-driven testing budget.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Development experience matters
&lt;/h3&gt;

&lt;p&gt;Engineers being your most precious asset, you need to make sure they have everything they need to work as efficiently as possible. Things like continuous deployment that runs all your e2e tests, automatic provisioning of the cloud environments for every branch that are exact copies of your production, project-wide automated linting and formatting rules are no longer luxuries that only big companies can afford, they are bare necessities today.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Culture of decision-makers
&lt;/h3&gt;

&lt;p&gt;The designer’s adage recently popularised by Elon Musk says ‘best part is no part’. We’ve been trained throughout our careers to solve problems with code, but as engineers, our goal is to find the best solution, and often the best one doesn’t involve us coding something. Empower your engineers to make decisions on a bigger scale, encourage them to consider using readily-available blocks instead of building bespoke systems, or get rid of the system components altogether, thus reducing the cost of ownership.&lt;/p&gt;

&lt;p&gt;And remember, you are not alone, and, whatever you do, the challenges you are facing are not unique. We have a great vibrant community of talented engineers who are always glad to help each other. Don’t hesitate to seek advice and help outside of your organisation and, most importantly, tell your stories of both successes and failures, so that everyone could learn from them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here to help
&lt;/h3&gt;

&lt;p&gt;Whether you are an engineer looking for advice on how to increase the value you create for your company, or a manager looking to bridge the gap between the business and technology, &lt;a href="https://www.linkedin.com/in/limenutt/"&gt;I’m always happy to chat&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The evolution of the engineer</title>
      <dc:creator>Mikhail Asavkin</dc:creator>
      <pubDate>Sat, 29 May 2021 03:50:57 +0000</pubDate>
      <link>https://dev.to/limenutt/the-evolution-of-the-engineer-deo</link>
      <guid>https://dev.to/limenutt/the-evolution-of-the-engineer-deo</guid>
      <description>&lt;p&gt;In the Proptech world, we prefer the term “engineer” over “developer”. Initially, we had made this adjustment to avoid confusion with property developers and to build a context bridge for property people who are dealing with the construction and civil engineers every day.&lt;/p&gt;




&lt;p&gt;For me personally, &lt;em&gt;the engineer&lt;/em&gt; has an additional meaning, deeply ingrained from an early childhood spent in the USSR. My parents were engineers spearheading the country’s transformation towards the clean energy generation, and my grandfather worked on the majority of the Soviet space missions from launching the &lt;a href="https://en.wikipedia.org/wiki/Yuri_Gagarin"&gt;first human into space&lt;/a&gt; to designing humanity’s &lt;a href="https://en.wikipedia.org/wiki/Lunokhod_1"&gt;first space rovers that flew to the Moon&lt;/a&gt; the &lt;a href="https://en.wikipedia.org/wiki/Venera_7"&gt;first Venus probe&lt;/a&gt; and later on building the &lt;a href="https://en.wikipedia.org/wiki/Mir"&gt;first long term human habitat in LEO&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DZ7VcCD0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtr5fbor44uknrcdz781.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DZ7VcCD0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtr5fbor44uknrcdz781.jpg" alt="Soviet post stamp depicting the achievements of the robotic lunar exploration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Soviet post stamp depicting the achievements of the robotic lunar exploration&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Engineering is all about finding solutions in a very constrained and volatile environment, under time and capacity pressure. &lt;/p&gt;

&lt;p&gt;We often take less travelled paths and go where nobody else has ever been. As software engineers, we need to make sure the solutions we bring and implement align with overall business goals.&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;strong&gt;Today, you can not afford to have engineers in your team who do not understand your business well&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;It’s too easy to fall into a trap of developing technology for technology’s sake, increasing the complexity of the systems you operate without any real increase in the value you generate for your customers as a business.&lt;/p&gt;

&lt;p&gt;A couple of decades ago, a software developer could afford to learn just one technology stack and stay within that stack for the rest of their lavish career. They would be given very detailed technical-level instructions on what to implement and how, the majority of the decisions would have already been made for them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Remember, they used to call themselves with these niche and now-obsolete terms like ‘Backend engineer’ or ‘iOS developer’? These days have long gone, my friends.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the 2020s engineering teams around the world are responsible for the decisions that will shape future products billions of people will depend on. The work of software engineers should be&lt;a href="https://read.limenutt.me/put-the-effort-where-your-value-is-d2402e3404e2"&gt; aligned as closely as possible with the value our companies create&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Knowing one tool is no longer enough, we need to master a multitude of tools to pick the right one for a particular solution. And that goes beyond mastering multiple languages and frameworks: we need to become creative, finding solutions outside of our direct area of expertise.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Not every problem needs to be solved with code&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Quite often the best solution would be in writing no code at all, but those solutions will only be visible for the engineers who understand the business, and we need to evolve or risk becoming deprecated.&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;strong&gt;What radical change can you bring to your company today to ensure you are delivering value?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;If you are a business owner, you should find a way to invest in bridging the gap between the business and technology, that investment will future-proof your organisation, allowing it to thrive in the constantly changing world we live in.&lt;/p&gt;

&lt;p&gt;As an engineer, you should spend more time understanding what your business does, what is the value that you create for your customers. &lt;/p&gt;

&lt;p&gt;You should learn new technologies that would allow you to radically reduce the complexity of your solutions. One should always challenge the status quo.&lt;/p&gt;

&lt;p&gt;Here is a couple of questions you can ask yourself &lt;strong&gt;today&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  If your users are only interacting with the UI, can you re-architect your technology stack in a way that would allow you to focus 90% of the effort on the UI and UX? And specifically, you should focus on what makes up your unique value proposition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Users don’t care about how RESTful your API is&lt;/strong&gt; or what database you are using, they care about UX though. &lt;a href="https://medium.com/nyc-design/ux-research-how-to-find-out-what-your-users-really-care-about-36464ef0f26c"&gt;A lot&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  What value does reinventing the wheel all over again bring to your customers? There are so many great building blocks out there so it’s much better to save your team some time by just adopting those and reinvesting this time to that &lt;strong&gt;one unique thing that makes your product great&lt;/strong&gt; for the users.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;There is no silver bullet&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;You will need to come up with your own creative solutions. But if you are looking for the place to start, at &lt;a href="https://skychute.com.au"&gt;Skychute&lt;/a&gt; we found that by adopting technologies such as GraphQL-powered backend as a service (Hasura), we could spend 90% less time on the backend boilerplate and instead focus this energy back on making the great UX, &lt;a href="https://read.limenutt.me/put-the-effort-where-your-value-is-d2402e3404e2"&gt;putting our effort where our money comes from&lt;/a&gt;, launching &lt;a href="https://www.linkedin.com/posts/activity-6770546670955577344-fAPT"&gt;products that users love&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Here to help&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Whether you are an engineer looking for advice on how to increase the value you create for your company, or a manager looking to bridge the gap between the business and technology, &lt;a href="https://www.linkedin.com/in/limenutt/"&gt;I’m always happy to chat&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineering</category>
      <category>agile</category>
      <category>startup</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Put the effort where your value is</title>
      <dc:creator>Mikhail Asavkin</dc:creator>
      <pubDate>Sun, 23 May 2021 03:06:59 +0000</pubDate>
      <link>https://dev.to/limenutt/put-the-effort-where-your-value-is-64o</link>
      <guid>https://dev.to/limenutt/put-the-effort-where-your-value-is-64o</guid>
      <description>&lt;p&gt;Whether you are building your own products as a company, or build them for your clients as an agency, inevitably there are parts of the software that are considered to be ‘just necessary’ and another part that brings value to the end-users. In this piece, I’d like to talk about the differences between the two and look at some real-world examples where we can concentrate on doing what’s valuable versus what’s considered necessary.&lt;/p&gt;

&lt;p&gt;First, why do I care? As a product manager, I want to make sure my products are as profitable as possible. In order to achieve that, I need to be able to project and control both the cost of change and the value that change brings to the end-user.&lt;/p&gt;

&lt;p&gt;Having spent the last decade in this role, I have seen many instances where the change would only result in additional costs, but &lt;strong&gt;not in the value created for the end-user&lt;/strong&gt;. Now, it’s one thing to pursue a product hypothesis, invest in a feature that has a negative ROI after implementation.&lt;br&gt;
This is perfectly normal behaviour for a company that constantly tries to innovate, run ahead of the market and competition. Experiments are necessary and through those experiments, we will find very successful changes to our products at a cost of launching a few that are less successful and learn from our mistakes. However, often companies spend effort on changes that have no direct influence on the value for the end-users at all.&lt;/p&gt;

&lt;p&gt;Your product, for example, may have a complex multi-layered architecture that has a high maintenance cost and a high cost of change. Every new feature you want to launch requires several kinds of engineers to be involved, each responsible for their own domain or an implementation layer. &lt;strong&gt;Every time you change something you pay this complexity tax&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  But let me tell you something
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Your users don’t care&lt;/strong&gt; how many databases, caching layers you have, and whether your API responds within 15ms or 155ms. What your users do care about is how much value they receive from using your product, how great their user journey and overall experience is. Therefore, as a business, you need to focus all your efforts on what makes a difference for your customers, the end-users of your product. In most cases, the improvements affecting the UI and UX would have much better ROI.&lt;/p&gt;

&lt;h4&gt;
  
  
  Think about it
&lt;/h4&gt;

&lt;p&gt;With a good UX improvement, you can influence the conversion rate, or expand your offering that affects the average order value or simply make the user journey so great that they never leave you reducing the churn rate, all of these are the multipliers in the LTV (user’s lifetime value).&lt;/p&gt;

&lt;p&gt;You should find a way to invest as much as possible in the areas that increase the LTV and as little as possible in the rest and significantly reduce the cost of change.&lt;/p&gt;

&lt;p&gt;Quite often it will mean radically changing the way you build products internally, covering all aspects from technologies you use to the business mindset and the kind of talent you retain in your teams. I’m not going to lie to you: the transformation is not going to be easy, but I promise it will bring great ROI and allow you to rise above the competition. As the first step on this path, you should check whether you are currently investing in things your users don’t care about, here are few examples to get you started:&lt;/p&gt;

&lt;h4&gt;
  
  
  Complex, over-generic architecture
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Your users don’t care&lt;/strong&gt; if you could survive the next 3 decades without changing the underlying architecture of your product, they do care about their monthly fee, which includes the complexity tax they don’t want to pay.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: reduce the complexity by eliminating as many layers you have to work on as possible, ideally leaving on the frontend which is what your customers use every day.&lt;/p&gt;

&lt;h4&gt;
  
  
  Unit tests and integration tests
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;The users couldn’t care less&lt;/strong&gt; if the building blocks are working in isolation or how well each of them plays with 3rd party service. Instead, they will leave you the moment they meet an obstacle in their journey in your product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: spend the testing budget on automated e2e tests which mimic your users’ journey as close as possible. &lt;a href="https://read.limenutt.me/testing-what-matters-f87694f8a794"&gt;Read more about testing what matters&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Time and the number of engineers it takes to implement a feature
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Your users won’t pay you more&lt;/strong&gt; for a change in the product because it’s more expensive for you to deliver it. They will pay you exactly what it’s worth for them and not a penny more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: move to a full-stack engineering approach where every engineer in your team can deliver any feature by herself independently. &lt;a href="https://read.limenutt.me/talent-economy-f3ad006bad09"&gt;Read more about what talent you should invest in&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Expensive infrastructure
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;I don’t care&lt;/strong&gt; how many different servers you run across the globe, I care about my data and your service being available to me when I need it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: move your infrastructure cost curve to closely match your usage curve with pay as you go models that serverless infrastructure offers. Avoid paying for server hours as much as possible.&lt;/p&gt;

&lt;h4&gt;
  
  
  Fancy development practices
&lt;/h4&gt;

&lt;p&gt;Your users don’t care how agile, ISOXXX or CMMI- compliant you are, and what ceremonies you follow, but they will always abandon you for a competitor who delivers a better value faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: focus on compressing the calendar time to deliver a feature and build your development process around it.&lt;/p&gt;

&lt;h4&gt;
  
  
  Here to help
&lt;/h4&gt;

&lt;p&gt;Whether you are starting a new technology business, or struggle to grow an existing one, I’m always &lt;a href="https://www.linkedin.com/in/limenutt/"&gt;happy to chat&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>startup</category>
      <category>decisionmaking</category>
      <category>ux</category>
    </item>
  </channel>
</rss>
