This article resonated with me.  Note that currently I don&#x27;t work in a team development environment.  There are 3 of us and we each have our own respective technologies we develop for or with.  One of my responsibilities is some Java backend code.  I&#x27;m 80% of the way done developing a complex routing system that runs under apache camel.  I&#x27;m maybe 150 hours into the development.<p>As it relates to this article, even when developing a new system I find I have to keep challenging my original assumptions and refactor out the complexity where I can as I go. Its like razing a child and impacting new life rules each few months.<p>Yesterday I realized the customer had provided some requirements that we wrong and now I have to go factor that into the code in the next couple of days.  I am so glad that I have unit tests. I will be rewriting several unit tests today and adding more and then write the new requirements into the code base.  It feels like when you have a child and wake up in the morning ready to go to work and your child says, Dad take me to the doctor I don&#x27;t feel so good. All of a sudden your day or next several days are not what you had planned for but still you have to proceed with the new path.