Fork me on GitHub
#clojure-europe
<
2021-02-26
>
kardan04:02:48

Good morning

RAMart06:02:02

Hi everyone!

agigao07:02:50

Is there a way to share/bulk export personal 4clojure solutions from the web-page?

jkxyz09:02:57

Good morning!

agigao10:02:51

How do you tolerate w/code or not well implemented features by junior devs that management want to take it into production without a proper code review?

thomas10:02:38

difficult one.... sometimes shipping it and fixing it later might be the right thing to do... but most of the time it isn't. I guess the best advice that I can give you is that management can at least make informed decision. So let them know.

javahippie10:02:49

Is it “technical debt” bad, or “won’t work properly” bad?

agigao11:02:45

“Not sure if it works properly” bad 😆

agigao11:02:44

Yup, informed the management and merged/deployed.

agigao11:02:50

Thanks for pointers!

borkdude11:02:02

"Testing in production"

dharrigan11:02:13

We do that all the time

RAMart11:02:59

Now your Avatar makes sense. 😜

😆 6
dharrigan11:02:28

I've had that for years and years 🙂

dharrigan11:02:50

It's a perfect example of manic

dharrigan11:02:21

Our test environment is our production environment

dharrigan11:02:31

Simply due to the relentless push to deliver

RAMart11:02:36

@chokheli is this software running in a nuclear plant? And... where is it located? 😁

3
djm11:02:34

We have a relentless push to deliver, combined with a very slow release/QA process

djm11:02:41

Worst of both world?

javahippie11:02:11

I sometimes wonder if we as DEVs are too quick to judge sometimes. My current project is going on for 2,5 years now, and the mood in the DEV team is bad. Pressure is quite high, we deliver all the features, but not “properly”, there could be more tests, could be more docs, more quality overall. But … the users love the software, we are in time and budget, can react to quick changes… What exactly is so bad? Sure, I’m fixing performance bugs now for 4 weeks, but the software is usable and running

👍 3
dharrigan11:02:49

Indeed. The presure is coming from externals - the C-levels, the project managers, not from internal pressure.

dharrigan11:02:24

It's the relentless drive to deliver new things, new features, new new new new - when all the customer wants is just working software.

dharrigan11:02:44

However, gotta justify those business lunches somehow!

agigao11:02:32

@ramart not yet, most likely soon it’ll be deployed into broadcasting company in the US soil :D

dharrigan11:02:55

Something that I recall from years ago, which I'm sure most people here can relate to, is that we didn't get into programming to increase the bottom line.

dharrigan11:02:10

We got into programming because we love doing it.

mpenet11:02:28

"Featuritis"

mpenet11:02:56

> "term used to describe https://en.wikipedia.org/wiki/software which over-emphasizes new features to the detriment of other design goals, such as simplicity, compactness, stability, or https://en.wikipedia.org/wiki/software_bug reduction."

cider 3
mpenet11:02:18

that sums it up quite well

mpenet11:02:02

I guess that's where having skilled managers/higher ups matters

otfrom11:02:02

speaking as someone trapped on both sides, it depends a bit on what is stopping sales from happening

borkdude11:02:10

I think devs can also help suggesting alternatives to "more features" like offering "decomplected" features instead, which do not always require you to build more

otfrom11:02:18

the problem with building a product is that your knowledge is always partial, so making decisions is difficult

dharrigan11:02:26

I often find however that very often programmers know the business much much better than the customers (internally/externally) because we write the software that makes the business work!

dharrigan11:02:21

I read this the other day about a boss who has no HR or IT departments (he runs a uk start-up for energy).

dharrigan11:02:17

I was very doubtful that there is no IT department - it may be outsourced for sure, but I'm very doubtful that a company in a regulated industry, has no IT support.

javahippie11:02:23

That’s why many companies were successful with moving the developer teams closer to the customers

kardan11:02:02

