Hacker News new | past | comments | ask | show | jobs | submit login

Refactor, refactor, refactor. Growing things adapt to changing circumstances. Software must adapt to changing requirements. Refactoring is the only way.



This is so important. We all know beautifully "designed" API's or libraries.

The secret is that the "elegant" API design you see is usually the n-th iteration.

Growing code is much like growing trees. The tree grows itself, what it requires is that it is pruned and helped to reshape in a fashion that will allow it to stay alive for a long time and bear fruit.

But one needs to constantly prune the damn thing.


I like the tree metaphor.

You start planting trees, maybe it's in an empty field, or maybe it's in an old forest. At some point it takes root and multiplies. People help plant your forest in unexpected places and it expands. At some point you try pruning and controlling the trees. And at some point a forest fire destroys it making way for a new forest to grow.


software is gardening, not sculpture.


Is it?

To continue the metaphor, one of the most important pieces of evolutionary growth is death.




Consider applying for YC's first-ever Fall batch! Applications are open till Aug 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: