Everything I do now takes a very long time because I'm taking far more into consideration, exploring the data and existing code deeply, and producing high quality solutions. I should be proud of this, but instead, I feel like I'm wasting huge amounts of time. 10 years ago, I would have cranked out something that mostly worked and then I'd come back and refine it a few times as it ran and discovered new failure states. That actually feels more efficient than the over-researching/engineering I'm doing now.
20 years ago I thought I worked fast, and probably I did. Now I have learned to think as the engine,and work differently. I don't start working after the first briefing but I want to have the broader picture, so I gather as much info as possible to get to the right solution. After that I spend time tuning the solution so it's lean and mean and easy to maintain. I don't see it as losing time, but preventing loss of time through having to adapt/correct a quick and dirty project. You loose a lot of credit with the customer if you deliver half done things.