@emil0r change team / work 😉
> And so it ends up being the proverbial pudding that needs to be eaten. Every. Single. Time. welcome to the experience of being a minority 😞
There's not a lot that can be done, but there was one interesting article I recently read, I think called "weird points", or "weird quota"
so basically you have a quota for how many non-average things you are, do, or introduce, that people will tolerate before you get too weird for them
Translated to programming, I guess it'd help if you could write very predictable, repetitive projects ... in Clojure.
link to the talk please. 🙂
@ballpark https://www.infoq.com/presentations/Real-World-Clojure/ -- slides in PDF https://github.com/strangeloop/clojurewest2012-slides/blob/master/Corfield-Boring.pdf
That was very early on in our Clojure journey. We have about 86k lines of Clojure these days.
There was a longer follow-up talk I gave at various user groups around the world, PDF of slides listed here https://corfield.org/presentations/ "Clojure and CFML Sitting in a Tree"
I ought to update the intro para there 🙂 Done!
Cool. Thanks Sean, I'll take a look. Sounds interesting. I have tried to introduce Clojure without success.
I vaguely remember reading an article about basically doing this (using Clojure to speed up development of somewhat repetitive contract web projects). (I don't want to misrepresent but I think this was about yogthos / creator of Luminus?)
And/or gain respectability in your particular area ("I worked at a well-known tech/relevant-industry company!", "I have a cert from XYZ authority!", I don't know, whatever seems appropriate), and then introduce Clojure for projects.
But if there's persistent resistance, and people keep moving the goalposts for you (once you resolve one problem, they bring up another one), then I'd wager there's actually a hidden reason that you're not seeing and they don't want to volunteer. It's a negotiation/political situation, and Clojure itself is probably not the main objection.
I dont think this is a language specific problem, but is the same for tooling of whatever sorts, methodics and stuff. Usually there was a process that resulted in a specific result, like for instance people picking java as programming language because verybody is already familiar with java and the jvm and the task that needs to be done fits into the jvm world.
I remember one thread of reddit back in the days that kept me thinking. I dont remember the details specifically but it was basically a new hire joining a team working on a existing product. After maybe a month of watching and learning he started to point at existing problems he saw and also was more active in code reviews, critizicing the code and patterns they were using. Although he did this in a constructive and good meant way, with the intention of making things better he was met with massive resistance by the team and laid of after not being able to take the social cues that bascially said: Stop doing this, it breaks our workflow and teamflow.
I think this is an important lesson that basically says that there are more important things than a programming language, build tool, documentation tool, pattern of the day or whatever. Especially in a team, because its the team that delivers and not the programming language.
Understandably its a hard pillow to swallow to take a step back, but if your team is unwilling to change you need to find a way for them to be willing to change. And a quota surely isnt the way to go.
well... it's not just about delivering
I've been thinking about this recently, and, you know how geese fly? In these V shapes?
The lead goose actually lessens air resistance for all the geese behind it, which fly in a kind of air corridor created by the lead goose
(they want to implement this kind of thing for self-driving trucks to lessen fuel consumption!)
anyway
teams are like this
you are a part of a small team, which is a part of a larger team, which is a part of a department, which is a part of a company
each of these has its own goals, and, in a strongly hierarchical company, its own "lead" goose
and you need to align with each layer, not just the top one (company)
Otherwise you (unknowingly) make yourself a competing lead at whatever level.
☝️:skin-tone-2: This. There are so many factors at play in most companies. Introducing any changes has to be done carefully and in a way that aligns with the companies' various factors, be they policy, people, or whatever.
So maybe this developer was doing what was best for the company (keeping up the standards) but not for the team (who were, maybe, at the time, dealing with a lot of other stuff and not as efficient as could have been otherwise ... and did not appreciate anyone pointing this out.)
@seancorfield how large is your place? did you have a lot of different people to convince, or was there one coherent group that needed to switch?
Small company, small team. At the time, I effectively ran engineering.
But I've taken different approaches in previous companies to introduce new tech.
At Macromedia I ran the architecture team for the whole company, so my "suggestions" had a lot of sway.
Actually I like the geese analogy. It would make sense for a joining goose to attach at the end. Especially regarding the fact that the geese will switch places with the lead goose to not exhaust the leader. So when you join you take a step back and when work your way to a place where people will listen and you may someday be able to change direction when leading the pack or part of the pack.
After Adobe bought Macromedia, it was almost impossible for me to effect any changes. I tried for a while, working different ways, but after a year of frustration I quit (and went back to freelancing for a while).
I think this is the only way to stay sane if you cannot / wont work the way your company expects you to.
yeah, it impacts your health a lot. i think there's been research showing that positions of greater autonomy have less stress-related health problems such as heart attacks
Being able to just quit a bad job, before you've lined up a new one, is differently a position of privilege. Without that, you get the double stress trying to find a new job while you're also suffering your current one.
Here in germany you will get 66% of your last wage unemployment benefit after being employed for one year. If thats not enough to pay rent and have your family survive you will get welfare and your rent paid (as long as the cost is reasonable). It's really useful because it takes some of the pressure away.
If if you leave voluntary? In the Netherlands it's 70%, but only if you get fired/not prolonged.
Ah, voluntary, I forgot about that. In this case you will get a 3 month suspension before receiving the benefit. But IIRC welfare is not affected by that.
If you are in a difficult situation in germany its not that uncommon to find a doctor that gives you attests for being ill for a longer time. If its a really stressful situation you might get attests for psychological problems. That gives you 6 weeks full pay from your employer. And if you didnt manage to find a job in that time you can stay home with an attest from a doctor up to 76 weeks I believe and receive again 66% of your last payment.
It's almost hard to become homeless in germany, and mostly it hits people that have psychological problems or that are unwilling to go through the bureaucratic jungle.
Yeah, Americans don't seem to realize that a good safety net helps everyone at every level 😞