Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>Unfortunately most software is just not well defined up front.

Because for years people have practice with defining software iteratively, whether by choice or being forced by deadlines and agile.

That doesn't inherently make one or the other harder, it's just another familiarity problem.

TDD goes nicely with top-down design using something like Haskell's undefined to stub out functionality that typechecks and it's where clauses.

    myFunction = haveAParty . worldPeace . fixPoverty $ world
        where worldPeace = undefined
                   haveAParty = undefined
                   fixPoverty = undefined
Iterative designs usually suck to maintain and use because they reflect the organizational structure of your company. That'll happen anyway to an extent, but better abstractions to make future you and future co-workers lives easier are totally worth it.


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

Search: