Today our boss came up with a "reorganization" to "improve efficiency". He expects us to estimate time needed with max 30% deviation, and max 20% deviation if it's over 3 days. Software projects.
* * *
Background (SPOILERS)
boss is an old programmer, an American client is outsourcing its work to us. The work is two repos: a) IE-compatible Javascript without Babel or Node (ES5), b) Python 2.7 with no unit tests, no dev database, lots of "except: pass".
Both repos are centered around a god class, functions often 100,200,300+ lines , no documentation, very few comments, superficial but nitpicky code reviews, one or maybe two questions answered per day.
Two books help with methods of doing this.
Rapid Development: Taming Wild Software Schedules: https://www.amazon.com/Rapid-Development-Taming-Software-Sch...
Software Estimation: Demystifying the Black Art https://www.amazon.com/Software-Estimation-Demystifying-Deve...
This likely does mean you'll need to be allowed to deploy automated test cases, develop documentation and the entire nine yards, because it's going to be far harder to hit any reasonable deadline if you don't have a known development pipeline.
You'll need to reduce your uncertainty as much as you can to even have a chance - and even then, things will still blindside you and double (or more) the actual vs. the original estimate.