Podcast Dima Malenko Podcast Dima Malenko

NIH #27 – One level deeper

In this episode I discuss how going deeper down the technology stack can give a company an important advantage over its competitors.

This episode on YouTube: https://youtu.be/lp2qCWa9CH0 Discussion and more at http://www.dmalenko.org/blog/2019/6/nih-27-one-level-deeper In this episode Dima discusses how going deeper down the technology stack can give a company an important advantage over its competitors.

📺 This episode in YouTube

You can often hear arguments against the Not Invented Here Syndrome. Yet there are circumstances, when not doing something in-house can bring huge risks in the long-term perspective.

In his piece In Defense of Not-Invented-Here Syndrome Joel Spolsky highlights the most prominent case when something must be done in-house:

If it’s a core business function — do it yourself, no matter what.

However, for continued sustainability of a company it is almost inevitable that at some point it will have to go one level deeper. In order to be able to deliver on its core function company would have to gain control over the foundation beneath that core function.

This idea of going one level deeper is applicable not only to hardware or software, but other types of businesses and situations as well.

Read More
Podcast Dima Malenko Podcast Dima Malenko

NIH #26 – Unlimited online backup

📺 This episode on YouTube

A particular example of limitations of an unlimited service: Backblaze is a great service, but the way it markets itself as “unlimited online backup” is a fair bit of exaggeration.

From Backblaze site:

Unlimited Online Backup

Backblaze will automatically back up all your files including documents, photos, music and movies. Unlimited files. Unlimited file size. Unlimited speed.

I use Backblaze myself and generally recommend it to everyone. But I also recommend understanding all the limitations of the “unlimited online backup”.

Implicit and explicit limits:

  • Backblaze backs up computer storage and connected external hard drives. Although you can invoke some trickery with external drives, for practical purposes the backup is limited by how much storage you can connect to your computer. In a sense this is an ideal situation for a provider of unlimited service: the natural limit exists, but it is not imposed by the vendor itself.
  • Data from external drives is only kept for 30 days since Backblaze saw the drive for the last time.
  • Deleted files and previous versions are kept for only 30 days. In the event of data or drive corruption you only have 30 days to recover your files , if you somehow manage to detect the problem.

With all these limitations I can hardly call it both unlimited and backup. But as I discussed in the previous episode, we simply cannot engineer things, which are truly unlimited.

Read More
Podcast Dima Malenko Podcast Dima Malenko

NIH #25 – Infinite amount of something

📺 This episode on YouTube

We all love getting infinite amount of something for a small fee. That makes all the “unlimited” plans so popular. On practice, however, those plans fairly quickly turn out not to be unlimited, infinite or lifetime and there are reasons why.

Using “unlimited” in marketing materials has its benefits:

  • it gives perception that buyer gets a lot (infinite amount that is) while paying way less than that
  • it eliminates questions like “will it be enough for …?” making the purchasing decision easier

But nothing is truly unlimited or infinite:

When you are offered something unlimited for a limited fee, ask yourself “where is the limit?”.

Read More
Podcast Dima Malenko Podcast Dima Malenko

NIH #23 – A-a-aa not so good song

📺 This episode on YouTube

Masking a problem without really solving it can move the problem to a more dangerous place or time. Do you remember the story about “A a a a a Very Good Song”?

Despite its popularity back in the day the song did not really solve the problem of Apple CarPlay annoyingly starting to play the very first song in the music collection, when the phone was connected to the car. It postponed that annoyance problem until 10 minutes later, when one could be driving through a busy intersection.

Read More
Podcast Dima Malenko Podcast Dima Malenko

NIH #22 – Illusion of control

📺 This episode on YouTube

All modern systems are built out of components. Those components can come in different forms: 3rd-party proprietary, open source and developed in-house. Open source seems to be the most popular option nowadays and one may think that using open-source components is an all-around win. It is a win, but not all-around.

3rd-party proprietary

  • minimal initial effort to start getting benefits from the component: some learning curve, but no heavy lifting with development
  • all encompassing solution with features you do not need but still have to deal with
  • fairly good understanding of costs related to getting maintenance for the component over time
  • minimal control over direction of development
  • possible dead ends because of lack of transparency

DIY components

  • tightly focused solution that delivers exactly what you need
  • significant upfront costs and long and, maybe, costly further maintenance
  • with all that comes full control over the direction of development
  • draws resources and attention from the core competency

Open source

  • ready-made solution that requires minimal to start using
  • free basic maintenance by the comunity
  • solution with wide focus and sometimes “half way there” functionality
  • illusion of control induced by the fact that source can be forked and taken in-house
Read More
Podcast Dima Malenko Podcast Dima Malenko

NIH #21 – Business of selling

📺 Watch/listen on YouTube

Common bits of criticism of new products often come from the lack of the information and the lack of desire to put them into perspective.

Read More
Podcast Dima Malenko Podcast Dima Malenko

Not Invented Here #20 – Code does not equal project

📺 Watch/listen on YouTube

Software projects are so much more than just writing code. It is impossible to replicate entire project with any number of lines of code.

To be fair, I have absolutely no clue what the $86M figure includes…

  • Analysis of the limitations of the technical side of the proposed solution, which likely preclude its use for building real-time system: How I failed to replicate an $86 million project in 1 line of code
  • A case for order of magnitude difference in effort depending on detailed requirements: printing a file to the console
    • Naïve implementation is 2 lines of code in Python
    • Gracefully handling printing a huge 4Gb file from USB stick, which is ejected, requires a lot more work
  • Don’t think someone is stupid. Instead try to understand why they do what they do.
Read More
Podcast Dima Malenko Podcast Dima Malenko

Not Invented Here #19 – Full Saturation

📺 Watch/listen on YouTube

Application’s lifecycle in a marketplace explains why at times developers add features nobody really needs and why many of them try to turn their applications into services.

Lifecycle model:

  • Rapid growth on growing market
    • Revenue comes from new users
  • Few new users, but strong demand for new features
    • Revenue comes from upgrades by existing users
  • Full saturation: no new users, no demand for new features
    • New sources of revenue are needed
Read More