Do you think estimates for software tasks are worth doing at all considering complexities you need to account for? How do you budget uncertainties?
How do you handle cases where the timeline gets exceeded?
Are there any tools (Gantt/Timeline) tools out there that you'd recommend for this?
Part of your job as a professional engineer is to both communicate and manage uncertainty. A properly scoped story shouldn’t be a month long project. It could be a few hours, or it could be a few days.
Helpful advice is to give your estimates using an appropriate dimension of time that reflects the uncertainty. If you think it’s going to take 2-3 hours, call it a half day.
If you think it’ll be 8 business days call it about two weeks.
Sometimes you don’t have an estimate. That’s where scoping comes in. It’s perfectly acceptable to say I’m not sure but if I spend the next 30 mins scoping it out, I can get back to you with a better idea.
I find managers are perfectly understanding that the world is a fuzzy place and no one has all the answers. Get comfortable with admitting that to yourself and to others and estimating gets a lot easier.