<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="372768" data-post-id="372768">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adamu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/120/31482_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adamu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="waseigo" data-post="31" data-topic="72088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/waseigo/48/34129_2.png" class="avatar"> waseigo:</div>
<blockquote>
<p>I don’t get the analogy, TBH–or, rather, the difference.</p>
</blockquote>
</aside>
<p>Okay, the binary is the instructions (to the computer). The code is the design. But the difference is not worth distinguishing in general, because the binary is deterministically produced from the code - and it’s even generated on the fly for interpreted languages. There is also some interesting stuff in the last book (programming as theory-building) linked above about how the binary itself is actually dead without a team that knows how to maintain it, and if that’s lost (for example because you fired everyone or they quit - or I’ll add - generated it with AI), the effort has to be spent to understand the design all over again if you want to be able to change it.</p>
<aside class="quote no-group" data-username="waseigo" data-post="31" data-topic="72088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/waseigo/48/34129_2.png" class="avatar"> waseigo:</div>
<blockquote>
<p>The equivalent is that the output of mechanical-system development is a set of instructions (drawings, etc.). So how is the above unique for software?</p>
</blockquote>
</aside>
<p>For a mechanical system, the end goal is a physical artifact; for software, the <em>instructions</em> (to the computer) are the end goal. We have a turing-complete computer that can do anything, and infinite ways to instruct it to do something.</p>
<aside class="quote no-group" data-username="waseigo" data-post="31" data-topic="72088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/waseigo/48/34129_2.png" class="avatar"> waseigo:</div>
<blockquote>
<p>not only in how easy it is to change something, but how many different ways there are to design and implement something and have it deliver on its promises in the same way</p>
</blockquote>
</aside>
<p>I agree - but I think this is <em>because</em> software is all about instructing a computer.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372768" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-372768" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372768"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #31"></div>
  </section>
</div>
    <div class="postbit" id="372772" data-post-id="372772">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="waseigo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/waseigo/120/34129_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  waseigo
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adamu" data-post="32" data-topic="72088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/48/31482_2.png" class="avatar"> adamu:</div>
<blockquote>
<p>I agree - but I think this is <em>because</em> software is all about instructing a computer.</p>
</blockquote>
</aside>
<p>Interesting, because with that view, an .STP file or anything else representing a geometry drived from a CAD drawing (DXF, DWG, SolidWorks, CATIA, etc.) is also all about instructing a computer <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<blockquote>
<p>the binary itself is actually dead without a team that knows how to maintain it, and if that’s lost (for example because you fired everyone or they quit - or I’ll add - generated it with AI), the effort has to be spent to understand the design all over again if you want to be able to change it.</p>
</blockquote>
<p>Here’s a real-life story: a company I used to work for had launched a very successful tool more than 30 years prior. It established a new product category. I won’t reveal what it is to adhere to my NDA, even though it has long-since lapsed.</p>
<p>Over the decades, people had been promoted to other roles / other Business Units, product managers had long moved on, others across functions had left. The original set of people who had achieved a rich, nuanced understanding of all the decisions that had gone into going from the original ex-nihilo idea to a product that soon started getting copied by the competition, had been scattered to the four winds.</p>
<p>A friend was in charge of the product development project to develop a successor to that model, that had since undergone “facelifts” and minor upgrades, as the understanding of how this thing actually works had dwindled. She found out that the company had gotten rid of “old files in drawers”, and that included all the documentation around the project that defined the market opportunity, the project(s) that documented the development of the technologies and components the successful product utilized, the project that developed the product, etc. Drawings were available, obviously, as the widget kept coming off the production line.</p>
<p>But the knowledge had long been lost. They had to do <em>a lot</em> of reverse engineering and “theory-building” to get up to speed with the state of knowledge from decades prior. This is rework that could have been avoided if not for some “neat freaks” who didn’t understand the opportunity cost of throwing out old binders or wiping computer folders full of knowledge…</p>
<p>So, the “binary” (the product), as well as the drawings behind it (incl. specifications for parts production and instructions for assembly, maintenance and repair), were also “dead”, as they didn’t incorporate the “why” behind why this screws into that, why it should survive a drop from up to x centimeters height above ground, why something is like this instead of like that, etc.</p>
<p>…so: how is it different to software?</p>
<blockquote>
<p>the binary is the instructions (to the computer). The code is the design.</p>
</blockquote>
<p>The code is the <em>fruit</em> of the design, and obviously incorporates design decisions along the way. Therefore, the code is the <em>implementation</em> of the design, and the computer is the “machine operator” / CNC that turns the instructions into the widget (binary).</p>
<blockquote>
<p>programming as theory-building</p>
</blockquote>
<p>I agree; and engineering and figuring out trade-offs is also theory-building. A fancy way of saying “closing the knowledge gaps”, which is a Lean Product Development consultant’s/expert’s way of saying the much more pedestrian “don’t make uninformed, risky decisions”.</p>
<blockquote>
<p>for software, the <em>instructions</em> (to the computer) are the end goal.</p>
</blockquote>
<p>It depends on how small or large the scope of the system you’re looking at is. For the subsystem of a business we call a team or department of developers, yeah, the instructions are the output, the end goal. For the larger subsystem called “product development” (department, team, process, however you organize things), the instructions are merely a vehicle to achieving some other end goal of that subsystem, that contributes towards end goals of the larger context etc. etc. which at some points ends with the “fruit” of the overarching system achieving <em>something</em>. That something might be “sustainable revenues”, “gaining market share”, “people find my Hex.pm packages useful”, etc.</p>
<p>So perhaps we’ve debating two different things here: product development vs. coding. The former encapsulates the latter as an activity.</p>
<blockquote>
<p>We have a turing-complete computer that can do anything, and infinite ways to instruct it to do something.</p>
</blockquote>
<p>To some extent, humans do that to, but are subject to boredom, whims, other interests, not liking the management style, etc. <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372772" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-372772" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372772"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #32"></div>
  </section>
