6 ms·
Problem: Best practices change every 5-year, new patterns get deprecated by the hot-new opinionated framework at the moment. As a senior programmer is difficul
by SadWebDeveloper 9y ago
Problem: Best practices change every 5-year, new patterns get deprecated by the hot-new opinionated framework at the moment.
As a senior programmer is difficult to explain to jr's and sophomores to not look all problems with the "disrupt everything" mentality and have continuous battles about that we don't need TDD, that we don't need CI, that we don't built everything as a webpage and definitely don't need slack integration for everything.
jr's and sophomores tend to go trendy on software development, don't like to work on the boring stuff, the stuff that makes money (audit and management, government compliance and payroll software) prefer to go on FB and built the hot-new AI for choosing the right ad to show you.
- kristiandupont 9y agoAs a fellow "senior" programmer, I can barely imagine a non-side project that is small enough for me not to demand it running on CI.
- eropple 9y agoAgreed. My home server has a Concourse instance on it because setting it to run tests on projects takes, like...five minutes of editing a template. But, then, horror of horrors, it makes it incumbent upon me to write tests, and clearly that's just horrible. ;)
- Silhouette 9y agoAs another "senior", I think these things almost always depend on context. Some of the shiny new tools and techniques really do move the field in a significant way. Most of them don't. The ones that do might advance one area but might not be particularly relevant or helpful in other areas. For example, personally I find it easy to imagine projects that don't have much need for CI tools, particularly not the formal ones that have "CI" in their name. Maybe a project is small enough that the only developer(s) involved are constantly making builds for test purposes and rebasing is standard practice when pushing to shared branches. Maybe a very large project has a complicated and carefully controlled branch/merge plan for their repository, and merges at key points are systematically checked following a whole review process. Either way, the extra effort to run a dedicated CI tool might not provide much benefit. Of course, in other cases, you'll be in a sweet spot for this kind of tool. Having something to automatically warn you if a key branch stops building could save a significant amount of time and trouble. The point is that it depends on your situation. Automating something means finding, learning and deploying software and infrastructure to do that job for your particular project. That's time and resources you aren't spending on something else, and these things are always trade-offs.
- eropple 9y agoCalling TDD and CI "trendy" is...well...I'm gonna be real: those are junior attitudes anywhere I've ever been. But then, I also don't know any senior developers who would write "fuck all JavaScript/NodeJS developers"[0]. Or randomly rant about how somebody who notes that features that break stuff aren't good features[1] (which I noticed because I was fascinated by your post and wanted to learn more about what you think--and boy, did I!). Dude: maybe it's not your juniors who are a problem here? [0] - https://news.ycombinator.com/user?id=SadWebDeveloper https://news.ycombinator.com/user?id=SadWebDeveloper [1] - https://news.ycombinator.com/item?id=15859062 https://news.ycombinator.com/item?id=15859062
- SadWebDeveloper 9y agoFirst, thanks for taking time in checking my profile and comment history, m quite honored that you have devoted that much time before replying my comment but usually when somebody does this is because they are trying to appeal to authority or a plain ad hominem. Second, i didn't said TDD/CI is trendy, i said "you don't need them", probably should have add "at all times" to clarify. Each year it's becoming a increasingly difficult to keep jr's from wasting time implementing TDD+CI+Slack+Hot-New-Thing on all the projects, wasting resources and time from devops for the projects that do need them. Not all the projects that you built on your lifetime need the same amount of bureaucracy as those that clearly are business-critical.
- eropple 9y agoLet's think a little about this post and your prior one. Juniors don't like to work on "boring stuff" like testing and ensuring that your builds correctly complete, hmm? While you're complaining that they "don't need" stuff like TDD or CI. TDD is "wasting time", even though it's how you can actually specify software and then just knock out the issues to turn those tests green, increasing velocity once you're comfortable with the rhythm. CI is "wasting time", even though it's how you avoid rolling broken stuff out to production (and thus have to, yanno, do it again). What I'm saying is that your post was incoherent (and this reply is worse), which is why I read deeper into your comment history. There's a lot more incoherence there, too. Frankly? It reads like a junior who's found what they think is a local maximum and is insufficiently humble to realize it's not a global maximum either. And I have a little bit of extra oomph on that one, I think, because--lest we forget--your public-facing profile says fuck all JavaScript/NodeJS developers. Most people would pay a lot of money to juniors who wanted to do that stuff. Maybe those dang kids have a point.
- en-us 9y agoYou think you don't need to test your code or ensure that it compiles consistently? And you try to teach this to jr devs? You must be a joy to work with...