Earlier quoted context omitted.
That blog post is a poor example. It replaced a simple straightforward if-else loop with a hard to understand abstraction spaghetti. A few unit tests and you'd be well on your way to shipping rather than messing around with beautiful patterns.
Obviously, because it was a fictional, simplified example for the post. My real use case was more complicated and involved multiple developers working on different parts of that flow. The problem with if-else chains is it's easy for a programmer to forget to handle a case that another developer added in the called component. Unit tests can't help a spec miscommunication. But, visitor pattern can as it forces the hand…
Confessions of a Software Developer: No More Self-Censorship
301–310 of 372 posts
Re: Confessions of a Software Developer: No More Self-Censorship
#302Earlier quoted context omitted.
100% means testing things getters and setters in Java. At some point you're testing nothing. If you tell people that 95% is just as inadequate as 0%, they'll tend towards 0%.
There are two possibilities 1. The getters and setters are not called anywhere in application logic. In that case, delete the getters / setters and get to 100%. 2. The getters and setters are called somewhere in the application logic. In that case, they should have already been covered in the test for the application. There is really no excuse to not write tests to get to 100%.
It's common that getters and setters will be called by serialization library. The fact that they are "grey" in IntelliJ doesn't matter.
Re: Confessions of a Software Developer: No More Self-Censorship
#303Earlier quoted context omitted.
Did you read the article? :)
Uh.... Caught me red handed. Ok, gonna go read it. (Hmm. The author says "Follow Scrum, Lean / Kanban, or eXtreme Programming to the letter, and let your team focus on the product." I disagree - quite vehmently. I guess that's obvious, given that I'm calling out the various capital-A agile methodoliges, and the parasitical industry around them, as harmful/bloated/mostly pointless. But how did you figure out I hadn't…
The industry around it makes total sense - often bloated and misusing terms, but the process itself can work well as a starting point. I get the impression many engineers never attempt it because of bad experiences named Agile sometimes. Understandable of course.
Re: Confessions of a Software Developer: No More Self-Censorship
#304I would say something like 95% of the code I have been paid to write as a software engineer has 0% test coverage. Like, literally, not a single test on the entire project. Across many different companies and several countries, frontend and backend. I wonder if I'm an anomaly, or if it's actually more common that one might assume?
Re: Confessions of a Software Developer: No More Self-Censorship
#305Earlier quoted context omitted.
The problem in my opinion is that folks afraid of posting treat chat channels like email and official record instead of a conversation. I like to post ideas, brainstorm, engage if I have a minute to respond to someone with a thought - kinda like being in an office - whereas many others seem to use it to blast out information after a lot of polish and they form a culture of announcements and no engagement, and get str…
> The problem in my opinion is that folks afraid of posting treat chat channels like email and official record instead of a conversation. They would be right: HR will get access to everything you ever posted in a company chat if they have a reason to check. Some people don’t care, some… do.
My comment was related more to the _overhead_ required before posting. Either way best not post anything that would be an HR issue in any format. (Also your private chats will be available in discovery as well if found out)
Maybe I’m not the best to opine on this as I’ve been wildly successful at building community at companies but I’ve also been burned by this. I suppose I’m privileged enough that I’d like to work somewhere that I can still collaborate with low friction remotely - and if the company doesn’t like it then I’m not a good fit.
Re: Confessions of a Software Developer: No More Self-Censorship
#306Earlier quoted context omitted.
> Somehow we were better at using remote tools while literally in the same office than some teams are at using them now while fully remote. I couldn't agree more. I pushed to get the place I worked for to use Slack when it first launched, moving us off AIM (ha!). Our use of Slack when we shared an office in the twenty-teens was so much better than the use I've seen of Slack/competitors on fully-remote teams. I wonder…
I can't speak for everyone, but I'd say that I've noticed that younger devs simply do not chat. My team rooms are pretty dead. I'll send stuff there but by and large the team simply doesn't use chat functions.
IME building up communication skills (including when and what to communicate) comes with experience.
Re: Confessions of a Software Developer: No More Self-Censorship
#307The ability to ask "stupid" questions without feeling embarrassed is a superpower IMO. I had the sweetest manager once. Someone stared talking about iphone and she [1] casually asked "what is iphone?" (this is after 6-7 months after iPhone was launched). Everyone's jaw dropped ... what? In which world u live in? ... to which she said with a wide smile and not an ounce of embarrassment .. "what? I don't know what ipho…
Technology isn't intuitive and there ares loads of things to remember. Sometimes the dumb question is needed by more than the person that asked.
Re: Confessions of a Software Developer: No More Self-Censorship
#308Earlier quoted context omitted.
Sure, but this ends up poisoning any sort of culture and creating all sorts of in-group nonsense which is almost impossible to undo. It’d be like using Blind as your company chat - nobody goes on there to say how great their experience has been, and the tone infects everything else. But maybe I’m just not very fun at parties… This should be avoided at all costs by creating a culture that is receptive to people’s conc…
Maybe I'm a bit unfair to you but to me your comment basically reads as wishing employees would be good little cogs in your machinery rather than people. Like making friends is natural human behavior. Forming friend groups is natural human behavior. It's not nice to disrupt this except that of course everyone has to be able to work together when needed.
Moving all of your work related chats off-platform so you can “say whatever you want” about work and eventually making it into a defacto team chat is what I’m talking about here. This isn’t chatting with friends, this is creating team divisions and huge gaps in context for the rest of your team. This approach is being a poor colleague in my opinion.
You can do both things - they’re not mutually exclusive.
Re: Confessions of a Software Developer: No More Self-Censorship
#309I would say something like 95% of the code I have been paid to write as a software engineer has 0% test coverage. Like, literally, not a single test on the entire project. Across many different companies and several countries, frontend and backend. I wonder if I'm an anomaly, or if it's actually more common that one might assume?
Re: Confessions of a Software Developer: No More Self-Censorship
#310> Remote work eliminates a lot of problems with office work: commutes, inefficient use of real estate, and land value distortion. But software development is better when you breathe the same air as the folks you work with. Even with a camera-on policy, video calls are a low-bandwidth medium. You lose ambient awareness of coworkers’ problems, and asking for help is a bigger burden. Pair programming is less fruitful. A…
Humanity has plenty of problems coordinating over IRC and mailing lists. That we have succeeded some of the time does not imply we would succeed all the time or that there aren't significant downsides. These discussions often bring up Linux as an example and sure, the remote development of the Linux kernel is indeed a testament to what you can accomplish with remote teams and strong coordination. On the other hand, we could note that despite how successful that remote coordination has been, the (arguably) most successful Linux OS business (Red Hat) decided they needed offices and in person work long before they were owned by IBM. Likewise the SuSE Linux folks have offices around the world. There must be some benefit they're getting from that to have decided to take what was a fully remotely coordinated project and centralize some of it.
> even IF in office was better for the employer (even though all data says it’s not in terms of productivity) it is unequivocally better for the employees life to work remote as much as humanly possible.
That might be true for some people, but it is not true for all. If you'd asked me before COVID if I wanted a 100% remote job, I would have told you yes. I'd even applied for a number of (the far more limited at the time) remote jobs like Gitlab. And then COVID hit and I spent 2-3 years working from the single spare 10x10 space in my home. In that time I lost precious living and hobby space to having a dedicated working location (approximately 20% of my home). I increased my personal utility costs without compensation. My mental state deteriorated due to a lack of mental and physical separation from work and home. I found it far more difficult to accomplish my work due to a number of at home distractions. I struggled heavily to keep up with things happening across my team as it was difficult to both keep up with the async chat discussions without also burning massive amounts of time and energy context switching. I found that I personally need some form of a "commute" in order to switch my mental state from home to work and back again. I had to allow corporate devices filled with corporate spyware on my personal network. I had to isolate parts of my house from my spouse at various times. I had to allow strangers and colleagues a video view into my personal and private home. Working 100% remote was unequivocally worse for me as an employee.
By contrast, now that I'm back in the office most days, I have an employer provided dedicated working space. I have free coffee, tea and fruit. I have a space where I can be focused on working on something and still keep an ear on other things happening within my team, allowing me to context switch when my attention is needed without needing to switch just to find out if my attention is needed. I have a free gym on site that allows me to exercise with equipment that I don't have at home and wouldn't have the space for even if I could afford it. I don't have to allow corporate devices on my home network anymore. I have a cafeteria which serves reasonable and healthy food at reasonable prices when I don't feel like making my own lunches. I have access to high quality and private video conferencing systems when I need to coordinate with other remote individuals and I no longer have to allow strangers visibility into my home in order to conduct interviews. I get to eat meals with co-workers and colleagues and have social engagement during my breaks. I can get away from home distractions and more easily focus on the work I have at hand. I have a reasonable commute that's just long enough to allow me a mental switch without being oppressively long, and takes me past a number of locations that I would have needed to go to any way each week.
Which isn't to say it was 100% bad. To this day I have a hybrid situation which affords me benefits that I would not have with a 100% in office position, and for which I am eternally grateful and fortunate. I also recognize that I work for a very good company that provides a number of perks that aren't available to everyone who works in an office. But that's the point. In office work doesn't mean just one thing, and neither does remote work. Both are highly subjective experiences and to say that remote work is "unequivocally" better for everyone is just wrong.