Personally I don’t love PR reviews. To me it’s just a symptom of lack of quality gates and/or enough communication when the feature was build. But that is my opinionated 2 cents 🙂 (saying this as someone who use PR reviews because of the same reasons…)

javahippie11:02:57

I also don’t like PR Reviews, I also advocate for trunk-based development and against feature branches in all smaller teams

dharrigan11:02:34

I like developing on master/main* (pick your perference). Branches, unless carefully curated, have a strong tendancy to be long lived.

javahippie11:02:49

Had many discussions about this. If they get stuck, I hit them over the head with Martin Fowler 😄 https://martinfowler.com/articles/branching-patterns.html

javahippie11:02:30

Once had a three day consulting-gig to create a new branching strategy for a shop switching from “Code on Network Drive” to Git. They were bummed when the strategy was “You are only 5 people, push to main” (of course, for releasing etc. there was a lot more defined, it was not only that)

mpenet12:02:29

I love pr reviews!

mpenet12:02:47

so many things learned/shared during these, it's crazy valuable imho

dharrigan12:02:16

Unforutnately, at our place, we have a tendancy to bikeshed

dharrigan12:02:00

People often loose sight of the goal and too often focus on the minutiae

mpenet12:02:44

some stuff can be ignored, personally i just prefix useless stuff with nit: ...

mpenet12:02:53

some people can value these tips, some don't

mpenet12:02:00

it's all good

mpenet12:02:05

not blocking in any case

javahippie12:02:08

Dropping PR Reviews does not necessarily mean dropping code reviews altogether!

dharrigan12:02:17

It often becomes personal too

dharrigan12:02:31

Perhaps there's merit in a totally ML approach?

dharrigan12:02:37

dispassionate

dharrigan12:02:56

perhaps we need a ML version of clj-kondo 🙂

borkdude12:02:19

Just make one microservice per person, solution to everything

mpenet12:02:23

ML as in machine learning?

mpenet12:02:49

or the language

borkdude12:02:08

I think he means machine learning.

mpenet12:02:28

some stuff gets quite complicated, I wouldn't trust today ml with that, especially some obscure domain rules

mpenet12:02:36

(at least today)

mpenet12:02:56

it's moving the problem to the specification part, which has to be good anyway, but by nature never is 100% complete

mpenet12:02:09

things tend to change over time heh

mpenet12:02:30

CodeScene is doing interesting work around some of these problems, but I don't think they're into automating code reviews

borkdude12:02:26

At work we do PRs if the dev in question feels like they want a PR review. Else it's just commit to the dev branch

borkdude12:02:12

Or for new people, maybe in the first few weeks, we do PRs to get them started

mpenet12:02:22

we are relatively strict here: 2 approvals and approvers also have some ownership on the code reviewed. But there are exceptions (bump deps & trivial stuff)

dharrigan12:02:42

Machine Learning

borkdude12:02:51

@mpenet yeah, it depends, you are working on critical infra probably

ericdallo12:02:12

at Nubank we ask for at least 1 approval, no matter the project/dev

6
borkdude12:02:33

Maybe when we have bigger teams we'll have to start doing this

javahippie12:02:13

Does anybody do pair programming? Might be an alternative to code reviews

mpenet12:02:23

@borkdude kinda, I mean you can wreak havoc if you are careless, it's true for any directly client facing/used service, especially when money/owned resources/privacy is involved

ericdallo12:02:43

yes, even so someone not from the pair needs to review the code

dharrigan12:02:50

bbl - lunchipoos

javahippie12:02:02

@ericdallo Wow, that’s strict

borkdude12:02:22

We have good QA before everything is deployed to prod, it has at least several people looking at it (from a user standpoint)

dharrigan12:02:22

pair programming - nice in theory, terrible in practice.

ericdallo12:02:40

IMO it works very well here, the reviews are very good

dharrigan12:02:42

I can expound later - but right now, the offspring is demanding to be fed

mpenet12:02:58

depends with who, I am not a fan but it can work if there's some synergy with the other set of hands/brain

