[2024 dev2next] learning to say no without being a jerk

Speaker: Christina Aldan @luckygirliegirl

For more see the table of contents


Saving the day

  • Overcommit
  • People get used to asking last minute
  • Others “can’t”
  • Wake up call – physical health/carpal tunnel

Boundaries

  • Sound – headphones, cell phone policy, meeting facilitation
  • Nonnegotiatables – core values. Deal breakers
  • Time – deliverables and more
  • Physical – handshakes, taking breaks, hugs, solo lunches
  • Mental/emotional – communication, delegating, saying no, avoiding gossip
  • Material/financial – salary, benefits, office space, equipment

General

  • Feel stuck and come out fighting when backed into corner

Why we resist boundary intrusions

  • Missed opportunities
  • Want to help – little things expand and now you own them
  • Want people to like us
  • Think have to take on everything
  • We are having fun. but even the fun things take energy
  • Conflict avoidance
  • Avoid being a jerk. Some people take no as insult
  • Fear of abandonment
  • Fear of missing out (FOMO)
  • Fear of not being good enough
  • Fear of imperfection
  • Fear of not belonging
  • Fear of change
  • Fear of judgement

Important skill

  • Being able to say no sets boundaries
  • Sets expectations of others in relationship
  • Rules must be followed; create own
  • Can focus more
  • Multitasking is not a thing; need to focus
  • Stay connected to purpose
  • Good fences make good neighbors; people know what to expect

Saying yes all the time

  • Sacrifice gym, personal things
  • Sick too much. Used to plan 10 days to be sick.
  • Always busy; can’t slow down
  • Crash
  • Work is mediocre at best; significantly more mistakes when rush
  • Cancel on friends last minute – “flaker friend”
  • Resentful when tired

Saying no

  • Value own time
  • Think about whether feel obligated – can send to resources or offer to help with a part
  • Think about what it would take to make it an emphatic yes. ex: for negotating contracts and salaries
  • Gamify saying no. Tell people practicing. Have people ask silly yes/no questions.
  • Decide; if you don’t honor your boundaries why should someone else

Hack your brain/emotional intelligence

  • Change your password; change your mind. ex: “NoWayJ0$e” or “NotGoingToDoIt” and log out each time. Forces you to type it a lot and brings to forefront of mind and attention.
  • Shift perspective – third person perspective as if on tv. See relationships and reactions
  • Calming techniques; tapping solutions audio book – takes time to convince brain willing to shift
  • Practice!
  • Self directed study – ex: read something every day, social media, listen to audio, etc
  • Set reminders on calendar. Brain processes images faster than anything so glance at it and see pop up as constant reminder about saying no
  • Writing on paper – involve more senses
  • Role play – had conversation in head

Have phrases

  • “Thanks so much for thinking of me. Unfortunately I have another commitment. I am copying X who is an expert on the subject and more than qualified to speak at your event”
  • “I am not the est person to help out with this. There’s probably someone more appropriate to ask”
  • “If this were any other day/time I would do it. Unfortunately I have another commitment”
  • “It just don’t work with my calendar:
  • “This doesn’t meet my needs now, but I will keep you in mind for future reference” – stops repeat spam on linked in
  • “No. Unfortunately it looks like it won’t work for me”
  • “Thank you for thinking of me. Unfortunately my calendar is full at the moment. How is X for you”
  • “I just don’t feel like I could give you my full time and attention on this”
  • “Thanks for asking me, but I’m already committed to something that day”
  • “I promised my business partner I wouldn’t take on any more projects”
  • “I can’t do that, but let me tell you what I can commit to”

Warnings

  • Be honest – don’t defer to next month if don’t want to do it
  • Beware of reluctant yes where “yeah, I think I can do that” and then it immediately gets bumped. Either emphatic yes or definitive no.
  • “No” is a complete sentence

My take

This was awesome. Faced paced and lots of ideas. My session is right after this and I have a few things I can reference!

[2024 dev2next] avoid rework

Speaker: Lisa Crispin

For more see the table of contents


Typing this up after. I didn’t live blog because there were a lot of group exercises.

General

  • Bug vs missed requirement – which one is less painful for the user?
  • Lose focus entirely if try to focus on more than 6 things

