How do you reconcile how bespoke and ever changing the requirements are for software products vs how stable the requirements are for garages?
I'm asking because I see the construction analogy pop up a lot and I just can't reconcile the two things.
To me the development of a new blueprint for a new kind of garage for a new kind of vehicle operated by a never before seen alien species is a bit closer to creating a software product.
I mean, who would ask a contractor to do what people regularly ask software engineering teams to do?
Construction isn't a bad analogy. Imagine you're a contractor getting called in to finish a house that some incompetent jabroni started, then got out of their depth and got fired midway. Meanwhile the homeowner has changed their mind and wants an open-concept kitchen, and the building inspector has come back with objections to the wiring plan that need to be rectified.
The physical dependencies of a house vs the abstract nature of software interdependencies really makes the analogy fail for me. Houses just don't don't regularly fall down 8 times a day because one framer is putting a nail in a new wall and that caused the fireplace to explode.
I started using slack about two years ago, and in my opinion they have a quality problem. There are just too many issues that crop up when they roll out change.
It reeks of the "just get it done" anti-pattern where done is change that hasn't had the chaos tracked down and killed.
I bet internally they are waiting for bugs to get reported instead of pro-actively running the changed software under representative load to hunt and kill chaos.
>The thing that hasn't come about yet though is, sales, marketing, accounting can also be outsourced. Dare I say automated.
Yep, just consider how much sales, marketing and accounting work the App and Play store has automated. Not to mention software delivery and installation work.
As a matter of fact I've seen the super-opposite more than once.
That's where the organization figures out they are having the team work on something no customer wants, but they decide the team should go ahead "finish" it, as if there is value in the company maintaining filler.
The worst part of the anti-pattern is when a software leader is trying to do a good job, but finds this puzzling behavior where people in the org just want to hurry up and finish the filler project instead of resolving problems like poor performance, bad customer experience, etc.
>NASA lets net users sign up to send their name to Mars on a future flight. Taiwan appears as an option on a “country” drop-down box. It’s unclear how long Taiwan has been called a country on the website, but more than 18 million people have registered.
I'm asking because I see the construction analogy pop up a lot and I just can't reconcile the two things.
To me the development of a new blueprint for a new kind of garage for a new kind of vehicle operated by a never before seen alien species is a bit closer to creating a software product.
I mean, who would ask a contractor to do what people regularly ask software engineering teams to do?