<story><title>These are called opportunities</title><url>https://fabiensanglard.net/silicone/</url></story><parent_chain><item><author>polote</author><text>in my previous job, as a PM, I was creating tickets all the time to work on the speed of the app, but the developers didn&amp;#x27;t not want to work on them, they were saying the users don&amp;#x27;t care.&lt;p&gt;The reality is that they didn&amp;#x27;t know how to fix the speed issues.&lt;p&gt;It is easy to debug a js function, but what about when you use angular or any other js framework ?</text></item><item><author>tjansen</author><text>There is an easy explanation for this: developers optimize their code when the product owner tells them to spend time on this. The product owner will tell them to optimize when product owner notices that the software is getting too slow. 
When new hardware is released, slowdowns that would be visible on older hardware won&amp;#x27;t be easily noticeable, so programmers will work on other features rather than optimizing code. Until the code becomes too slow to run on current hardware, then they work until it becomes usable again.</text></item></parent_chain><comment><author>mattmanser</author><text>So I&amp;#x27;ve done this a few times and constantly play with the idea of offering it as a consultancy service.&lt;p&gt;Two things put me off, I do wonder if anyone else here has attempted to do it as a consultant?&lt;p&gt;Firstly, while I could quickly identify the cause of the slowdowns, the previous times I&amp;#x27;ve done this I already had an intimate knowledge of the codebase so could confidently fix the problem. Without an intimate knowledge of the codebase, I fear I&amp;#x27;d either muck up the fix, or that I&amp;#x27;d have to rely on internal developers who, as you say, would deprioritize it or feel resentful at an outsider coming in and from their perspective effectively telling them their code is &amp;quot;bad&amp;quot; (even though I understand how these speed issues develop organically). Or would it be enough to just offer the diagnosis, but not the fix, and thus give ammo to the PMs&amp;#x2F;senior management to take the problem to their own developers and say &amp;quot;look, we&amp;#x27;ve been told there&amp;#x27;s a problem and it&amp;#x27;s fixable, go fix it&amp;quot;.&lt;p&gt;Secondly, how to handle getting access to their codebase&amp;#x2F;a proper debug environment that reflects production for such a short time. Again I fear it would turn into a &amp;quot;not my problem&amp;quot; scenario of trying to get a live environment setup from people who don&amp;#x27;t want to give it to you. Fixing these problems usually turns out to be fairly quick once you&amp;#x27;ve identified the real cause. I can do a quick analysis just with access to a website (i.e. is it a back-end or front-end problem), but until you can run diagnostics you can&amp;#x27;t say exactly which loop&amp;#x2F;sql statement&amp;#x2F;js compilation issue&amp;#x2F;etc. is causing the problem.</text></comment>
<story><title>These are called opportunities</title><url>https://fabiensanglard.net/silicone/</url></story><parent_chain><item><author>polote</author><text>in my previous job, as a PM, I was creating tickets all the time to work on the speed of the app, but the developers didn&amp;#x27;t not want to work on them, they were saying the users don&amp;#x27;t care.&lt;p&gt;The reality is that they didn&amp;#x27;t know how to fix the speed issues.&lt;p&gt;It is easy to debug a js function, but what about when you use angular or any other js framework ?</text></item><item><author>tjansen</author><text>There is an easy explanation for this: developers optimize their code when the product owner tells them to spend time on this. The product owner will tell them to optimize when product owner notices that the software is getting too slow. 
When new hardware is released, slowdowns that would be visible on older hardware won&amp;#x27;t be easily noticeable, so programmers will work on other features rather than optimizing code. Until the code becomes too slow to run on current hardware, then they work until it becomes usable again.</text></item></parent_chain><comment><author>jlokier</author><text>I find that quite fascinating.  I love making things perform faster.  It&amp;#x27;s one of the most rewarding things to do as a programmer, and &amp;quot;low hanging fruit&amp;quot; optimisations are usually quite simple, &amp;quot;mindless&amp;quot; work, to do in a quiet period between solving hard problems.  The wins are easily measured.  It can take a long time to do in a complex system, but it&amp;#x27;s usually pleasant and relaxing time.</text></comment>