That’s always one of the most critical questions. However, it depends on the scope of work, and mainly it depends on how often the scope of work is changed. At the project begin, while the team is not ramp-up on the project to perform well, we practice avoiding estimations using time measure and complexity measurement instead. Once teammates are good enough with the project source code and understand business and technical requirements – we are pretty exact with deadlines and estimates.  Mostly, we avoid breaking the deadlines and estimates. However, it may happen due to many reasons. In this case, we continuously track such metrics as the capacity and velocity of our performance and work on further tasks more efficiently and more predictable.