</div>
    <div class="postbit" id="372773" data-post-id="372773">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adamu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/120/31482_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adamu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="waseigo" data-post="33" data-topic="72088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/waseigo/48/34129_2.png" class="avatar"> waseigo:</div>
<blockquote>
<p>with that view, an .STP file or anything else representing a geometry drived from a CAD drawing (DXF, DWG, SolidWorks, CATIA, etc.) is also all about instructing a computer <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>I don’t know about CAD files, but if they can be used to write general-purpose programs, then sure. Otherwise, they’re just input to the CAD software, which has itself undergone the software development process.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372773" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-372773" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372773"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #33"></div>
  </section>
</div>
    <div class="postbit" id="372791" data-post-id="372791">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="JEG2" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/JEG2/120/936_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  JEG2
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Designing Elixir Systems with OTP</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adamu" data-post="32" data-topic="72088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/48/31482_2.png" class="avatar"> adamu:</div>
<blockquote>
<p>There is also some interesting stuff in the last book (programming as theory-building) linked above about how the binary itself is actually dead without a team that knows how to maintain it, and if that’s lost (for example because you fired everyone or they quit - or I’ll add - generated it with AI), the effort has to be spent to understand the design all over again if you want to be able to change it.</p>
</blockquote>
</aside>
<p>I don’t think we need a loss of the team to trigger this need.  Programmers often need to get back up to speed on code they haven’t interacted with in some time.  I would argue that this is one of the key skills strong programmers need to possess.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372791" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-372791" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372791"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #34"></div>
  </section>
</div>
    <div class="postbit" id="372798" data-post-id="372798">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adamu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/120/31482_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adamu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Indeed. But to flip this around: there is quite a difference between getting up to speed with code you’ve worked with before, and dropping someone into a legacy code situation where the context has been completely lost. In the latter case, struggling to understand is not a reflection of a lack of skill, but a necessity to get the project going again.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372798" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-372798" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372798"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #35"></div>
  </section>
</div>
    <div class="postbit" id="372979" data-post-id="372979">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sevenseacat" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sevenseacat/120/23153_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sevenseacat
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Ash Framework</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Whoa, TIL that a third version of Peopleware came out! (like ten years ago lol)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372979" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-372979" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372979"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #36"></div>
  </section>
