Fork me on GitHub
#clojure-uk
<
2020-01-02
>
yogidevbear08:01:51

Aloha 🌴 and a HNY 😄

guy08:01:00

Morning!

dharrigan08:01:49

Anyone here (personally, or at their company) use OKRs?

guy08:01:18

I did they were pretty meh

guy08:01:29

I think it depends on your company / age and stage

dharrigan08:01:28

At the place where I work, they are bringing them in I believe.

dharrigan08:01:38

Why did you find them meh?

guy08:01:42

I think theres always a pull/push between fulfilling OKRS and doing your job

guy08:01:48

thats the tldr really

guy08:01:55

I found metrics to be both useful and unhelpful, its useful because it helps you focus on a greater goal for the company, but if they are the wrong metrics then its not as helpful.

guy08:01:37

@wesley.hall did u do OKR's i cant remember

otfrom10:01:53

morning

👋 4
tcsavage11:01:25

We use them. FWIW I think OKRs are great as a focussing tool. Kind of like a north star. When you start using them more as a cross-team communication tool they start to become painful.

dharrigan11:01:50

Do you set personal OKRs?

guy11:01:31

as far as i remember isnt it like, personal, team, department, overall company? that sorta level?

tcsavage12:01:33

We have a 6-month OKR for the product/technology group and 3-month OKRs for each team in the group. The commercial side of the company prefer to do their own thing.

tcsavage12:01:11

@guy The exact arrangement we use right now has evolved over the last few years. The great thing about it is you can tweak it until you find something that works, and then continue to tweak it as the organisation changes.

👍 4
guy12:01:44

sounds good!

dharrigan13:01:09

A lot of the examples of OKRs on t'interwebs are from a marketing/sales perspective, i.e., generate XXX revenue, onboard XXX clients

dharrigan13:01:24

What might make a good KR for programming/projects perspective?

dominicm14:01:13

Code 50 sexps

dominicm14:01:25

Make 5 commits

dominicm14:01:00

I'm kidding, ignore me. 😊

dharrigan14:01:35

I think I would do that in 1 hour, not 1 quarter 🙂

tcsavage14:01:39

Well just looking at those two examples you gave, how can an engineering team help revenue generation or onboard more clients? Maybe the objective could be to increase product differentiation by building a new feature. A key result might be X% increase in AOV or Y clients using this feature

dharrigan14:01:18

I was thinking more low level, like "decrease latency by 10%" or "write 50 more unit tests"

dharrigan14:01:26

I guess I need to think more on this

tcsavage14:01:26

To what end though?

dharrigan14:01:07

Well, the objective would be "Improve client perception of the application" with a few KR's being "Decrease latency by 10%" etc...

dharrigan14:01:20

and "Improve the quality of the application" with KR being "Write 50 more unit tests" et.c.

tcsavage14:01:26

Here's the thing about "key results": a good key result isn't something you did, but something that happened because of what you did

tcsavage14:01:11

So you might instead consider looking at NPS scores, support tickets or some other KPI

mccraigmccraig14:01:16

will nested sexps count, or only top-level ? troll

dominicm16:01:28

Definitely nested

dharrigan14:01:42

interesting insight tom!

tcsavage14:01:08

E.g. Objective: Improve the client user experience by improving latency. Key result 1: X% improvement in NPS. Key result 2: Y% fewer "app is slow" support tickets

fmjrey15:01:39

If you like acronyms for goal/objective setting, here are my favorites: Objectives must be SMART: https://en.wikipedia.org/wiki/SMART_criteria For each objective, GROW: https://en.wikipedia.org/wiki/GROW_model

jasonbell15:01:46

Morning

👋 4
dharrigan16:01:29

what are people's views on this:

dharrigan16:01:47

{:foo (a-function-call with-parameters)}

dharrigan16:01:21

(when [result (a-function-call with-parameters)]
       {:foo result})

dharrigan16:01:51

i.e., inline the function call when constructing a map, or bind the value before constructing the map?

dharrigan16:01:36

it's not that important if result is nil, i.e., if :foo contains nil or not, it's more the style of approach, inline or separate?

mccraigmccraig16:01:52

i tend to prefer the former @dharrigan, since to my mind it requires less mental effort to comprehend... but it's all about comprehension, so if doing it all in one step starts to become overwhelming i would split it up

fmjrey16:01:52

I also like the straightforwardness of the first, a quick glance is enough to know what you get, though you need to decide what's best: nil or {:foo nil} when the fn returns nil, only the last is "truthy"

dharrigan17:01:05

I think I prefer the former too

dharrigan17:01:31

I think if I was to inline everything, it could become a bit messy and hard to read

Gulli17:01:20

Is there any benefit to the latter one?

fmjrey17:01:56

you mean to the when form?

fmjrey17:01:23

use it when you need nil instead of a map with a nil value, other than that, and associated truthiness/falsiness, not sure there is much to it

👍 4
dharrigan17:01:59

Yeah, I think it's mostly style. In this instance, I would perfer the function to return nil, if the map can't be constructed without a nil.

dharrigan17:01:20

so, when yes, but generally, I think I'll do the same using lets, etc..