• Projects have project managers (ugh!) and they impose deadlines. That leads to compromise, so I'd say ideally you don't compromise on quality but ultimately it's imposed on you.

    Having said that, some programmers I've worked with would take until the ends of time give the chance!