TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: My boss says I over complicate things. What should I do?

9 pointsby TbobbyZover 4 years ago
I have about 5 years of professional programming experience and almost 3 has been with my boss. It&#x27;s now nice side gig that I can work whenever. This side gig I&#x27;m the only developer. No CI or QA team. Low budget operation. I pretty much do everything development wise. There have been some bad deployments on my part, so I&#x27;m super cautious. He said<p>- I over complicate solutions - I communicate too much - my timeframe estimates for project completion are too long<p>I agree I am all of these, but I think it&#x27;s because I&#x27;m so cautious.<p>What can I do?

12 comments

brudgersover 4 years ago
Some perspective. Working alone means no second set of eyes to catch errors. No one to waste time BS’ing while ideas have time to percolate.<p>Working alone means that dumb mistakes happen, they are yours completely. Fixing them is also yours completely.<p>Working alone means there is no slack in the system. It’s as lean as it’s possible to be lean.<p>No matter how much time you spend on QA, it’s not independent QA. It’s done with your assumptions, biases, and blind spots. The same that are baked into the code.<p>Being professional is being cautious. Because you know all these things. You know them because you live them. You live them because there’s an inadequate budget for QA. There’s no being professional on the cheap. Good work takes time and money. Professional work takes professional budgets. Good luck.
thorinover 4 years ago
Get another job, you need other people to bounce stuff off especially in the early years. How does your boss know this stuff if he&#x27;s none technical, you&#x27;re going to get seriously stressed out being the only person he has to offload stuff on.
stocktechover 4 years ago
First, I&#x27;d look at what devops you can implement. I&#x27;d imagine testing and automated deployments are a bare minimum. Testing may slow you down, but if most of your work is maintenance, you&#x27;ll see longer term gains. Automated deployments will prevent any manual errors from occurring and instead of taking hours to deploy, it&#x27;ll take minutes. Both together will give you some confidence in what you&#x27;re pushing out.<p>Second, I&#x27;d talk with your boss more about &quot;communicating too much&quot;. Especially if you&#x27;re already having problems, you&#x27;ll want to keep an open line of communication with your boss to let him know where you&#x27;re succeeding and struggling. I&#x27;d try to figure out what kind of communication they&#x27;re looking for and develop a plan around that.<p>Third, over complicating solutions is a tough problem to overcome, especially alone. Is your boss technical? Was he a developer? Who&#x27;s your mentor in all of this? Can you give an example on how you&#x27;ve over complicated something? Without knowing anything, I&#x27;d encourage you to spend more time designing and less coding. Design the solution first and take time to look for ways to simplify it.<p>Fourth, timeframes are always hard. I agree with agile and would encourage you to read up on it. Even splitting a project into milestones could help.
评论 #25078279 未加载
vanusaover 4 years ago
What he said, combined with what you said:<p><i>Low budget operation</i><p>and the fact that you&#x27;ve been there 3 years indicates that you should probably just find another job. These disconnects happen all the time (and I&#x27;ve been subject similar criticisms many times myself) and ultimately there&#x27;s just not much you can do about it. People are people, they have different perspectives (and experience gaps) that&#x27;s they just the way they are.<p>Meanwhile - since you&#x27;re pretty much forced to &quot;milk&quot; them for a paycheck until you can find a job under non-sweatshop conditions - consider:<p>(1) doing a few keyword searches on &quot;strategies for surviving dead-end &#x2F; underfunded projects&quot; (like ways to deliver &quot;just enough&quot; value to meet a deadline - now that you no longer need to <i>care</i> about the long-term, now do you?) and<p>(2) engaging a friend (if you have one) or if not, seriously considering hiring a therapist for 5-10 hours to bounce your frustrations off. Really, there&#x27;s no need to run your health into the ground (and job-related stress can be <i>very</i> toxic) just because you have a weak manager or their business isn&#x27;t doing very well.<p>Finally, you might want to look into this classic:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Death_march_(project_management)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Death_march_(project_managemen...</a>
austincheneyover 4 years ago
Plan. Write things down. Be precise but use as few words as possible. It should be clear from reading your few tiny bullet points you know exactly what you are about to accomplish in an aggressive manner.<p>Secondly, know your liabilities. Specify these in your plan as a separate set of bullet points.<p>Finally give the plan to your boss. When you have completed your task according to the plan the boss will have less room to complain.<p>Ask your boss where they identify complexity. Refactor early to eliminate effort later.
foopodover 4 years ago
Trying to offer a different opinion from the other commenters.<p>It sounds like your boss wants more outages. That is what less communication and projects delivered faster gets you.<p>I think it is probably a case of imposter syndrome and your boss having unreasonable expectations (you are probably perfectly capable and he is pushing&#x2F;pressuring you to do as much as possible).<p>The fact that you have no CICD or QA makes me believe that you are trying to work around this by &#x27;over complicating solutions&#x27; to reduce risk (which is a good move btw if your boss is the kind to place the blame on you for rushed deployments).<p>I could be reading this totally wrong, and you will know immediately if I am. Flexible working is great, but just as bad for your mental health if your boss is a dick. Maybe it is time to look for a new gig.
runawaybottleover 4 years ago
Create a delivery budget. For any feature, ask ‘what are 4 critical things this thing must do to be deployable’. Then ask for 3 ‘nice to have but not critical’ things they need.<p>Always, always, deliver the mvp - critical things. Then negotiate your timelines for nice to haves. Keep your communication lines limited unless to clarify something critical, or make clear that part of the feature is not feasible.<p>Follow this process and you’ll start to align quickly with what they want, while building credit towards negotiating auxiliary timelines (nice-to-have’s).<p>It’s a process, don’t be too weirded out by the feedback. Systematically solve it.
tantalorover 4 years ago
Instead of avoiding mistakes, spend that effort on work that can be easily reverted when mistakes happen. This will let you move faster with confidence your services will survive when they (inevitably) fail. Generally a short outage is preferable to slow development velocity.<p>Examples:<p>- Bad deploy: rollback to previous version<p>- Launching features: guard new behavior with a flag you can control and quickly disable
fiftyacornover 4 years ago
Can you take a view of what is the least or easiest way to deliver functionality? Then compare to your intended solution to see why your design is good or whether you need to adopt ideas from the simpler solution?
bot41over 4 years ago
Can you imagine telling a doctor how to do their job? Or a carpenter? You wouldn&#x27;t have a clue. Your boss doesn&#x27;t have a clue :)
pettycashstash2over 4 years ago
Learn agile. Deliver small sprints with exact requirements.
评论 #25078080 未加载
Jugurthaover 4 years ago
Tradeoffs are an intrinsic part of engineering. One part of your job is to propose solutions and tradeoffs. For example, &quot;if we want to ship this fast, we can do it in a day, but here&#x27;s what could go wrong, and how much negative impact this could have on how many users&#x2F;bottom line, on the other hand, this is the upside&quot;. &quot;If we want reliable, we&#x27;ll have to solve X issue before shipping it but it&#x27;ll take about Y days because we still haven&#x27;t resolved incompatibility with third party tool Z&quot;<p>Do you frame your decision making and the set of options in terms your manager understands and can base their decisions on?<p>Why this matters? It avoids you spending days or weeks working to solve an issue because you think it&#x27;ll save $X, when in fact $X may not be what matters most to your manager, but the ability to ship before a competitor, for example, especially given the fact that if the price to pay if that feature falls flat is not that high.<p>One problem members might have is not knowing what matters and why it matters, and that effort must be done by management to make it clear through what lens team members should look at problems so that <i>they themselves</i> will be able to make decisions.<p>If this effort is not done systematically by management, members can help management with eliciting questions explaining why they&#x27;re asking these questions so it doesn&#x27;t come off as an interrogation. You&#x27;re asking questions to know what matters most so you could optimize for that and work to solve the right problem.<p>One other problem is that some team members cannot discern situations where they can make a call, and situations that warrant getting the green light to do something. This leads either to members requiring the attention of the manager for everything, even things that the manager doesn&#x27;t care about, <i>or</i> members making a decision and going through an action where the cost of a mistake is too high but they didn&#x27;t <i>know what the cost of that mistake would be</i>.<p>True positives, false positives, true negatives, false negatives.<p>This why members who <i>can</i> tell which situation is which are not common and appreciated by management, because they relieve the pressure and reduce the number of interventions management has to make. This builds trust in that member&#x27;s judgement, and they gain more latitude to do what they want because the manager knows that &quot;Alice only calls me when it really matters and when the situation is tricky and she needs confirmation.&quot;<p>One great habit to have is to enable management and executives to do what they do best: make corrections, green light things, shut down things.<p>I used to go to my former CTO with prototypes of different approaches in different branches. He&#x27;d look at them and pick one or ask if I could do corrections to one of them and ship it. &quot;Do you care about this aspect or is that good enough?&quot; &quot;Nope, we&#x27;ll merge as is&quot; or &quot;All is okay except this and this must change because X, Y, Z.&quot;. Things move really fast that way.<p>I also showed the CEO different versions, and he&#x27;d ask &quot;Nice. I prefer that one because I&#x27;ll present it to [type of client] and it&#x27;s more relevant&quot;.<p>In other words, instead of asking what the next step is, proposing alternative approaches: We can do A, B, C, D and here are pros and cons for each and how they relate to the objectives with tradeoffs and optimizations.<p>The manager then has a &quot;menu&quot; they can pick and choose from, and will either say &quot;We&#x27;ll go with A&quot; or &quot;Just change this aspect in B and go for it&quot;. This saves enormous time and makes their job easier, and makes your job easier too.<p>There&#x27;s effort to be made by the two parties. Management must train members to know what matters and expose how they view things. &quot;Our priority is this, if you need to spin up VMs to test something, you can do it as long as you don&#x27;t blow up the budget. Say you have a budget of $300. What we want is X and we know we got it if W, Y, Z&quot;.<p>The team members ought to do the effort to frame their decision making process, their options&#x2F;solutions, their problems, in terms stakeholders can understand, reason about, and make a decision about. When you do this, you&#x27;ll get extremely useful input from other stakeholders and you can enable people who make decisions to make informed decisions because they have clear information they can digest.<p>The excuse that manager&#x2F;CEO&#x2F;advisor&#x2F;investor is not technical is a bit easy to have. How do you frame problems to get the best out of that manager&#x2F;CEO&#x2F;advisor&#x2F;investor&#x27;s minds or executive authority? How do you give solid arguments to your manager to advocate on your behalf, say to increase budget or to hire talent by framing things in terms they understand and can work with, but also in terms that <i>their boss</i> can understand and work with.<p>You: This [engineering&#x2F;technical problem] is [framed in terms boss can understand]. One way to do that is CEO doing [thing in terms boss understands] with arguments [boss can understand, and then again in terms of CEO can understand].<p>There are things that matter and you know why they matter, and one part of your job is to make other people understand <i>why</i> they matter. The ability to connect the dots and take someone by the hand from the [business] objective all the way down to how inability to do multiprocessing is hindering that objective, and how what you&#x27;re doing is solving the problem is valuable.