Not to argue with you Steph, but that indicates a management problem. If I ask one of my guys for an estimate, I expect that it will take them time. If I need a SWAG, I'll say that. If I need an accurate estimate, I'll tell them that and ask how long it will take. Most (competent)management understands that everything has a cost. The problem that I've seen repeatedly is that devs toss off a quick guess without thinking about it very much and then act surprised when they're held to it.
That said, I believe that a week is plenty of time to estimate a year-long project. However, you need experience estimating.
Look, I'm no genius at this but when asked to estimate a task, this is what my manager would normally get:
Time to Research fuzzy task C
Find libraries for X, Y, and Z
Assume cost of $A for libraries. Make sure we have this in the budget to avoid delays
Repository setup time
Tool configuration time (if different)
Feature A
Feature B
...
Integration Test time for x, y, z
I'm on vacation for a week
Bug fix
I need to interact with Susie in Manufacturing around this date and she says she will be having a baby and out for 6 months. You need to find me a replacement contact.
Incorporate feedback from Manufacturing. Historically this adds about 2 weeks to any project.
Add up all the times and provide an estimate along with any confidence intervals around each line item.
This is how I have done it in the past before we implemented more rigorous processes and never gotten complaints. It gives management plenty to data to work with and talking points for them to ask questions about.