News for hackers. Stuff that matters.
Re:Build tools around workflows, not workflows around tools by trentnix on Saturday August 22, 2020 @11:47AM (#24244869)
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.

Re:Build tools around workflows, not workflows around tools by cheez on Saturday August 22, 2020 @11:52AM (#24244918)
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.

Re:Build tools around workflows, not workflows around tools by cratermoon on Saturday August 22, 2020 @01:44PM (#24245765)
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.

Re:Build tools around workflows, not workflows around tools by jimkleiber on Saturday August 22, 2020 @05:55PM (#24247579)
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.

Re:Build tools around workflows, not workflows around tools by 908B64B197 on Saturday August 22, 2020 @03:01PM (#24246371)
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.

Re:Build tools around workflows, not workflows around tools by cratermoon on Saturday August 22, 2020 @03:08PM (#24246440)
> 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.

Re:Build tools around workflows, not workflows around tools by 908B64B197 on Saturday August 22, 2020 @04:03PM (#24246849)
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.
Re:Build tools around workflows, not workflows around tools by tomnipotent on Saturday August 22, 2020 @11:11PM (#24249227)
> nobody who works there is any good at "X", they should fail.

Except almost every software startup in the last three decades was started by folks that were not experts in the domain they eventually became successful in.

Re:Build tools around workflows, not workflows around tools by johnjj257 on Sunday August 23, 2020 @06:47AM (#24251001)
Citations needed
Re:Build tools around workflows, not workflows around tools by dpacmittal on Sunday August 23, 2020 @04:00AM (#24250376)
Did online shop software even exist when Amazon started?
Re:Build tools around workflows, not workflows around tools by mattacular on Sunday August 23, 2020 @07:52AM (#24251253)
I was going to say "yes!" but then I looked it up that Amazon actually launched before Ebay as a business. I don't remember actually using Amazon personally until the 2000s but they've been around since 1994, almost a year before Ebay. I'm struggling to think of any earlier online retailers who would have been building ecommerce software.
Re:Build tools around workflows, not workflows around tools by howlin on Sunday August 23, 2020 @12:40PM (#24253125)
Especially in the early days, the main competitors to online retail were catalogue services. I would think they have most business and logistics problems in common, minus running a web site.
Re:Build tools around workflows, not workflows around tools by EdwardMSmith on Sunday August 23, 2020 @04:11PM (#24254910)
The Internet Shopping Network launched before Amazon, but I doubt they wouldn't probably have considered licensing any of their platform.
Re:Build tools around workflows, not workflows around tools by teddyh on Sunday August 23, 2020 @12:36PM (#24253083)
> buy for parity, build for competitive advantage.

Yes. As Joel Spolsky put it in 2001:

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

— Joel Spolsky, In Defense of Not-Invented-Here Syndrome: https://www.joelonsoftware.com/2001/10/14/in-defense-of-not-...

Re:Build tools around workflows, not workflows around tools by cratermoon on Sunday August 23, 2020 @03:08PM (#24254434)
Joel was one of the voices that helped me understand that, while my analysis was useful for myself and the employer at the time, my conclusion was not an especially original insight.
Re:Build tools around workflows, not workflows around tools by jmole on Saturday August 22, 2020 @02:39PM (#24246208)
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.

Re:Build tools around workflows, not workflows around tools by scott_w on Saturday August 22, 2020 @03:26PM (#24246591)
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.

Re:Build tools around workflows, not workflows around tools by quesera on Saturday August 22, 2020 @03:52PM (#24246781)
Makes sense, but FWIW and IIRC, the terms of an ordinary car lease prohibit commercial use.
Re:Build tools around workflows, not workflows around tools by scott_w on Sunday August 23, 2020 @02:35AM (#24250059)
I don’t know the details but I’m assuming he’s using commercial lease hiring, or the U.K. rules are different. The mileage and wear and tear alone would mean he’d be unable to hide it.
Re:Build tools around workflows, not workflows around tools by gukov on Saturday August 22, 2020 @04:15PM (#24246934)
If it's for business use you should be able to expense it.
Re:Build tools around workflows, not workflows around tools by danielheath on Saturday August 22, 2020 @07:11PM (#24248032)
If it’s for your own business who do you send the receipt to?
Re:Build tools around workflows, not workflows around tools by stickydink on Saturday August 22, 2020 @10:54PM (#24249159)
The government
Re:Build tools around workflows, not workflows around tools by masklinn on Saturday August 22, 2020 @03:50PM (#24246768)
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.
Re:Build tools around workflows, not workflows around tools by scott_w on Sunday August 23, 2020 @02:33AM (#24250050)
He told me his reasons but he put it down as an expensive lesson learnt.
Re:Build tools around workflows, not workflows around tools by voiper1 on Sunday August 23, 2020 @01:08AM (#24249666)
I don't think rental covers any and all failures.
Re:Build tools around workflows, not workflows around tools by scott_w on Monday August 24, 2020 @01:41AM (#24257806)
It’s not a rental, it’s hire purchase with a warranty, so the most common things that are going to fail are covered. Other things are just not that likely to fail in the first 3 years.
Re:Build tools around workflows, not workflows around tools by cratermoon on Saturday August 22, 2020 @03:00PM (#24246364)
Shows how long I've been around. I still think of commercial software as something you buy and own.
Re:Build tools around workflows, not workflows around tools by tomnipotent on Saturday August 22, 2020 @11:10PM (#24249222)
If you can't resell it, you don't own it. Do you have examples of commercial software that you were allowed to resell?
Re:Build tools around workflows, not workflows around tools by sireat on Sunday August 23, 2020 @03:04AM (#24250170)
There used to be a pretty big business in US of reselling expensive software licenses (think AutoCad etc). I remember Autodesk trying to stop it and not being able to which brings us to the current day.

Of course now that everything is under pay as you go SaaS model, that's out of window.

Still in Europe it is legal (http://curia.europa.eu/juris/document/document.jsf?docid=124...) and people do resell mundane licenses such as Windows.

Re:Build tools around workflows, not workflows around tools by Sharlin on Sunday August 23, 2020 @01:29PM (#24253571)
Pretty much everything was resellable in Europe at least. Used computer games especially were a fairly big thing.
Re:Build tools around workflows, not workflows around tools by contingencies on Saturday August 22, 2020 @02:27PM (#24246118)
Re:Build tools around workflows, not workflows around tools by cheez on Saturday August 22, 2020 @02:34PM (#24246167)
You said it better than I ever could have!
Re:Build tools around workflows, not workflows around tools by cratermoon on Saturday August 22, 2020 @03:09PM (#24246461)
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.
Re:Build tools around workflows, not workflows around tools by iforgotpassword on Saturday August 22, 2020 @12:34PM (#24245240)
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.

Re:Build tools around workflows, not workflows around tools by cheez on Saturday August 22, 2020 @12:43PM (#24245316)
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.
Re:Build tools around workflows, not workflows around tools by mcny on Saturday August 22, 2020 @01:53PM (#24245835)
> 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.

Re:Build tools around workflows, not workflows around tools by 908B64B197 on Saturday August 22, 2020 @03:03PM (#24246394)
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.

Re:Build tools around workflows, not workflows around tools by mcny on Saturday August 22, 2020 @04:59PM (#24247210)
> 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.

Re:Build tools around workflows, not workflows around tools by mlyle on Saturday August 22, 2020 @12:26PM (#24245176)
> 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. ;)

Re:Build tools around workflows, not workflows around tools by cheez on Saturday August 22, 2020 @12:42PM (#24245302)
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.

Re:Build tools around workflows, not workflows around tools by ta17711771 on Saturday August 22, 2020 @12:56PM (#24245434)
> 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.

Re:Build tools around workflows, not workflows around tools by ish on Saturday August 22, 2020 @12:59PM (#24245457)
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?
Re:Build tools around workflows, not workflows around tools by jariel on Saturday August 22, 2020 @01:25PM (#24245647)
"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'.

Re:Build tools around workflows, not workflows around tools by tootie on Saturday August 22, 2020 @12:46PM (#24245338)
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.

Re:Build tools around workflows, not workflows around tools by cratermoon on Saturday August 22, 2020 @03:15PM (#24246503)
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.
Re:Build tools around workflows, not workflows around tools by dllthomas on Saturday August 22, 2020 @09:18PM (#24248746)
There's a story about early fighter planes... searches a bit... this seems to be the one, although I've not read this exact version: https://www.thestar.com/news/insight/2016/01/16/when-us-air-...

The military was ordering planes designed for the average pilot. But because there are so many dimensions along which someone can vary, most people are far from the average on some dimension, and when SHF and they need to be able to reach the right thing at just the right time, sometimes they couldn't.

Each pilot is unique, just like every other pilot. Accommodating that proved important.

Now... how well does that translate to building software? I can certainly see reasons why it wouldn't. But I don't see an argument that wouldn't apply to the planes as well, without actually measuring things.

Re:Build tools around workflows, not workflows around tools by donw on Saturday August 22, 2020 @09:36PM (#24248831)
> Now... how well does that translate to building software?

Well, let's dig on on what the Air Force ended up doing, overall.

First, they studied and improved the ergonomics. Specifically, making things like seats adjustable. The tool became more adaptable for a wider range of pilots.

At the same time, there is a limit to how far that can go, especially when we are looking at 1940s technology.

The Air Force thus imposed body-size standards for pilots -- 5'4" to 6'5" is a wide range, but it excludes outliers. Too short, too tall, too wide, or too heavy, and you couldn't be a pilot.

My Dad was in that category -- too big to fly his dream plane.

Controls were adapted so that unique functions had unique hand-feels. Flaps had a different shape of control than landing gear, and all of that was standardized across aircraft.

So what does that tell us about workflows for engineers?

Well, we can say firmly that physical ergonomics matter. Bigly.

Uncomfortable seats, poor-quality monitors, high-latency or slow network connections... all of those are deal-breakers.

But in terms of things like process and practices... standardize what you can, give everybody a sane baseline from which to work, and then empower them to customize as much as possible for their team or group.

At the end of the day, software is shipped by teams.

There's this odd, pervasive myth of the Morlock and Eloi in the software world.

E.g., that engineers are either beautiful artisans in designer specs to which every whim must be catered, or that you just need to shove a pizza under the door every couple of days and production code will then appear on your servers.

Don't open the door, though.

None of that is reality. And to work in a team, you get to surrender some of your personal work-autonomy, in order to leverage the cognitive multiplier effect.

Re:Build tools around workflows, not workflows around tools by dllthomas on Tuesday August 25, 2020 @09:52PM (#24278250)
Having had some time to reflect...

> Well, we can say firmly that physical ergonomics matter. Bigly.

Can we? I don't think that's the right lesson to take from the story. The story clearly establishes that physical ergonomics matter when split-second reactions matter under unusual G forces. I would be astounded if we didn't find that they matter less in the sort of situations most of us find ourselves in while coding. It could still be more than "bigly"; it could be very little. We can pull in other evidence and experience to try and make a determination, but that's no longer drawing lessons from the story.

I think application to software development tools involves asking whether we find, there, too a high dimensional space; and then recognize that, in such a space (where each is picked from independent distributions), we'll find that each of us is similar in a lot of ways, and pretty different in a few. It doesn't seem unreasonable that this would sometimes impact choice of tool.

As you say, teams are a crucial part of the production of software; it's vital that whatever tools are chosen, they mesh well where there is interaction between individuals.

Re:Build tools around workflows, not workflows around tools by w_t_payne on Sunday August 23, 2020 @02:32AM (#24250040)
Unix had it right. Provide a toolbox with modular legos that you can customise and fit together to make the tools that you need.
Re:Build tools around workflows, not workflows around tools by agumonkey on Saturday August 22, 2020 @02:02PM (#24245916)
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.
Re:Build tools around workflows, not workflows around tools by zmmmmm on Saturday August 22, 2020 @06:54PM (#24247927)
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.

Re:Build tools around workflows, not workflows around tools by koonsolo on Saturday August 22, 2020 @12:55PM (#24245424)
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.

Re:Build tools around workflows, not workflows around tools by starfallg on Saturday August 22, 2020 @02:14PM (#24246015)
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.
Re:Build tools around workflows, not workflows around tools by abhgh on Saturday August 22, 2020 @02:13PM (#24246010)
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.

Re:Build tools around workflows, not workflows around tools by edgarvaldes on Saturday August 22, 2020 @12:47PM (#24245343)
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.
Re:Build tools around workflows, not workflows around tools by Aeolun on Sunday August 23, 2020 @12:09AM (#24249447)
That’s generally because the ‘own workflow’ is insane in the first place (10s of years of managers adding their own crazy conditions).
Re:Build tools around workflows, not workflows around tools by momokoko on Saturday August 22, 2020 @01:09PM (#24245531)
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.

Re:Build tools around workflows, not workflows around tools by contingencies on Saturday August 22, 2020 @02:36PM (#24246180)
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.

Re:Build tools around workflows, not workflows around tools by momokoko on Saturday August 22, 2020 @04:55PM (#24247189)
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.

Re:Build tools around workflows, not workflows around tools by contingencies on Saturday August 22, 2020 @07:17PM (#24248084)
Cool yep. Process change costs real money too ... observe the ETL phenomenon as an example. perl dies hard.
Re:Build tools around workflows, not workflows around tools by Konohamaru on Saturday August 22, 2020 @02:42PM (#24246228)
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.