javahippie12:02:39

Talked to a guy doing mob programming, “Pass the keyboard” on with 4-5 devs. Every commit (after test suites) at their project goes directly to Prod. Super uneasy feeling at first, but they say that their quality actually improved

mpenet12:02:18

we do something else, it's strictly something I personally do with another dev at work, we basically stay on the same meet all day and share issues/problems when they arise and sometime brainstorm on solutions on the spot, but no pairing involved.

mpenet12:02:40

not policy or anything, I just like to have a non-rubbery rubber-duck

mpenet12:02:48

and same for him I guess

borkdude12:02:54

@mpenet Does this mean you have something like Zoom open all day?

borkdude12:02:05

is this something like Zoom?

mpenet12:02:10

we just recycle our daily meet for that

mpenet12:02:12

google meet

borkdude12:02:21

I don't know what this is, so just say yes or no ;)

mpenet12:02:33

the zoom equivalent from google

borkdude12:02:57

So you're on a video call all day long? Gosh that would seem tiring to me

mpenet12:02:57

so yeah the same

mpenet12:02:06

nan, just audio, we kill video

mpenet12:02:31

it's muted most of the time but we do use it quite a bit during the day

borkdude12:02:58

if you're working on the same part of the code that's maybe a nice idea

mpenet12:02:59

makes you have an office feeling without the bad parts imho. again it's something quite personal to like or not I think

mpenet12:02:08

yes quite often it's the case

kardan12:02:08

We have done pair programming at times this and I think that is why I don’t enjoy PR reviews. To me, doing pair programming puts the second pair of eyes in the moment were the most important decisions are made. Thinks like architecture etc. Things that is often too late to point out when work is done and packaged in a PR review and small bike shead items are changes when value could already have been in front of users. But I think there is no fixed solution. All depends on context or the situation 🤷

otfrom13:02:03

I like PRs b/c it means @mpenet reviews my code

💯 6
borkdude13:02:19

Are you working at the same company?

otfrom13:02:37

nope, it is one of the joys of producing open source 🙂

otfrom13:02:05

I've had really good mob programming experiences. Mixed pair programming experiences (some amazing, some awful, some meh)

otfrom13:02:25

mobbing/pairing is very tiring. I'd never do it for more than 4hrs in a day

3
otfrom13:02:50

I like branches as I commit and push my WIP to github as I go and then do an interactive rebase and force push before asking for a review. It isn't down to a single commit, but preferrably one that tells a good story of what I was trying to do

otfrom13:02:22

London Clojure Dojos (inspired by London Python Dojos) were either one big or multiple small mobs

otfrom13:02:26

with a demo at the end

otfrom13:02:52

I often do work on my own tho

otfrom13:02:59

re: bad temper in code reviews or pairing - that is really an independent thing that should probably be tackled

otfrom13:02:58

same w/bikeshedding. Just get right at what is going on there and see what the issue is

orestis14:02:26

I enjoyed pair programming but couldn’t make it work in async context. I’m trying to take the best from that though - I encourage everyone to do small commits and PRs, and ask for feedback early and often. Again, the async context means that perhaps you won’t get feedback when you want it but much better than waiting for a PR

otfrom14:02:07

async and pairing don't really work

mccraigmccraig15:02:43

so my favourite BI tool (chartio) just got acquired and is shuttering... have any of y'all had good experiences with any others ? we use it for redshift queries serving embedded dashboards for lots of end-users

otfrom15:02:34

metabase? not used it tho

anthony-galea15:02:09

I've recently used metabase with postgres and it has worked quite well. Never used redshift but according to the metabase docs it is supported: https://www.metabase.com/docs/latest/faq/setup/which-databases-does-metabase-support.html

thomas15:02:57

we used metabase as well. works really well

mccraigmccraig16:02:01

nice - will metabase do multi-database queries - e.g. join a redshift table to a google-sheets table ? not a dealbreaker, but chartio's ability to do this is really convenient