L
Lau Lei Cheong
While I'm reading readings on YAGNI, I have a feeling that YAGNI isn't good
for all cases, especially when you foresee there will be a change breaking
"fundamental assumptions" when you design the application. In that case you
will really curse yourself for not writing "not currently needed code" in
the very beginning.
I have a project in hand that because the origional writer does not foresee
there will be other completely different types of products (yes, the
origional code does handle a range of products, but they all have common
characteristics, so the "alien types" added later cased huge trouble), he
ends up need to rewrite nearly half of the application just for that. If he
had the idea that "there might be other type of products that have
completely different characteritics", he'd write more flexible code and
suffer less when the new type is added.
for all cases, especially when you foresee there will be a change breaking
"fundamental assumptions" when you design the application. In that case you
will really curse yourself for not writing "not currently needed code" in
the very beginning.
I have a project in hand that because the origional writer does not foresee
there will be other completely different types of products (yes, the
origional code does handle a range of products, but they all have common
characteristics, so the "alien types" added later cased huge trouble), he
ends up need to rewrite nearly half of the application just for that. If he
had the idea that "there might be other type of products that have
completely different characteritics", he'd write more flexible code and
suffer less when the new type is added.