Fork me on GitHub
#clojure-uk
<
2017-03-06
>
agile_geek08:03:03

@otfrom re: http://blog.jessitron.com/2017/02/reuse.html given our conversation on Tuesday reading this is quite frustrating as I'm half way thru writing something very similar myself but she's summed it up much more eloquently than I could! Oh well, I guess I'll have to find a different slant on premature abstraction to write about.

glenjamin08:03:25

i saw this happen at my old job at SkyBet

glenjamin08:03:43

we’d been burned by reuse within a large codebase

glenjamin08:03:49

so people started copy-pasting all over the place

glenjamin08:03:09

and instead we got recurring bugs in different products that had forked enough that you couldn’t copy-paste the fix

glenjamin08:03:34

so while I agree with the problem statement, I don’t agree with the solution of giving up on reuse

glenjamin08:03:44

Instead I’ve been trying to get people to do it properly

glenjamin08:03:04

if you want to share code between teams in an org, open source it

agile_geek08:03:42

@glenjamin I think it's a very hard problem to solve. I agree open sourcing it helps you get to the end point which IMHO is that the abstraction applied is a generic abstraction of the behaviour required rather than an abstraction that relies on the specifics of the biz domain and therefore the reuse is at library level. The reason I say this is that even if the developers have a shared understanding of the business domain and the architecture it's highly likely that this understanding will diverge in different areas/components of the business and system in the future. Although superficially the problem may appear the same, in many small but significant, ways the business requirements differ because if they didn't each team would actually be writing the same thing. Or if the reuse is in the macro and has domain specifics it may become a service but you need to examine whether the abstraction applied by that service is what you need before taking it on as component in your solution. One thing to guard for in open sourcing the reuse would be the differing demands from each contributor leading to the library growing out of control through accretion. This may suggest the abstraction is actually taking on two much and it's more than one high level abstraction with possibly one or more shared lower level abstractions?

glenjamin08:03:31

yeah, the actual goal is having a concrete goal and purpose for the extracted code

glenjamin08:03:41

and open sourcing it is the “hack” to try and foster that

agile_geek08:03:48

IMHO almost all 'problems' in business related IT are problems of developer to developer/business owner communication! That's why I think that approaches that think only of technical solutions or process solutions in isolation are inherently flawed.

agile_geek08:03:32

@thomas aye up! How's it going in the low lands today?

dominicm08:03:27

Morning 😫

thomas10:03:43

@agile_geek fine... went to see family yesterday.... as my daughter pointed out: it is very nice that we can visit family more often now... but it isn't as special as it was before.

Rachel Westmacott10:03:24

"Does anybody else find themselves modifying the pages they're on when they find bugs?” I’ve been fixing the Concourse CI web view CSS while waiting for builds.

Rachel Westmacott10:03:41

It would be super awesome to be able to push such fixes upstream

Rachel Westmacott10:03:51

not just tech fixes - typos in content as well

Rachel Westmacott10:03:00

(is there an app for that yet?)

dominicm10:03:37

@peterwestmacott there's a few services about.

chrjs11:03:32

Heh, hey, thanks for the 🎉

yogidevbear14:03:17

Talk next week on Clojure and Kotlin

Sam H15:03:01

before more recently delivering with JUXT one of the largest UK property websites any idea what website that's referring to?

glenjamin15:03:02

on the market