7 product dimensions; ask questions about each

  • User
  • Interface
  • Action
  • Data
  • Control
  • Environment
  • Quality Attribute
  • Bring cheat sheet with dimensions to meeting to draw out questions; helps think laterally
  • Thinking tool; doesn’t matter which question a category is in.

Personas

  • Name
  • Description
  • Values
  • Likes

Others

  • State diagram
  • Flow diagram
  • Context diagram
  • Examples – can become tests/stories

Exercises

  • Ask a question for each dimension
  • Make a persona. Ours was named Kim and a stick figure on a coffee cup
  • List business rules and examples

My take

The interactivity was helpful in “feeling” why these are valuable.

https://bddbooks.com

[2024 dev2next] distributed consensus algorithms

Speakers: Mykyta Protsenko, Alex Borysov

For more see the table of contents


Scenario: need 5 people to meet: two in Ukraine, one east coast US and two West coast US. Need to meet weekly

Consensus properties

  • Fault tolerance – not reliant on one person to see result
  • Safety – only one value chosen
  • Liveness – get to consensus in finite about of time, can take multiple iterations

2 phase commit

  • One person asks and someone says can attend if everyone can. everyone says yes.
  • Commit and now official.
  • Simple but downsides. When group big, a lot of acks. If one no, transaction aborted and start over. Also, waiting for slowest node to reply.
  • If coordinator loses internet, everything blocked
  • Fails on fault tolerance and liveness

Paxos Protocol

  • Everyone has a ballot with unique ballot number
  • Propose a time with next ballot
  • Submit last vote null message to promise that will vote. Can be for or against.
  • Once majority promise to vote, sends actual begin ballot message
  • Then people actually vote
  • Consensus is majority. Sends message that reached consensus
  • Each participant must track last ballot tried, promise to vote and actual vote.
  • Choosing proposer and ballot don’t have to same person
  • Can only vote if confirmed a promise to vote in cluster
  • Learners can observe to be notified when consensus is reached
  • Fault tolerant because majority is enough
  • Safety because majority based
  • Doesn’t ensure liveness.
  • Can elect member as leader who can be the only one to propose
  • 2 round trips for consensus

Cassandra

  • Uses Paxos
  • Need to know order of data – linearizable consistency
  • Don’t mix transaction types. ex: use if exists/if not exists consistently.
  • Lightweight transactions are faster than two phase commit
  • Incurs performance penalty by design because more Paxos interactions.

Raft

  • Two message types
  • Leader based. All other nodes are followers
  • No reelections. Leader stays as leader until disappears
  • Like Paxos, use increasing numbers
  • Every node starts as a follower. on term 1 Followers notice no leader. One or more volunteers and increases term number. Others vote on leader. Only one vote for that term so can’t vote twice.
  • Once leader elected, followers send requests to leader who propagates
  • Log replication – can be applied (not final) or committed
  • Use commit index as tracker of what data was committed. Allows to see state
  • All followers have a heartbeat tracker. If leader disappears, the one who hasn’t heard from the leader in the longest time becomes a candidate to be new leader. If away and request leader, gets rejected because have one
  • If outside cluster and want to know status, asks leader
  • Fault tolerance – yes leader or follower can droo
  • Safety – guarantees one choice. Also only commit data from term
  • Liveness – in practice yes, but in theory no

Mongo DB

  • Uses Raft
  • If slow member is leader, there is a write bottleneck.
  • Can horizontally scale by replica set. Can hash keys so majority of requests aren’t all on one replica

Accord

  • New algorithm; not widely available
  • Leader based protocols create bottleneck
  • Fast and slow paths
  • If can get majority with fast path, can tell slower nodes later; even async
  • A node must be part of all fast paths majority so can share with others when back online
  • Fast path should be 3/4 of nodes to guarantee someone has latest state
  • Slow path remains as simple majority
  • ACID
  • Reorder buffer to reset transactions to be in order based on time differenitials

My take

I knew what two phase commit was. Everything else was new to me. Excellent start to the morning! The five people voting made it easier to follow. The reasons for them disappearing (Ukrainian soldier, Californian losing power) also helped pay attention. (Left a few minutes early to answer a phone call)