Skip to main content

Coding Horror: When Understanding means Rewriting

Popularity Report

Total Popularity Score: 0

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Rank

Bookmark History

Saved by 10 people (-2 private), first by anonymouse user on 2006-09-22


Public Sticky notes

New code becomes old code almost instantly

Highlighted by navneetk

5x more time spent modifying code than writing new code

Highlighted by navneetk

Only the coding in the first iteration qualifies as all new code. After the first iteration coding quickly shifts to be more and more modifying rather than new coding.

Highlighted by navneetk

our stabilization (aka bug fixing) milestones are as long as our new feature milestones

Highlighted by navneetk

Modifying code consumes much more of a professional developer's time than writing new code

Highlighted by navneetk

3x more time spend understanding code than modifying code

Highlighted by navneetk

you must understand the behavior of the code so that you can guarantee that the refactoring didn't change anything unintended

Highlighted by navneetk

Understanding code is by far the activity at which professional developers spend most of their time.

Highlighted by navneetk

I think the way most developers "understand" code is to rewrite it

Highlighted by navneetk

What I cannot create, I do not understand.

Highlighted by alexko

very few developers are smart enough to understand code without rewriting it.

Highlighted by navneetk

Nobody wants developers to reinvent the wheel (again), but reading about how a wheel works is a poor substitute for the experience of driving around on a few wheels of your own creation

Highlighted by navneetk

If someone were to read the source code, do you think they could learn how to play [Monopoly]?"

Highlighted by navneetk

If you want to know how the application really works, observe carefully how users use it. Then go write your own version.

Highlighted by alexko

I was still re-learning what the code did. Sometimes by reading carefuly the code, and sometimes by observing the functionality. But I think I would have to agree with Joel, I've never "rewritten" a mature program, something with lots of bug fixes from lots of people. You have to really understand the code and what the strange bug fixes are in order to think about how you can rework the code to include those fixes logically, rather than attatched on the end. And if you can't work that out, then I guess it's probably best to leave it.

Highlighted by navneetk