▲ | godelski 19 hours ago | ||||||||||||||||
Just so we're clear, construction isn't engineering[0]. The difference does matter specifically in what we're talking about.
But again, I think this belies you. Yes, I've made the assumption that you either didn't read Dan's blog in full or listen to Hillel's video, but can you blame me? This sentence is something they both explicitly discuss. You don't have everything figured out in engineering. Frequently you are doing your designs and then get them built by a manufacturer and then reiterate. This is very much akin to writing code, running tests, and rebuilding.Hillel discusses this right here[1] (this also addresses your last line)
Or from Dan, not far in he says
I'm not interpreting your point too directly, I'm interpreting your point how you're asking I do in the followup. I am telling you the same problems happen in engineering. It is *all* about uncertainty. You are constantly doing new things that people haven't done before. In fact, the entire field of statistics is centered around uncertainty. Randomness is literally a measurement of uncertainty. Yes, it is true that in CS we don't have as formal of a base to derive complex equations and better (but not completely!) account for that uncertainty, but Dan also addresses this immediately after my quote.In fact, let me quote from a footnote of Dan's. #2
(Emphasis my own.) Does that not sound extremely familiar? Rushing for the sake of rushing? That this rushing just incurs technical debt and more surprises? There's surely the constant of management wanting things to be done faster and not recognizing that this creates future trip-ups that create more anxiety to rush and just perpetuates the problems in the first place.
So I hope you can understand why I had thought you didn't read their arguments. I referenced the timestamp in Hillel's video[1] too. The next part of Hillel's discussion is literally about how much more predictable and consistent SOFTWARE is. *Their entire thesis* is addressing your point.I'll leave you with Hillel again[2]
[0] I must stress that I'm not trying to say one is more important or better, just that they are different.[1] https://youtu.be/3018ABlET1Y?t=1085 [2] https://www.hillelwayne.com/post/are-we-really-engineers/ | |||||||||||||||||
▲ | necovek 18 hours ago | parent [-] | ||||||||||||||||
You've missed my entire point which is still not addressed at all with any of the examples you mention. Please note that I never once claimed traditional engineering is predictable — you seem to be stressing a point out of your pre-conviction what a software engineer would believe and not what I am stating plainly. I am talking about a fully "finished" project (say, an apartment building, with people living in those apartments), needing to have a floor inserted in the middle. This is not about "changing requirements", this is about evolving a project that was initially built to be an apartment building into a stadium or an airport without messing up any of the apartment dwellers. Again, this does not mean that the agility and creativity actual engineering needs to posess is at all smaller (in fact, some of the examples that are hard with large physical structures, are trivial with software — like that "moving a bridge" example), but I stay unconvinced that the methods that work for engineering would work as well for software. As I believe most technical debt comes from attempting to predict the future and not rushing, I don't see the parallel there either. Basically, they are arguing points I didn't make and don't believe, and not addressing points I do make and do believe. | |||||||||||||||||
|