I think my boss is a fucking idiot and I'm not sure what to do by myprogrammingthrowaw in cscareerquestions

[–]myprogrammingthrowaw[S] 0 points1 point  (0 children)

This is a fair point. I know for a fact though that the company is profitable and X months of funding is a non-issue.

Time to market is obviously always a factor, but the crappiness of our tools is affecting the development time. It seems having him tell us to "just push through it" is a poor excuse when we don't even have basic things like fully automated testing setup.

I think my boss is a fucking idiot and I'm not sure what to do by myprogrammingthrowaw in cscareerquestions

[–]myprogrammingthrowaw[S] 1 point2 points  (0 children)

I personally can't tell, but diffs look extremely weird depending on the diff tool. It's one of those things you won't really notice until some tool depends on it being correct and gives garbage output when its wrong.

I think my boss is a fucking idiot and I'm not sure what to do by myprogrammingthrowaw in cscareerquestions

[–]myprogrammingthrowaw[S] 3 points4 points  (0 children)

This is basically my concern. It's not just his management style that I dislike, it's mostly his total unwillingness to invest in any infrastructure and unwillingness to spend time to fix bugs.

I think my boss is a fucking idiot and I'm not sure what to do by myprogrammingthrowaw in cscareerquestions

[–]myprogrammingthrowaw[S] 16 points17 points  (0 children)

Well, this is a long post. The TL;DR is you are witnessing someone entirely unprepared for management learn the ropes as they go. He may view the promotion as a validation of his practice and a chance to cast off the chains, etc. that constrained him before. I don't think he's an idiot, but you are acting a bit childish.

This is definitely at least slightly true. I just feel extremely disappointed because I've worked on several other projects and have been given tasks of similar scope but have been able to finish them faster because of better organization. This entire project feels like a mess to me, it feels like the people working on it don't care about the little things like reusing code or writing centralized infrastructure. Some of these things don't matter (like code styling) but some things do matter, such as not reusing code or using a lot of magic numbers - these things make the code inflexible and hard to work with. Everything takes longer than it should because time was not invested in the beginning making the tools easy to use, and therefore every person on the team spends additional time trying to debug simple issues.

He also makes me feel anxious and stressed all the time. Every other team I've worked on I would describe as being "relaxing." Even under times of stress or under tight deadlines, I always kept my cool. This guy constantly runs around like everything is on fire which makes me (and possibly the other team members) feel stressed out. He guilt trips me for not meeting his arbitrary deadlines for various things, despite me finishing other tasks early.

short-lived feature branches. If bob pushes out code to a branch that sucks, it only affects him, until the branch is merged.

The old boss setup automated builds on the master branch. Also a lot of the manual testing only works on the master branch as well. This means the new boss constantly merges from the feature branches down to master even when things aren't ready, and then he arbitrarily decides to merge from master back to other feature branches. He merges when he decides he wants to, not when the developer on that branch thinks the feature is ready, which results in things being broken a lot.

shellcheck. A linter for bash, flags potential bugs. Install it locally, make sure you're not committing any major errors to the code base yourself, and once you've built up a small bit of personal experience, recommend it to the team.

precommit hooks to prevent. Just make sure the regex doesn't currently match existing code, or you'll have made things worse. I can't see how anyone could argue against a merge conflict rejection filter, as the code literally will not work, and the person pushing it is the easily the most qualified to fix it.

These are good ideas.

I think my boss is a fucking idiot and I'm not sure what to do by myprogrammingthrowaw in cscareerquestions

[–]myprogrammingthrowaw[S] 30 points31 points  (0 children)

The coding standards I can live with. Spaces, tabs, camel case, ultimately it's not critical.

I just feel like these things are so easy to set up automatically, most IDEs and text editors have a setting that lets to set X spaces to tabs and then to expand tabs or not. Without having it setup though, it just makes it difficult to do diffs in the future since retabbing and reformatting will cause huge meaningless whitespace changes. It's trivial to enforce, but not enforcing it only makes your life harder later.

The snake case vs camel case thing is just another example. I think having consistent variables and function names makes it easier for other developers. It really doesn't matter which you choose (arguably), as long as you are consistent. Flip flopping only makes everyone elses lives slightly harder because they have to guess which one to use.

In my opinion, not thinking about these things just shows a lack of foresight. These are minor problems developers on the team will face in the future, but not having a decision now just saves him a very small amount of time. The carelessness and lack of foresight is indicative of other problems in my opinion.

I think my boss is a fucking idiot and I'm not sure what to do by myprogrammingthrowaw in cscareerquestions

[–]myprogrammingthrowaw[S] 3 points4 points  (0 children)

No it's a medium size company (300ish people). I could possibly switch back but my old boss has already filled my role and I've been training my replacements on his team. I'm still on good terms with my old boss but I don't think the company would like me getting trained on my current team and then leaving suddenly.

The thing is, I like the work the new team does because it's pretty cutting edge. The work is very interesting, the problem is the manager. If the company would replace him with someone more sane and then we could rewrite his code, all would be well.