Live data from Hacker News

Don't rush to solutions

blog.abhi.se

11–20 of 30 posts

Re: Don't rush to solutions

#11
post #5

I used to think it was much easier to start coding out a problem before doing any sort of planning. My argument for this was that it gave me a hands-on understanding of the data/workflows/etc involved. Now, the first thing I do is grab a piece of paper, map out what I do and don’t know, and fill in any knowledge gaps by asking questions. It still isn’t second nature for me, but I think it’s something worth prioritizi…

There's room for both.

For instance, I run a hypothesis against the system and fill out those gaps in my understanding (napkin, whatever); implement a vertical slice; adapt for the known unknowns.

Re: Don't rush to solutions

#12
post #5

I used to think it was much easier to start coding out a problem before doing any sort of planning. My argument for this was that it gave me a hands-on understanding of the data/workflows/etc involved. Now, the first thing I do is grab a piece of paper, map out what I do and don’t know, and fill in any knowledge gaps by asking questions. It still isn’t second nature for me, but I think it’s something worth prioritizi…

"Unknown unknowns" - often about oddball limitations of the codebase or it's dependencies - limit my ability to enumerate what I don't know, and planning is often used as an excuse to get trapped in analysis paralysis (by myself included!)

Which isn't to say there's not plenty of room for inquery, questions, and planning, but don't underestimate the value of bulldozing through problems. (That said, this has caused me to step on the toes of fellow contributors to a project without realizing it.)

Re: Don't rush to solutions

#13
My company has quite a few IT architects (the "senior" ones are the worst). They always accuse you of "solutioning" when you propose something, drag you through weeks of meetings, produce a lot of documents and when they are done, they either do nothing or propose a "beautiful" solution that only works on paper.

After going through this a few times I have concluded it's easier to whip out a few prototypes for different aspects of the project. This allows you to understand the problem better while also exploring workable solutions. Often you don't understand the problem but you also don't understand ways to solve them well either and need to do some learning.

You just shouldn't fall into the trap of thinking that once the prototypes work, they are ready for production. Sometimes I wonder if it should be mandatory to scrap that code and start from scratch to development real solution.

Re: Don't rush to solutions

#14

My company has quite a few IT architects (the "senior" ones are the worst). They always accuse you of "solutioning" when you propose something, drag you through weeks of meetings, produce a lot of documents and when they are done, they either do nothing or propose a "beautiful" solution that only works on paper. After going through this a few times I have concluded it's easier to whip out a few prototypes for differe…

Iterating can take many forms, and different teams have different workflows. For my work, I would rarely be able to make a "quick prototype" even if I wanted to, since most of my projects need to modify other people's code. And they have to be deployed to be validated.

In those cases you better have some consistent plan that everyone agrees on before anybody else lets you touch code that they are responsible for. Yes, you can still make mistakes and iterate, but you need to plan for those too.

But I agree with you if you can prototype with a fresh body of code, not touching shared repositories.

Re: Don't rush to solutions

#15
> Lesson learned: every time you find yourself

Looks like author encountered something one time. And they made resolution that it will happen every time. Doesn't sound reasonable.

Re: Don't rush to solutions

#20

My company has quite a few IT architects (the "senior" ones are the worst). They always accuse you of "solutioning" when you propose something, drag you through weeks of meetings, produce a lot of documents and when they are done, they either do nothing or propose a "beautiful" solution that only works on paper. After going through this a few times I have concluded it's easier to whip out a few prototypes for differe…

> You just shouldn't fall into the trap of thinking that once the prototypes work, they are ready for production.

That is a huge “just” and painfully laughable when many of those architects were young men. The industry was practically incapable of looking at software that looks like it should work and declaring victory. Not just to the level of trope, but to the level of trauma. It was fucking brutal.

But we haven’t solved this problem, we’ve just gotten really good at avoiding that situation (eg, CI/CD). That fence is there for a reason, don’t remove it.

“Solutioning” is just corporate buzz phrase for the XY problem. I threw away a day’s worth of code yesterday because I realized at the last moment that I was solving the wrong problem, literally as I was writing the summary for the PR. We have to do A because of B, and we can’t change B because of… umm, why can’t we change B? Because I didn’t understand all the consequences of B the last time I faced a related problem. But now I do, and it’s fairly arbitrary if I fix the error handling in two methods and a couple of tests, OK.

Every line of code you write has to be maintained forever. Most of the ones you delete do not. A few have to be added back in later. Big whup.

Post reply on HN