It's pretty common to have quick unit tests so you can cycle thru TDD without having to recompile the world and start-up/reload the application. You can get a few hours of work done with TDD without ever opening the actual application.
In legacy enterprise, you're rarely doing green field work. You usually spend time reading coding and planning a safe edit. When you do change a line and have to recompile the world, its common to actively read and plan your next change while waiting.
Changing on the Job: Developing Leaders for a Complex World by Jennifer Garvey Berger
This is my current mind-changing book. Its a great framework for explaining how different types of people handle complexity, and how/why people react the ways they do. I really like how the framework is framed around 'complexity' rather than maturity. I've gained a much more constructive approach to handling disagreements rather than a 'smarter/better than thou' approach.
There are increasing number of reports in Canada that Indigenous Women were forcefully sterilized in the last few decades. Women who gave birth in hospitals had their tubes tied after giving birth. I agree this is a one of "the worst forms of racisim/ethonicide/genocide". And yes, I dont understand why more (white) Canadians are not aware of this, and why there has not been a larger out cry over this.
https://www.cbc.ca/news/canada/saskatoon/report-indigenous-w...
[Edit] I am against forced sterilization by anyone on to any one. I want to highlight that sterilization has happened in recent years in Canada. As the message above me points out, there is very little outcry in North America. Here is a data point where sterilization has happened in Canada and there is very little public outcry or knowledge of the situation.
yea exactly thing is most people don't want that to happen today.. in Canada.. and the government also.. nor do we want it to happen in west Taiwan... i don't get these peoples arguments that because other people did evil crap west Taiwan should be allowed to do it as well? is that what your trying to say?
but you agree it should not happen or are you saying because it happens in Canada, we should be fine with it in happening in West Taiwan? whats your opinion on forced organ harvesting? and slave labour ? i mean slavery did happen in the past and now most places ban it but since it did happen its fine for West Taiwan to do it? or Libya?
i just don't get the argument that because X happened in X place, people from X place can't be against it in another country? when they are against it happening anywhere, including their country.
I don't agree with forced medical procedures at all. I think the world should be upset with Canada, with CPP, and all the other cultures who are doing it. I agree, regardless of your cultural background, you have every right to be upset with genocide/racisim/terrible thing in another country and in your home country.
I don't want to tamper anyone's disgust. I would like to add that it happens in my home country and it breaks my heart.
It depends - I don't think there is an true answer to this question.
I've worked both in early stage startups and in companies that are established and are still using their original startup code base. I've seen some terrible design decisions coupled with quality code that survived 15 years because the company had amazing market fit. It cost the developers a lot of extra time to work around the poor design decision, but the company was profitable enough to make up for the dev cost. That's the most common situation I've seen.
The best codebase I've ever worked with was beautiful because the company had long lead time on sales(avg deal took 12 months) so the developers had time to refactor as needed. This company is still alive, so I consider them a success!
The other factor in code quality + business success is team size. With a big team and poor quality code, it spirals down much faster, each new bug/feature gets harder and slower to implement. If its bad code but its always the same 2 developers, they will be consistent enough in their own styles that the code base will not degrade nearly as fast.
I completely agree. A thriving business with a poor quality codebase is the problem you want to have. Use the cash generated by business to pay developers to carefully refactor the offending parts of the codebase or architecture in a direction that reduces the specific business problems being caused by the poor code. Situation is not only sustainable but can be improved.
A business that is not thriving and running out of cash, with a high-quality codebase, is heading toward a terminal failure state. Situation is not sustainable with restricted options and time to recover.
> The other factor in code quality + business success is team size. With a big team and poor quality code, it spirals down much faster, each new bug/feature gets harder and slower to implement.
Slightly generalised, this a good rule of thumb for categorising different kinds of poor code and prioritising remediation efforts. Poor code that is stable that doesn't need to be modified and rarely needs to be read and understood by humans -- it's fine, no business impact, don't touch it. Poor code that causes production outages every week or that multiplies the time and cost of each new feature -- is causing an ongoing cost to business, can estimate business case of value in fixing it, worth prioritising for fix. Per your example, if the bad design is some architectural decision that impacts many developers or many teams each time any team makes a change: increased blast radius, proportionally larger drag on business.
I dont have an exact book or course to recommend, but rather how to approach school courses...
I'm Canadian, and went thru post secondary in Canada. This is coming from someone who did not program for fun in highschool, had no family support/introduction to IT, no extra curricular programming introduction, etc.
I went to a collage instead of university. My first year computer courses had lab sessions where our teacher helped with programming assignments. There was ~10 kids in class. Uni classes were a few hundred kids in a single class and lab sessions were ~30 kids. They had TAs (teaching assistants, graduate students with no industry experience) instead of their professors during programming lab sessions. I got the same course credit, much cheaper tuition, and a much more practical programming education. I transferred to a university to finish my degree and I was embarrassingly ahead of everyone else when it came to programming.
Whatever course you do take, look for passionate people with a teaching background and a small class size.
I liked how to worded "emotional separation"
The reduction in my stress has been amazing, especially considering we've been in the middle of covid. My moods are way better regulated now. I'm no longer trying to ignore my angry office mate who's muttering under his breath. I didn't realize how much upset people influence my own mood. I thought I was good at ignoring angry people, but the action of ignoring took up a lot more energy than I previously thought. My biggest worry about back-to-office is how I'm going to managed my increased stress levels.
Same, the whole elbow office politics is definitely much smoother. I had a few situations where a work colleague would try to convince me in joining his angry crusade when we had a call. But from home it's much easier to distance from that or just escape the call. No more people coming unannounced to me asking me for unreasonable work tasks. I will very likely switch if office presence becomes mandatory again.
I am the same way. I am very sensitive to the emotional states of the people around me. I think most people are. A stressful office environment was a pressure cooker where we stewed all day in each other's stress hormones. My stress was off the charts.
I'm going to guess most people here had short hair while in elementary school...you're all so lucky!
I've always had clean thick long blonde hair, which happens to be lice's favourite hair type. Every time there was a lice outbreak in school, I got it. Its very much a thing in Canada still.
I grew up in a rural area in a second-world country, during the 90ies when the economy went from shitty to complete shit, and many people had to subsist on grazing, so to speak: I helped to plant (and then gather) potatoes, tomatoes and other vegetables in our backyard. But even then, lices were mostly something out of WW2-era stories, or something you'd get if you hanged out with local "wandering folk", I guess; I don't remember any lice cases in my school although we did have our hair checked in the elementary.
Then things generally improved and life is now much better; so what about the lices? According to the 2019 statistics, there were 200 cases of headlice per 100'000 children that year. Quite a number, but not a huge one, really.
So that's why I asked--if in a poor second-world country lices were almost a non-issue, then surely that means the rich first-world countries have managed to completely get rid off the lice, and much earlier, too? Right?
There is also a whole host of mental illness that are triggered by physical immune responses. Eating disorders that stem from one bad diarrhea episode are a really common example of this. Both ends of this spectrum can result in bad mental health.
Both ends of this spectrum can also result in physicals health issues too. Get a stomach bug and end up with post-infections IBS. On the other hand, stress from fear of germs could also cause IBS. Sadly you end up with the same result. Both approaches, when taken to the extreme, can cause equal amounts of health issues.
Sanitizing your hands every five minutes is obviously a disorder, but I don't understand why on HN the downvote army is triggered by suggesting that you should have clean hands before eating food.
The question is, how clean is "clean"? Obviously in these pandemic times the answer is different, but clearly plenty of people were having no problems before.
In fact I would go as far as saying that breathing is a more common route of entry for pathogens than eating. The stomach contains concentrated hydrochloric acid.
You may want to consider a new employer. Although the average company does not care, the good companies and good managers should care about supporting you! The "let them figure it out on their own" approach is even more common for folks who dont fit in the company culture. I've seen some juniors have a hard time and others not, because a manager will "click" more with one than another based on their own bias (oh he still lives at his parents house, he's weird vs oh he goes fishing like me, i dont mind helping him).
Personally I feel terrible that I work in an industry that does nothing to support people. I've struggled through jobs with no support (and worked wayyy to many hours to make up for that). If you have free time, I would suggest job hunting as a "see what you can find" adventure. You might get lucky and find much better coworkers.
If you are interviewing for a new position, ask something about "how do you onboard new employees" , "do you have a mentoring program?" , "what does a developer do when they are stuck on a problem". If someone tells me I'm going to fix a bug on the first day of work, I always ask who is going to coach me through that! I watch how the interviewers interact with each other. Do they laugh with each other or is everyone in the interview silent and just listening to the boss? I also look for diversity on the team (some married, some not, some old, some young, etc) because where there is higher diversity there is more chance you'll click with someone who will be happy to support you. Explicitly state your job hunt is to find a more supportive culture that will coach you through your growth.
Good luck either way!
You describe almost exactly how my team approaches our development. We are ~80 developers on a single web application. The core team deals with the landing page (to put it simply) and the other teams (5 to 10 devs per subTeam) deal with their own section. When we first started this project there was a UI team that was made up of one developer from each subTeam. This ensured that as UI work was done it was consistent and each subTeam knew about the available UI controls to use. Something like a datepicker took a lot of back'n'forth between everyone, but we're a few years in now and our UI controls are pretty stable. We also had a lot of decisions around "this is what a data-entry form looks like" so the basic CRUD workflow on each team is pretty similar. We also aim to all use the same 3rd party libraries (ie one dateTime library, one webpack configuration for everyone, etc). It was a lot of decision making and a lot of time spent making a shared understanding, but worth it in the long run.
What really helped was the PM team was very consistent as well. They knew how important consistency was and didn't argue if one team had already designed a save button, then they were cool with using the same button on the other sub team. Make sure you have full agreement with your PMs!
Lastly, unit test everything! The core team was frequently blocking the sub teams because they would make breaking changes. Now that our process and teams are a bit more mature it happens less, but working on the culture around this will help. Ensure that people see it as "helping out another team" rather than a "us vs them" situation. Having a CI system that runs tests on code before its checked into master is worth every second spent creating and maintaining it. And also checkin code asap, you'll have less integration issues. We also had QA that tested across the subTeam work.
I'm not sure what the name of this is, but it worked for us :)
It's pretty common to have quick unit tests so you can cycle thru TDD without having to recompile the world and start-up/reload the application. You can get a few hours of work done with TDD without ever opening the actual application. In legacy enterprise, you're rarely doing green field work. You usually spend time reading coding and planning a safe edit. When you do change a line and have to recompile the world, its common to actively read and plan your next change while waiting.