> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/general/issues-of-software-engineers.md).

# Issues with Software Engineering and Engineers

* Working software is changed unnecessarily for a variety of reasons which lead to broken products, or lower performing (slower/less efficient)
* These reasons can be for non business cases and for superficial reasons
  * For example
    * To try new technologies
    * Boredom
    * Improve something cause it is looks good
    * do something cause it is a challenge
    * change something cause the way it was written was not to your liking or taste
    * rewrites for no gain for the stake holder
    * Forced to use new technologies due to management say so
* A lot of this driven via ego-driven decision-making of team members, including new CEOs, tech leads, or engineering CTOs, who feel the need to make changes to demonstrate their knowledge or expertise.
* This leads to people
  * massaging their egos
  * showing off
  * doing busy work instead of impactful work
  * doing stuff for their resume
  * Wanting to have fun rather doing things for the aim of the business

## Solution

* the importance of targeted reasoning and objective observation when making changes to software, focusing on genuine improvements rather than cosmetic changes.
* Use a scientific/engineering approach to making changes that will bring the most benefit short and long term
* Use shared ownership
  * refer to code as ours
  * Avoid you or I, instead use we and us
  * pairing
  * pairing in code reviews
* Psychological safety
  * people who are scared will not take risks or feel confident to do work that is impactful or can be seen to have consequences if it does not work out
  * look to prevent major issues from leaking out from mistakes
    * code review
    * pairing
    * testing in different environments
    * ease of rollbacks or config changes
    * CI/CD pipelines
* On self improvement
  * Dont get too tied up with the code/product
  * humility
  * therapy
