Agreed. What I mean by "perfect" is: for a given part/component/decision/etc, take the time (an always-limited resource) to learn as much as possible and contemplate more than just the seemingly obvious path forward. Take security for example. I'd rather 'waste time' now making sure I'm covering any gaps in that realm before shipping.
OTOH maybe some jacked-up abstraction/incorrect tool choice/ugly-ui/etc is something that can wait a few sprints or longer. At least you can plan when to deal with these. Security breaches tend to plan your day for itself on your behalf. :)
> wasted too much time thinking about the right approach in a neverending, neverprogressing loop to achieve perfection
A CEO from my past often muttered that "perfect software comes at infinite cost". It's key, imo, to identify which components of what you are building _must_ be perfect. The rest can have warts.
I once had a report who demanded, snarkily, all the things be listed on the whiteboard (as opposed to just getting them in Jira) and the meeting was set for the next day...
Knowing the team was one of those that is constantly using nearly-depleted markers and hating life, I thought to check. Sure enough... all empty, nothing to replace them with.
I thought to just let said report arrive at next day's meeting, ready to whiteboard it up only to look woefully unprepared, but I waited. I waited until about an hour before the meeting to see if they might have clued-in and sorted the problem for themselves...
An hour later I returned from a slushy 2km walk, soaked, with a box of markers that I just placed in the drawer, unbeknownst to all.
I make sure I'm up for _anything_. Give me that thing that has been the thorn in everyone's side. Yes, some rather daunting (read: frought-with-peril) tasks present themselves, but... if done well, usually yield a better 'next assignment'.
For someone with whom I was quite smitten, I had come up with a plan to take screenshots of the most romantic and intimate messages from the onset of our relationship contained in our WhatsApp convo and have them turned into a physical flip-book of sorts as my first Valentine's Day gift to her...
Approximately 3 months before VD, our relationship concluded. And then a week before VD, back on... like a house on fire. With nary enough time to execute the original plan, I pivoted the idea somewhat. I opted to export the 'best' few weeks from the WhatsApp convo, then proceeded to stand up a quick MVC site with the exported data presented as if it were a messaging app, complete with the very same images we each used for avatars at that time. Hosted the site off my lappy, and when she arrived for VD dinner, a link was sent to her phone, seemingly out of nowhere. She clicked it, and was greeted with this view, and the title "Budding Love" pinned as a header while she scrolled, smiled, and swelled with tears...
She was a techie chick, but didn't know how to code. She ended up confessing the best part was when I took her through and explained the purpose of all the code that I wrote for this gift I made. She even called me out for committing a sin or two (i.e. code dupe, embedded-SQL-in-C#, etc.) that I would often bitch to her about seeing at work :)
Have you tried using OneNote's handwriting recognition feature? I am curious if that experience would allow for the regaining of the pen-to-paper "magic".
Agreed. What I mean by "perfect" is: for a given part/component/decision/etc, take the time (an always-limited resource) to learn as much as possible and contemplate more than just the seemingly obvious path forward. Take security for example. I'd rather 'waste time' now making sure I'm covering any gaps in that realm before shipping.
OTOH maybe some jacked-up abstraction/incorrect tool choice/ugly-ui/etc is something that can wait a few sprints or longer. At least you can plan when to deal with these. Security breaches tend to plan your day for itself on your behalf. :)