</div>
    <div class="postbit" id="372981" data-post-id="372981">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ragamuf" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ragamuf/120/7602_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ragamuf
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>+1 to “Not every problem is best solved by a technical solution” is a mantra we all should return to more often. You can save a lot of lines of code this way.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="372981" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-372981" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="372981"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #37"></div>
  </section>
</div>
    <div class="postbit" id="373050" data-post-id="373050">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adamu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/120/31482_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adamu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve been thinking a bit more about this <img src="https://forum.elixirforum.com/images/emoji/apple/hot_beverage.png?v=15" title=":hot_beverage:" class="emoji" alt=":hot_beverage:" loading="lazy" width="20" height="20"></p>
<p>Another aspect that makes software engineering hard is that our mental model of the system (the domain model) can never exactly match the actual behaviour of the system when it runs. This is because as discussed above, there is no actual system to modify, but only instructions to the computer to execute, which produces the system. We’re mapping everything down ultimately to bits in memory and instructions that read and alter them to produce side effects.</p>
<p>Any conceptual understanding we might have will differ from what is executed - not to mention different people might have different mental models of the system themselves.</p>
<p>It’s the job of engineers and managers to ensure that we do everything we can to make sure everyone is on the same page conceptually, and we have to constantly strive to keep the implementation (code) <em>and</em> its executed state (processes, side-effects) as close to the conceptual model as possible.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373050" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-373050" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373050"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #38"></div>
  </section>
</div>
    <div class="postbit" id="373165" data-post-id="373165">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="waseigo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/waseigo/120/34129_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  waseigo
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Another aspect that makes software engineering hard is that our mental model of the system (the domain model) can never exactly match the actual behaviour of the system when it runs.</p>
</blockquote>
<p>This is actually a very good point! Non-software systems are subject to the laws of physics; yes, ultimately, the code you write ultimately compiles down to code that transistors work on, which are also subject to physics.</p>
<p>In mechanical engineering systems, for example: sure, we use simpler models and even CFD/FEA to build abstractions with predictive power by modeling laws of thermodynamics, etc. But a key difference to software is that we are closer to “bare metal”. We have far less choice of the system architecture, because our abstractions are lower-level, and the interfaces are tangible, not conceptual.</p>
<blockquote>
<p>Any conceptual understanding we might have will differ from what is executed - not to mention different people might have different mental models of the system themselves.</p>
</blockquote>
<p>That is also a big difference. The way I think of this is: between requirements and design, let alone implementation, in software there is a much bigger “cloud of uncertainty” compared to other, non-software artifacts, exactly because of the abstraction level of the systems being developed.</p>
<blockquote>
<p>It’s the job of engineers and managers to ensure that we do everything we can to make sure everyone is on the same page conceptually, and we have to constantly strive to keep the implementation (code) <em>and</em> its executed state (processes, side-effects) as close to the conceptual model as possible.</p>
</blockquote>
<p>IMO, there is less of a difference there, as anyone who has worked on tangible products from widgets to houses can attest. This is about defining goals, eliciting functional and non-functional requirements (including company-internal and legal ones), aligning them against the project plan, its viability/ROI and the related business plan, etc.–not very different to developing anything, software or not.</p>
<p>Anything that involves humans involves subjective opinions, and the more subjective the subject-matter, the more you have to navigate the process politically.</p>
<p>The upside of working on tangible products is that senior stakeholders can beat their chest all they want, but the laws of physics don’t care. Whereas, in software some PHB will come up with “requirements” stemming from chasing fads like “can we use GenAI for that?”, “<em>of course</em> we’ll deploy on Azure”, “<em>of course</em> we’ll use microservices, I read about this in the McKinsey Quarterly!”, “the project must use Agile” etc., and this throws a wrench in things…</p>
<p>Blessed are those who don’t have to work under the whims of idiots chasing the shiny new thing <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373165" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/why-is-this-hard/72088/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-373165" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373165"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>