[HN Gopher] Build tools around workflows, not workflows around t...
       ___________________________________________________________________
        
       Build tools around workflows, not workflows around tools
        
       Author : thesephist
       Score  : 324 points
       Date   : 2020-08-22 14:23 UTC (8 hours ago)
        
 (HTM) web link (thesephist.com)
 (TXT) w3m dump (thesephist.com)
        
       | glaive123 wrote:
       | I want to agree with this author, but sadly the business world
       | does not agree.
       | 
       | The reason Airtable, Notion, Monday, and others are so successful
       | is because they do precisely the opposite of what the author is
       | suggesting.
       | 
       | This is the same reason most workflow software starts out as a
       | replacement to Excel and Spreadsheets, but people continue to
       | resort to Excel and Spreadsheets.
        
       | stingraycharles wrote:
       | These kind of things are nice and all, and on a certain level I
       | agree: shape your environment to do the hard work for you.
       | 
       | However, when considering overall productivity, it's very easy to
       | fall into the trap of yak shaving, and you'll end up with doing a
       | lot of work in order to be "more efficient". This always rubs me
       | the wrong way.
       | 
       | And it is for this reason I typically prefer some integration
       | into a tool that I'm already using, rather than using a vast
       | amount of tools that I need to integrate myself.
       | 
       | In the end I settled on emacs for most of my things here, and
       | since I've been using it for over 20 years, the investment into
       | learning ELisp etc pays of a lot. I much rather prefer to work
       | with the framework that eg org-mode provides, than try to find
       | some tool that is "just a little bit better!"
       | 
       | Yes, it may be better, but in the end it will involve a lot of
       | work to tie everything together. I simply don't have the time to
       | do that.
        
         | addicted wrote:
         | Every second spent on developing one of these tools will more
         | than pay for itself in your professional career if your
         | professional career has anything to do with software
         | development.
         | 
         | The time energy and effort will make the creator more efficient
         | and more effective in nearly every project they undertake going
         | forward in life.
         | 
         | Making and learning, especially if they are in areas related to
         | what you do frequently (for example, as a career) almost always
         | pays off in overall efficiency and productivity.
        
           | beagle3 wrote:
           | Within reason; building e.g. your own build tool rarely pays
           | but sometimes does. Building your own compiler and/or IDE
           | almost never does.
        
         | EFFALO wrote:
         | I felt that that the author was more concerned about ownership
         | than short-term productivity or efficiency.
         | 
         | With ownership a different kind of productivity is evoked:
         | knowing how (and why) every part goes together the way it does.
         | This could lead to a flow state when managed effectively.
         | 
         | I do agree that these exercises could lead into the realm of
         | yak shaving, but in this context we're talking about making
         | personal tools vs tools for others to use. I think there's a
         | big distinction between these two approaches.
        
           | thesephist wrote:
           | OP here -- I think you captured a lot of what I wanted to
           | express. A lot of my DIY-ing is definitely about ownership:
           | owning (1) my data completely, including how it's stored and
           | backed up and (2) the future of these tools, so a SaaS
           | provider can't suddenly decide next year that I'm no longer
           | in their target market / most profitable customer segment.
           | 
           | Agree on the distinction between building for myself vs.
           | others. There are a hundred things I'd have done differently,
           | were I building for someone else.
        
       | JJMcJ wrote:
       | There classes of organizations for automation:
       | 
       | * Tiny, you just do things the Quickbooks/Excel/MS Word way
       | 
       | * Gigantic, you just do things the company's way, it can pay for
       | customization
       | 
       | * In between, here you have the major problem
        
       | jagged-chisel wrote:
       | This sounds a bit like "the computer is meant to serve the user;
       | the user is not meant to serve the computer." It's a valid
       | sentiment, and one I use on my peers often, especially when
       | dealing with end-user-facing software and systems.
       | 
       | But when it comes to Software Engineering Workflows, I've learned
       | in my decades of experience that the progenitors of a process or
       | workflow had no idea how to do it, made the assumption that no
       | one had done it before (or that buying a solution would be too
       | expensive), and then just cobbled something together to get the
       | product built and out the door. They start hiring more employees
       | who spend an inordinate amount of time just understanding the
       | existing workflow and soon lapse into "well, it's not my problem
       | - it produces output, and I just need to fix bugs / add features
       | to the product."
       | 
       | Before you know it, you're ten years in, with a couple dozen
       | white-labeling clients, and that build system can't scale.
       | 
       | What I feel like we need is an encyclopedia of workflows. So you
       | wanna make an app: make several decisions now, and here's the
       | recommended design workflow, engineering workflow,
       | testing/staging/release workflows ...
       | 
       | BRB, I think I just found a consulting idea...
        
       | ehnto wrote:
       | If you're working with a framework or tool, you should be as
       | idiomatic as possible. Follow the best practices of that tool.
       | It's not because you can't do it better, you might be able to.
       | The reason is because when someone inherits the project from you
       | or you need to onboard someone, all of their prior knowledge will
       | apply to your build, and all the documentation and help forums
       | for that tool/platform will actually apply to your project.
       | 
       | Part of this is ego I think. Many of us have landed jobs in
       | agencies or at companies who produce commodity software using a
       | framework or tool, and we see things about them that we feel we
       | can do better. But if you're working with a client and they've
       | decided on a framework, part of that decision is the implicit
       | understanding that you will build them a platform that every
       | developer using that framework can work on.
       | 
       | It's not unlike choosing to use Volkswagen vans for a transport
       | business because you have a good community of Volkswagen
       | mechanics. If they ask you for a VW, and you give them a VW that
       | has a Ford engine and a Nissan transmission, they're going to be
       | pretty confused and annoyed when the mechanics tell them they
       | can't work on this and need to rebuild it.
        
       | ChrisMarshallNY wrote:
       | In my experience (I have a bit of that), tools tend to be
       | whatever I need, at the moment, to get the job done. If it works
       | well, I look to use that tool again; maybe finding a way to make
       | it repeatable/scripted/generalized. Some tools have lasted a
       | couple of years; seldom have any lasted for much longer. I can't
       | afford to marry them. It's just a casual "friends with benefits"
       | relationship with most tools and techniques.
       | 
       | Tech changes quickly. Not just the technology, but also the
       | markets, customer bases/expectations, design ethos, and
       | delivery/distribution systems.
       | 
       | So does the jargon, but I've learned not to waste too much time
       | trying to keep up with that.
       | 
       | If I get too mired in the workflows, infrastructure and tools,
       | tech can go whizzing past, while I'm polishing my scripts.
        
       | jungletime wrote:
       | I ran into this problem when editing videos. I automated some
       | repetitive tasks that make life easier.
       | 
       | I have a scripts to move clips off of SD cards into a date sorted
       | folder structure. I have three cameras and a phone, and usually
       | want to get clips from the same date on different devices (SD
       | cards) into one folder on my backup drive.
       | 
       | There's also a problem when you film yourself, that lots of
       | footage is wasted without action. Yesterday I recorded a video
       | that was 10 minutes long, but only used the middle 2 minutes. So
       | I used a script to chop up the video, then deleted the useless
       | parts.
       | 
       | I also use Typora (mark down editor) for planning and notes.
       | Highly recommend it.
       | 
       | If anyone is interested:
       | 
       | https://typora.io/
       | 
       | https://github.com/andrewning/sortphotos
       | 
       | https://github.com/c0decracker/video-splitter/blob/master/ff...
        
       | [deleted]
        
       | jasonhansel wrote:
       | My rule of thumb for software tools: first do something the
       | annoying, hard, manual way. Then introduce equivalent third-party
       | tooling once you understand how those tools work, why they help,
       | and what problems (in the manual workflow) they are trying to
       | solve.
        
       | dgudkov wrote:
       | The author spent 1700 hours to build these tools. At the rate of
       | $100/hr the estimated cost of development would be $170,000.
       | Sounds a lot to me.
        
       | jt2190 wrote:
       | Note that the author specifically means _personal_ (not _shared_
       | ) workflows:
       | 
       | > The Eureka moment that some of us feel when we finally find a
       | notes app or todo system that fits our brains - that epiphany
       | happens when the tools we use mirror the way our minds work, and
       | how we want to move information through our lives. Good tools fit
       | perfectly around our workflows, bad tools don't.
       | 
       | > When we resort to having other people build tools for us, the
       | tools they build might never quite perfectly fit our workflows,
       | because they're not built for our individual minds.
       | 
       | He goes on to advocate building yourself exactly what you need.
        
         | MarcellusDrum wrote:
         | For simple things, I think I agree with what he's advocating. I
         | made my own todo/tasks manager application that got my own
         | needs. Took me 2 days of developing, and a few edits after
         | using it for a while when I discover a bug or want to edit
         | something. But I think for more advanced stuff ( a proper full
         | featured bug tracker for example), I don't think it's worth the
         | effort.
        
         | maire wrote:
         | Yep - I started building personal tools when I realized that
         | purchased tools are to benefit someone else - not me. Their
         | goal is to make money for them not to make me happy.
         | 
         | Once I realized that I automate my own processes and I am so
         | much happier. I went so far as to purchase an annual $99
         | developer license even though I have no intention of selling
         | apps.
        
         | Shared404 wrote:
         | > He goes on to advocate building yourself exactly what you
         | need.
         | 
         | This is what I've started doing. I needed a site generator, was
         | too lazy to learn an existing one, and built something that
         | would just do what I wanted, and no more.
         | 
         | It's actually quite a nice experience knowing a tool inside and
         | out, literally.
        
       | dathinab wrote:
       | This is what I find so annoying with git.
       | 
       | You can do all kinds of crazy thinks with git, but the price is
       | that for many common workflows you have annoying gotchas and or
       | usability annoyances.
        
       | wallflower wrote:
       | And then there's the saying in ERP systems: "You buy SAP and then
       | you change your company to fit SAP".
        
       | treis wrote:
       | I implement workflows for a living and it is a million times
       | easier to adapt your process to the tool than the other way
       | around. You will spend more effort adapting the software than the
       | people.
       | 
       | That's for business but I think it applies to individuals as
       | well. You're much more adaptable than software. Pick the thing
       | closest to what you want and change how you work to fit the
       | software.
        
         | gonzo41 wrote:
         | I came here to say this. And just mention that in most IT
         | workflow disasters. It's usually when the company decides it
         | doesn't want to bend a knee and change it's processes to fit
         | the tool.
        
         | nabilhat wrote:
         | Absolutely! The majority of tools and systems in distribution
         | are templates for effective workflows. For setting up your
         | personal life as in this post, by all means go bespoke in your
         | area of expertise or curiosity. It's certainly not the most
         | effective or efficient workflow in the world, but that's not
         | why you're using it, right? When performance really counts,
         | always look long and hard at what the thousands-millions who've
         | trod this way before have done before bushwhacking your own
         | path.
         | 
         | While hiking around Iceland, for example, one should adopt
         | established tools and methods, and adapt to them. No one's
         | workflow can ever grow to accommodate that level of embedded
         | efficiency and safety.
         | 
         | Real change in business requires adopting new processes. I just
         | helped a small business shift from a paper driven workflow to
         | electronic. Adapting their workflow to fit established tools
         | was less work than doing nothing, less effort than their
         | existing process; they doubled their output literally
         | overnight. We'd have been fools to try to adapt a tool they'd
         | never used or heard of before to look like their paperflow.
        
         | hinkley wrote:
         | I had heard this about Salesforce years ago, that companies
         | generally do better by adapting to Salesforce than by adapting
         | Salesforce.
         | 
         | In the end every quirky thing you do means more on the job
         | training for all new employees. If you take quirky too far,
         | then you can't hire new senior talent (everyone starts as a
         | noob). And it may be very uncomfortable to look at, but you
         | need to think hard about who benefits by having things be this
         | way. It's not the company, and probably not the team. It's a
         | couple of people and likely also their manager.
        
         | freehunter wrote:
         | I work in professional services for a large IT vendor (and
         | before that I worked for a place that used that vendor's
         | products) and I can tell you we spend a huge amount of time
         | working with our customers to help them fit their workflow to
         | our tools. Because there is no way we can engineer our tools to
         | fit or enable every workflow.
         | 
         | Some companies have the skill and desire to build their own
         | tools over our products so they can use their pre-existing
         | workflows, but inevitably the abstractions start to leak and
         | they almost always end up hiring us to train them on how to use
         | the tool the way it was meant to be used.
        
           | luckydata wrote:
           | Sure but how much you gotta change is the difference between
           | a successful implementation and a failure. Good tools are
           | already close to what people do.
        
             | wtetzner wrote:
             | > Good tools are already close to what people do.
             | 
             | I'm not sure I agree. I think good tools represent the
             | problem space well, and provide powerful ways of
             | manipulating/interacting with it. That may or may not be
             | what people are already doing.
             | 
             | I'd say solving a problem well is orthogonal to what people
             | are actually doing.
        
           | trentnix wrote:
           | I'm living that now a little bit. New tools and processes are
           | discussed and evaluated based on how easily they can be
           | customized, perverted, and eventually bastardized.
           | 
           | More frequently than you could imagine, people and
           | organizations jump to how they are going to implement
           | something before they define what they want to implement. And
           | when the effort fails, the technology is blamed and they
           | start all over again.
        
         | conception wrote:
         | This sounds right but in my experience most people are set in
         | their ways and it is very hard to rewrite the muscle memory of
         | a process. Especially since it appears that most people are
         | sensors (vs intuitive if you buy Myers Briggs take on
         | personalities https://personalityhacker.com/develop-intuition-
         | intuitive-aw...) then it requires a whole retraining of x does
         | y and a does b. In my experience it is tremendously easier to
         | have a computer change then a person much less a group.
         | Admittedly most people when put in the position don't have a
         | choice and the cost of retraining is rarely measured but
         | studies on adult learners generally point out it's hard and
         | doesn't go as well as we'd expect.
        
         | cjonas wrote:
         | In general, I agree with this... There are cases in which there
         | is actual value in breaking "out of the box", but it's
         | difficult to calculate the ROI. It also depends on the
         | licensing cost of a tool and the skill of your team. Enterprise
         | software can be insanely expensive, and with the modern
         | framework and the right team, it might actually be
         | significantly cheaper to build features yourself. I recently
         | built a DocuSign replacement which also collects payment method
         | for 1/2 the cost of the yearly subscription. Turns out they
         | didn't need to actually collect signatures in the first place,
         | but they were doing so because they modified their process to
         | fit the tool...
        
           | ta17711771 wrote:
           | That's wild.
           | 
           | 1/2 of the subscription including your time, or no?
        
             | cjonas wrote:
             | ya really the only real cost was my time. It runs on their
             | existing CRM platform so no additional infrastructure
             | overhead. It's just a small react app which displays a PDF
             | contract, gathers TOS acceptance and collects CC via a
             | Braintree drop-in. They were sending contracts via Docusign
             | (10's of thousands @ $11 per envelope!), then would still
             | have to separately gather payment information and update
             | the CRM to process the sale.
             | 
             | I spoke with there legal team and turns out they didn't
             | really need a legally binding signature. New system does
             | everything they actually needed, without any real
             | reoccurring costs.
        
         | bryanrasmussen wrote:
         | When you write a tool you do it around a workflow that you have
         | observed as being beneficial.
         | 
         | When you adopt a tool you adapt your workflow to its
         | limitations.
         | 
         | on edit: obviously this is an "ideally speaking" type
         | situation.
        
         | rexpop wrote:
         | > it is a million times easier to adapt your process to the
         | tool than the other way around
         | 
         | In the short term, perhaps, but at what cost in the long-run?
         | We end up with channels of accepted behavior dictated,
         | undemocratically, by software teams.
        
       | floatboth wrote:
       | I don't _know_ how my mind works! I don 't know what workflow is
       | best for me! So tools made by others is how I discover what
       | workflows are even possible.
       | 
       | > one place where my mind works differently than the tools on the
       | market is the task/notes distinction
       | 
       | I wonder if you actually discovered this when testing Notion,
       | which doesn't have that distinction ;)
        
       | jaylittle wrote:
       | I have to say, I strongly disagree with this. As a professional
       | software developer I've watched legions of clients fall into the
       | trap of customizing tools to adapt to their specific sacred
       | workflow. It always ends up being expensive (though admittedly
       | profitable for me) and most importantly, it always ends up
       | trapping the client in a situation where they cling to the
       | customized tool for far longer than they should.
       | 
       | The moral of the story: Your workflow is not sacred. Even the way
       | your brain "works" is not sacred. Learn to adapt or be prepared
       | to die. If your workflow isn't changing or at least being tweaked
       | from time to time, the odds favor the idea that you have grown
       | stagnant. That's not to say that change for the sake of change is
       | the preferred alternative however. I'm only saying that treating
       | your workflow as sacred and hence immutable is a dangerous trap
       | to fall into.
        
       | TheRealPomax wrote:
       | If you don't have a workflow, build your workflow around the
       | tools you think you need. Then start the "build-refine-use
       | tooling to aid the workflow that you came up with based on the
       | tools that you're using that determine part of the workflow you
       | have to best fit the tools that you use to help your work flow"
       | dance.
       | 
       | If you already have a workflow, you're already more than familiar
       | with that dance, and there is no advice.
        
       | bane wrote:
       | The best experiences I've ever had is when you do a bit of both.
       | I've mostly worked in areas where the steps in the workflow were
       | designed to support some mandatory process steps for various
       | compliance or legal reasons. Within a process step there's
       | usually some give and take in the local workflow but most of the
       | eventual users of the software are all too busy to spend lots of
       | time learning new tools and tool workflows. So the solution?
       | 
       | 1. Map these intraprocess workflows by talking to the users, find
       | the biggest pain points for automation.
       | 
       | 2. Build highly modular tools that implement those workflows and
       | automate those pain points.
       | 
       | 3. Deliver the tools into the environment and wait a bit.
       | 
       | 4. Re-interview the users and find places in the workflow that
       | are now the newest biggest pain points. Goto step 1.
       | 
       | It's a pretty simple process and not hard to do. If you do it
       | right, over a very short period of time you deliver working tools
       | that improve the user's day-to-day jobs and then just...continue
       | to make it better.
       | 
       | Fairly often, after a few iterations, you end up just completely
       | automating entire workflows and I've never had users get upset
       | about this. It usually turns out those were boring, dull, and
       | repetitive things they had to do and they hated spending hours of
       | their days doing them anyways. Freeing them up from doing those
       | things means they could move on to higher-value work that was far
       | more interesting for them.
        
       | asperous wrote:
       | The headline doesn't really reflect the post body. The author is
       | advocating for writing your own software tools for your own
       | personal note taking and organizational use.
       | 
       | First off, their tools are very beautiful from the screenshots,
       | and if they work for them great! However I can only think of the
       | time liability they are (they even wrote the language they are
       | written in). I can only imagine how much time this person sinks
       | into making them. If that's what you love doing great! But for
       | the vast majority of people that's not reasonable. They are
       | pretending that it's a high productivity approach. It's not.
       | 
       | Productivity = results / time
       | 
       | Spending a few dollars (equivalent to working for an hour lets
       | say) and getting a high quality tool that would take you months
       | to build yourself, is the high productivity solution. Many tools
       | allow a high degree of customization and plugins, which allows
       | people to really make it their own as well.
        
       | wdb wrote:
       | Funny, this is going totally against the philosophy of SAP which
       | basically means to change your workflows to the way SAP works.
        
         | bostonvaulter2 wrote:
         | SAP isn't about personal tools, whereas this whole article is
         | focused on the needs of a single person, not an organization.
        
       | trentnix wrote:
       | When I was a young, opinionated software professional, I would
       | have agreed with this wholeheartedly. But now that I'm nearly a
       | couple of decades into my career, I've seen 1000 different
       | workflows justified by "we're different, we're unique".
       | 
       | And if you ask how they're different so that they'd need a unique
       | process to manage bugs, to manage invoices, to manage inventory,
       | you get pretty much the same answers across the board. You hear
       | about personalities and power structures and anecdotal
       | preferences.
       | 
       | And sure enough, that's exactly what you see at the link: _Each
       | person's mind works a little differently, and each person
       | remembers and processes information a little differently._
       | 
       | Yes, you're unique. Just like everybody else.
       | 
       | The fact is, the great tools that have achieved widespread
       | adoption understand the problems, and all their caveats, better
       | than you. Picking any established tool to manage information and
       | workflow and getting good at using it will usually yield better
       | results.
       | 
       | The search for the _perfect_ tool or the _perfect_ workflow or
       | the _perfect_ process always ends up being the enemy of good.
        
         | momokoko wrote:
         | Process is a crutch for bad management. If you are constantly
         | moving from process to process because they aren't working, you
         | likely need to replace a significant portion of the management
         | team.
         | 
         | Almost all processes work well enough. And there is nothing
         | wrong with trying to find an optimum one. But process is not
         | the solution. Quality management talent is.
        
           | contingencies wrote:
           | I cultivated an extreme dislike for managers for years. Then
           | I became one. Things are a whole lot different from the other
           | side.
           | 
           | You perhaps overlook a few things: (1) Managers are people
           | too. They make mistakes. They should be able to recognize and
           | correct them as others. Ideally quickly, transparently and
           | with the insights of others. (2) Needs evolve. The right
           | process for proof of concept R&D is not the right process for
           | global domination with a mature product. (3) Management is
           | about competing concerns. Often a decision must be made
           | within a limited sphere of experience, time and resources and
           | reviewed in the future. There is no 'right' decision, and it
           | can be fiendishly difficult to quantify decision quality in
           | many such circumstances without the benefit of hindsight. (4)
           | Different people can respond _very_ differently to the same
           | management, so  'bad management' is perhaps too uni-
           | dimensional a notion to hold much meaning.
        
             | momokoko wrote:
             | I never said managers where bad or that I disliked them.
             | Sorry you got that impression.
             | 
             | In this case all I was referencing was that frequent
             | process changes and repeated failures of process are
             | typically an indication that a change needs to happen in
             | management not process. No where did I state management be
             | eliminated altogether. I stated that better managers need
             | to be brought in to replace those that are underperforming.
        
         | tootie wrote:
         | It's more true now than it used to be. A lot of business
         | software in the early days was an attempt to directly replicate
         | paper business process on a screen. Enterprise software was
         | sold as being low friction and not requiring users to learn
         | anything new. And it was built by developers who started with a
         | data model and then build screens to match.
         | 
         | I think we've finally tipped to the point that business
         | processes are designed as digital first. The current gen is
         | also following much more user-centered design.
        
           | cratermoon wrote:
           | You're absolutely correct: business processes are changing
           | rapidly in a way that they haven't since the assembly line
           | and Taylorism. We've had decades now of users and companies
           | "paving the cartpath" by replicating paper on screen and
           | learning what translates, what doesn't translate, and how to
           | evolve. The workflows and the tools are evolving together now
           | through a feeback loop, and that's a good thing. Consider
           | order fulfillment and shipping for small to medium businesses
           | today compared to the era before FedEx and eCommerce.
        
         | edgarvaldes wrote:
         | Yes. Just see any ERP implementation. Its better to take as
         | many defaults as possible and go live, than spend years trying
         | to implement your own convoluted unique workflow.
        
         | zmmmmm wrote:
         | I think you need to distinguish here between "core business"
         | where you generate your competitive advantage, and everything
         | else. In your core business, were you are going to make the
         | critical difference that determines why your business or
         | organisation exists, shooting for the most finely tuned, unique
         | solution that maximizes that advantage - or at least, enables
         | capability to do that - is critical.
         | 
         | For everything else - I agree. The more bespoke you decide to
         | be the more pain you create for very little value.
        
         | jariel wrote:
         | "the great tools that have achieved widespread adoption
         | understand the problems, and all their caveats, better than
         | you"
         | 
         | Tools that get widespread adoption are mostly those that move
         | quickly to add every little feature every manager/exec asks for
         | in order to secure the contract.
         | 
         | Once they become incumbent, they become the standard, because
         | managers are responsible for the 'big purchases'.
         | 
         | There's tons of very accepted systems that are 'not very good'.
        
         | agumonkey wrote:
         | I also wonder if there's some twisted emotional flow in people
         | to consider whatever hell they conquered as the way to go
         | forever. Questioning their ways is seen as such an insult there
         | must be something deeply wound in their brain.
        
         | koonsolo wrote:
         | Good explanation! These companies start out thinking they will
         | make a better product than anything out there. But due to
         | limited resources always end up with an ugly monstrosity that
         | is hell to work with. So they end up with something more
         | expensive (but that cost is hidden), and something worse than
         | what's off the shelve.
         | 
         | I always ask them "So are we the only company in the world that
         | is developing software?".
         | 
         | Tools are pretty powerful, so you build your process around
         | them.
        
         | cheez wrote:
         | That's funny. I was the opposite. When I was younger, I would
         | just say "lets default to other people's solution to similar
         | problems and move on" but as time went by, I've become more
         | "let's define our problems well and find surgical solutions by
         | others". It's a slight difference but makes a huge difference
         | in productivity.
         | 
         | Another way to say it is instead of taking someone else's
         | blueprint, we build our own blueprint and use pre-fabricated
         | parts to realize the blueprint.
         | 
         | In the end, sometimes solutions look very similar but there is
         | that one little bit that gives you a competitive advantage that
         | no one else has.
        
           | cratermoon wrote:
           | Years ago I analyzed the build vs. buy question and came up
           | with a rule that I later found to be not so original: buy for
           | parity, build for competitive advantage.
           | 
           | Most of any business is commodity stuff, typically things
           | like HR, payroll, logistics, finance, security. Except if
           | your business _is_ one of those functions. Take Amazon 's
           | logistics for example. They aren't just any online retailer,
           | they are the _dominant_ online retailer in large part because
           | they optimized the hell out of their logistics pipeline.
           | 
           | But if it's not your bread-and-butter, then yeah, go ahead
           | and change your workflow to whatever COTS software you pick
           | requires. You'll be fine. I worked for an insurance company,
           | and they picked PeopleWare for their HR system and used
           | commodity software tools for their actuarials. I worked for a
           | very large shoe company they has SAP at the core of their
           | (extremely complex) product lifecycle management system
           | because their real business differentiator is their design
           | and marketing.
           | 
           | That same insurance company had a customer sales pipeline
           | tailored to a specific market - high-end professionals like
           | doctors, lawyers, and similar - so they had custom software
           | for that. That same shoe company had customized design and
           | bill of materials systems so they could get their shoes to
           | market quickly and globally.
        
             | jimkleiber wrote:
             | I've been thinking a lot about the buy (or rent) vs build
             | problem and one factor that keeps screaming at me is: who
             | do I want to maintain it?
             | 
             | If my team or I want to maintain it, then build. If not,
             | then buy/rent. I've built way too many things over the last
             | few years only to realize again and again that things we
             | build will need to be maintained by someone.
             | 
             | As you say, if it's a competitive advantage, then it makes
             | sense for me to fix it, update it, adapt it, etc.,
             | otherwise it may be too costly to get distracted with
             | maintaining it internally and easier to pay someone else to
             | do that.
        
             | 908B64B197 wrote:
             | I agree with your rule, but I would add something extra:
             | 
             | Only build if you have the talent to do so. Early on Amazon
             | managed to attract serious tech talent to the company. That
             | enabled them to build. If a company can't do that then it's
             | better to buy no matter what.
        
               | cratermoon wrote:
               | > Only build if you have the talent to do so
               | 
               | I would certainly hope that if the function is part of
               | what differentiates the company competitively that they'd
               | hire the talent. If they're trying to be the best "X"
               | company and nobody who works there is any good at "X",
               | they _should_ fail. The dot-com era is littered with the
               | graves of companies who thought that just having an idea
               | was enough.
        
               | 908B64B197 wrote:
               | And yet it's surprising how a lot of companies simply
               | won't match offers or try to play games with CoL. Or
               | worst, consider engineering a cost center when it's
               | central to the business.
        
             | contingencies wrote:
             | Nice one. Added to https://github.com/globalcitizen/taoup
        
             | cheez wrote:
             | You said it better than I ever could have!
        
               | cratermoon wrote:
               | I can't take credit for the phrase, only for being
               | thoughtful enough in my early career to more-or-less work
               | it out from first principles.
        
             | jmole wrote:
             | I'd call it "rent for parity", not "buy". If all you have
             | is a license, it's effectively a rental - not a purchase.
             | 
             | Rent for parity, buy or build for competitive advantage.
        
               | scott_w wrote:
               | In practice this isn't a problem. Take a non-software
               | example:
               | 
               | Driving instructors typically have their cars on a 3 year
               | hire purchase then return instead of buying. Why? Way
               | back when, my driving instructor actually bought one of
               | the cars. 3 months later, the engine failed and it was
               | out of warranty.
               | 
               | Because of that, he realised that paying a monthly fee
               | meant he had no surprise failures, he returned the car
               | just as the clutch was burning out (learner drivers don't
               | have great driving technique, weirdly enough), and had a
               | fresh car every 3 years for new learners.
        
               | masklinn wrote:
               | Yeah I've never heard anyone think a driving instructor
               | car was a great buy, unless you like replacing basically
               | every driving component which can fail. These cars have
               | it rough. Especially manual. I'm surprised a driving
               | instructor (of all people) would think of doing that
               | without also wanting to do a full engine and transmission
               | rebuild.
        
               | quesera wrote:
               | Makes sense, but FWIW and IIRC, the terms of an ordinary
               | car lease prohibit commercial use.
        
               | gukov wrote:
               | If it's for business use you should be able to expense
               | it.
        
               | cratermoon wrote:
               | Shows how long I've been around. I still think of
               | commercial software as something you buy and own.
        
           | mlyle wrote:
           | > In the end, sometimes solutions look very similar but there
           | is that one little bit that gives you a competitive advantage
           | that no one else has.
           | 
           | I'm all for doing something "different" if it gives you some
           | kind of core competitive advantage.
           | 
           | But the pain of being off the beaten path can really exceed
           | small benefits you get in unexpected ways.
           | 
           | Save real innovation and risk for the things that are core,
           | unique to you, and possible sources of large competitive
           | leverage. Be boring elsewhere, maybe with an occasional small
           | sprinkle of something clever mixed in. Evangelize the small
           | bits of cleverness, in hopes that someone else will start
           | maintaining it. ;)
        
             | cheez wrote:
             | I'm not sure if I'm misreading you, you're misreading me,
             | or we're on the same page :-)
             | 
             | Ideally, I map out workflow and find tools that fit the
             | workflow in the Unix philosophy. Well-defined, do one thing
             | well. As opposed to monoliths that purport to do
             | everything.
             | 
             | My experience has been that doing things in this way builds
             | a system that is extremely robust to significant changes.
        
           | ta17711771 wrote:
           | > The fact is, the great tools that have achieved widespread
           | adoption understand the problems, and all their caveats,
           | better than you. Picking any established tool to manage
           | information and workflow and getting good at using it will
           | usually yield better results.
           | 
           | The stagnated companies with questionable data analysis
           | because they're looking at beautiful SAP or other ERP graphs
           | that have been filled with incomplete data by their end users
           | on awful interfaces would disagree...if they knew.
        
           | iforgotpassword wrote:
           | Agree. Interns or grads always want to throw whatever the
           | most hyped tool in some domain currently is at every remotely
           | fitting problem. Ansible all the things!
           | 
           | That's not to say you should always roll your own. This is
           | one of those things that's really hard to become good at:
           | Decide early on whether to go with an existing solution or
           | create something from scratch. (and if you go for an existing
           | solution, which one?)
           | 
           | There's many arguments for both sides, one thing often
           | mentioned is that settling for some popular solution or
           | framework will make it easier for others to get into your
           | project, but if you bend over backwards to get three
           | different tools to do what you want instead of writing a
           | hundred lines of bash, you might be doing something wrong.
        
             | cheez wrote:
             | What I do is decide that I am in charge of defining the
             | machine, and the tools implement the machine. The tools are
             | a means to an end. If the tools don't exist to implement
             | the machine, I write them. If they do exist, great.
        
               | mcny wrote:
               | > That's funny. I was the opposite. When I was younger, I
               | would just say "lets default to other people's solution
               | to similar problems and move on" but as time went by,
               | I've become more "let's define our problems well and find
               | surgical solutions by others". It's a slight difference
               | but makes a huge difference in productivity.
               | 
               | I thought the same way except I was even more insane. I
               | thought lets just teach everyone English and we won't
               | have to do any internationalization/localization.
        
               | 908B64B197 wrote:
               | But then you lose the advantage of being the first to
               | localize for a given market!
               | 
               | But seriously, in a lot of cases, translating and
               | localizing is actually the easy part of
               | internationalizing a business.
        
               | mcny wrote:
               | > But seriously, in a lot of cases, translating and
               | localizing is actually the easy part of
               | internationalizing a business.
               | 
               | In my defence, I was not a very travelled child. I didn't
               | even know about all the different kinds of power socket
               | standards around the world.
        
               | [deleted]
        
         | ish wrote:
         | I ask clients (and myself quite frankly): what is the
         | competitive advantage of doing it this way? Do you get a leg up
         | on your competition? What's the opportunity cost of spending
         | time and money on this instead of your core product or mission?
        
         | Konohamaru wrote:
         | How unique are people? You take a bunch of teenagers, ask them
         | to non-conform, and they all come up with the same pierced,
         | hair-dyed fashion. As if they're clocks ticking at the same
         | rate. If you have several million clocks reading the same time
         | down to the microsecond, that implies the existence of a master
         | clock they were synchronized to.
        
         | abhgh wrote:
         | I agree with you, in the context of working in a corporation.
         | It's not a bad thing to pick tools and structure your workflows
         | around them, because sometimes such tools serve as 'mental
         | anchors' for standardizing a process.
         | 
         | The article seems to focus on personal productivity tools, for
         | which the author's conclusion _might_ relatively hold to a fair
         | extent.
        
         | starfallg wrote:
         | Spot on. Some things just need to be good enough. Spend effort
         | on solving the problems with the biggest impact, your workflow
         | and tools don't deserve that much attention unless it's
         | completely not fit for purpose. Also changing your process and
         | tools too often and too drastically usually makes things worse.
         | People spend all their time keeping up with changes to how
         | things are done as opposed to actually doing things.
        
       | addicted wrote:
       | This is excellent stuff. It fits right into the hacker ethos of
       | hacking to serve your purposes instead of settling for tools that
       | probably won't just because they're more convenient.
       | 
       | If you don't mind me asking, how much effort did it take you to
       | develop each tool, and did you find that as you did more tools,
       | subsequent ones took less time to develop and/or were more
       | capable?
        
         | thesephist wrote:
         | My answer your second question actually feeds into the first --
         | 
         | These days developing each tool is 50% taking pieces of tools /
         | libraries I've built before and integrating them together. I've
         | implemented a data store, a form UI, a websocket server, etc.
         | each a few times so as I built up a collection of things I can
         | borrow from other past projects, new projects take less time
         | (or, I have more bandwidth to tackle more complicated projects,
         | new a new tool if need be, etc).
         | 
         | I have another blog that goes into my side-project workflows[0]
         | but in gist, I try to make a "usable MVP" for each project
         | within a single chunk of time -- usually a weekend. And from
         | there I try to dogfood it and add changes that I need to keep
         | using it.
         | 
         | All this is helped by the fact that, at least with these tools
         | I use, I try to keep a really simple stack. Go or Node.js
         | server running on a single VPS, light frontend using my own
         | framework [1]
         | 
         | [0] https://thesephist.com/posts/how-i-side-project/
         | 
         | [1] https://github.com/thesephist/torus
        
       | m-p-3 wrote:
       | It's easier to bend a workflow around existing tooling than the
       | other way around depending on the size of the business.
        
       | oneelectron wrote:
       | What's trippy is whatever workflow you have is probably molded
       | around tools and biases that you take for granted. In modern
       | times, there is no workflow that exists independent of
       | technology. I can't imagine a way to isolate a "workflow" from a
       | toolchain. And at that rate, you might as well just sample
       | different tools until you find harmony.
        
       | sokoloff wrote:
       | There's a balance to be struck. If you're doing something that
       | tens of millions of other people are also doing and someone has
       | even half-thoughtfully built a tool to address the common
       | workflow of those 10s of millions, I'd think long and hard before
       | concluding that my use-case requires/justifies a different
       | workflow.
        
       | acutesoftware wrote:
       | Nicely written. I think the "Importance of Ownership" is the
       | prime reason for doing this, but most people wont see the benefit
       | (until it is too late when they do lose something)
        
         | thesephist wrote:
         | (OP) Yep, ownership is definitely big for me. Maybe I've just
         | been burned one time too many by a startup pivoting away...
        
       | jinal wrote:
       | In my experience, most folks aren't sophisticated enough to build
       | their own tools. Having said that a workflow tool that has a
       | default workflow that most users can adopt but also some
       | flexibility that allows sophisticated users to adjust it to their
       | needs without making it super complex to use is a win-win
       | situation. I founded a company that solved a workflow problem for
       | K-12 schools. Our initial launch was pushing school admin users
       | to just adopt a single workflow. Most smaller schools were OK
       | adopting it but as we went up market, we realized that even if
       | they want to, it's very hard for bigger organizations to change
       | their workflow (people, processes, bureaucracy). Slowly we
       | started making the system a bit more flexible allowing them to
       | tune it to their workflow needs.
        
       | bluedino wrote:
       | Nothing like building new software for a client and having them
       | slowly change every element to work like the old software, which
       | they hired you to replace because it was terrible
        
       | haihaibye wrote:
       | Quite impressive to build so many different tools, but I feel
       | it's procrastination.
       | 
       | Having a super customised calendar, drawing app, todo etc is
       | going to improve productivity by what,10%?
       | 
       | And building all these tools is many months to a year's work?
       | 
       | What if they'd used off the shelf tools and spent their time
       | building something new vs reimplementing so many wheels?
        
         | thesephist wrote:
         | OP here -- that's definitely a valid argument. If the only
         | reason to do this were raw productivity gains in my work, it
         | /might/ be overkill. I also find it personally satisfying to
         | build and run / talk about DIY tools (and I'm young, I have
         | lots of free time), and there've been lots of extra side-
         | benefits to making a habit of it.
         | 
         | For what it's worth -- it doesn't take me much time to build
         | these tools. Most are an afternoon project / a weekend project.
         | So that also makes this more reasonable for me.
         | 
         | EDIT: I'm also no stranger to off the shelf tools -- I've
         | shopped around my fair share of todo lists and notes apps :)
         | Just haven't found any that worked the way I liked exactly and
         | allowed me to own my data the way I wanted to.
        
       | chrisweekly wrote:
       | I love the principle of owning your env, using the right tool for
       | the job (which may involve acts of creation)... but this
       | 
       | "Some of my apps, like Ligature and Noct, are written in Ink,
       | which is a language I wrote myself"
       | 
       | is both impressive (truly next-level), and also completely out of
       | reach / impractical for the vast majority. But it is
       | inspirational; thanks for sharing -- your other blog posts look
       | worthwhile too...
        
         | thesephist wrote:
         | I actually believe fairly strongly that it's not out of most
         | people's reach! I've written before [0] about my process for
         | learning how to build a (simple) language, and the resources
         | that helped me do it / how I approached it. Certainly one of my
         | favorite projects, both intellectually and from a returns
         | perspective.
         | 
         | There are so many great resources for building a toy language
         | by yourself (my impl of Ink is a few thousand lines of pretty
         | simple Go code) and it's never been easier. I really think most
         | people overestimate how intellectually intractable it is.
         | Building a production language? Yes, a lot of work. But a toy
         | language for you to use / learn with? surprisingly doable.
         | 
         | [0] https://thesephist.com/posts/pl/
        
           | andrewingram wrote:
           | FYI, there's another language called Ink
           | (https://www.inklestudios.com/ink/) which I momentarily
           | confused yours with.
        
       | tel wrote:
       | The thing that feels implicit, yet false, in all of this is that
       | workflows are static. People evolve, learn, change. Teams even
       | more so.
       | 
       | The most important process I implement with teams is
       | retrospection and its use as a mechanism to modify process in a
       | principled way.
       | 
       | So as you learn about your own process, your tools can either
       | fall away and be replaced, or flex with you and stick around for
       | longer. My guess is that flexibility is slightly better than
       | fixity, as it'll let you live within one ecosystem for a little
       | longer.
       | 
       | The other way of interaction is to be inspired by new tools to
       | modify your process. This feels pretty off to me, at first, in
       | that it means that you're moving your process do to exogenous
       | things as opposed to endogenous learning.
       | 
       | But that sort of work can be really valuable too. It's good to
       | learn other people's methods. It forms an impulse that can get
       | you out of local optima. It's an important part of the learning
       | process.
        
       | amadeuspagel wrote:
       | The dichotomy between tasks and notes doesn't make any sense to
       | me either. The distinction between short and long term things
       | makes more sense, mentally and also technically - apps that have
       | complex features to organize notes always load so slow that
       | they're useless for quickly jotting down thoughts. But still I
       | hate having my thoughts siloed into different apps. I hate having
       | to decide what app to use to write down a specific thought, I
       | hate having to decide which app to search. I made my own app[1],
       | which is currently only useful for short term notes and tasks. I
       | hope with Svelte I can add some features to make it possible to
       | relate notes, to make it more useful for long term projects,
       | while still keeping the app fast enough to be useful for quickly
       | jotting down thoughts.
       | 
       | [1]: https://thinktype.app
        
         | bbbobbb wrote:
         | I love this. Very creative way of handling the search and
         | persistence with the fulltext search to have it easily work as
         | a todo (or any other "tag") app. I wouldn't use it in a browser
         | with local storage only but it actually makes me want to copy
         | these ergonomics for my personal use with some sort of
         | syncing..
        
       | arey_abhishek wrote:
       | This is an incredible amount of work for personal tools! Do you
       | ever miss features from traditional note apps, CRM, and web page
       | builders? Does tool maintenance get in the way of your work?
       | 
       | I do agree with your argument about building tools to fit your
       | workflows. Low code and no code tools will bring down the cost of
       | custom tools dramatically.
       | 
       | Companies don't update their tools enough because people hate
       | changing their workflows. I've worked with customer support teams
       | and change in workflows is a big reason why they don't want to
       | buy a 'better' SAAS tool. They'll lose productivity in short-term
       | with a new product that's different.
       | 
       | (shameless plug-I started an open source project to let companies
       | build their own self-hosted tools and workflows.
       | https://github.com/appsmithorg/appsmith)
        
         | thesephist wrote:
         | >Do you ever miss features from traditional note apps, CRM, and
         | web page builders?
         | 
         | Very rarely, and if I do I build them in. But my needs are
         | pretty low -- I'm ok with plain markdown/text for storing most
         | data, or nicely formatted tables. I've found that super-rich
         | document formats with embedded this-and-that don't actually add
         | a lot of value for me (but of course this might be Stockholm
         | syndrome speaking, I suppose).
         | 
         | >Does tool maintenance get in the way of your work?
         | 
         | No, and this is a big consideration for anything I build. I try
         | to design / deploy apps so they require minimum maintenance.
         | Static Go binaries + going slim on frontend dependencies both
         | help with this. The only real "maintenance" I have to do is
         | periodically reboot my Linux box and upgrade the Ubuntu version
         | to the next LTS every few years. All my binaries are deployed
         | as auto-restarting systemd services on an small VPS -- not
         | depending on more serverless-style platforms helps keep
         | maintenance needs low too, I find (though there are
         | disadvantages, it doesn't really apply for one dude running a
         | dozen web apps on a single server).
        
           | bostonvaulter2 wrote:
           | Does your note taking app support embedded files and images
           | in-line?
        
         | lukeramsden wrote:
         | Is Appsmith essentially a FOSS Retool? If so that's awesome and
         | I may use that at some point
        
           | arey_abhishek wrote:
           | Yes! It's a FOSS replacement for Retool, Powerapps, and other
           | such low code products.
        
       | dasil003 wrote:
       | It's super cool to see this kind of self-sufficient toolmaker
       | mentality can still thrive in today's world of big,
       | interconnected, and multi-disciplinary software teams. It feels
       | like a throwback in a way, but also it highlights the power of
       | simplicity and YAGNI. Of course the fact that the tools are
       | personal makes the tradeoffs easier to reconcile, but even as you
       | start to scale and generalize it's worth questioning if a
       | simplified, less feature-rich solution can generate more leverage
       | to your particular problem.
        
       | crb002 wrote:
       | The humble .plan file. https://github.com/ESWAT/john-carmack-
       | plan-archive
        
       | natcombs wrote:
       | The link for "Lovecroft" goes to the wrong page, and I can't find
       | this tool (for mailing lists). Anyone know what it is or where I
       | can learn more?
        
         | thesephist wrote:
         | Hey natcombs, OP here :) Just fixed up the link so it should
         | point to github.com/thesephist/lovecroft which is the correct
         | link! Thanks for pointing it out.
        
       | davnicwil wrote:
       | I agree with a lot of what's written here and applying it to
       | CI/CD was what led me to build https://boxci.dev
       | 
       | In my view your tools should come to _you_ - for instance with
       | CI, why should you have to go all-in porting your production
       | build pipeline for a third-party platform and workflow when you
       | have a build script that already works, and fast, and you really
       | just need to change a couple of flags to build for production
       | rather than dev? As the author says, you shouldn 't change your
       | workflow for the tool, the tool should help you with your
       | workflow.
        
       | rexpop wrote:
       | Is this not an aspect of Ivan Illich's "Tools for Conviviality"?
        
       ___________________________________________________________________
       (page generated 2020-08-22 23:00 UTC)