Sep 14, 2015

How technical debt creeps in

P1: I want to see 1, 2, 4 and 5.
D1: print 1, print 2, print 4, print 5
P2: I want to see 3
D2: print 3
P2: 3 should be after 2 and before 4
D2: output.replace /(2) (4)(.+)3/\1{3}\2\3/
P3: I want to see 6

Jul 24, 2015

Moulding Culture with Appreciation, Silence and Feedback

Like a typical hacker mindset, I am always on lookout for patterns, formulae's and hacks for life and work around me. When I moved into managing teams, I had to apply this thinking towards people, team building and processes to optimize the organizational code at work. I have learned and changed a lot in the process but my train of thoughts still revolve around those original traits of a hacker mindset.

When I joined a start-up about a year back to head and build its engineering team, one of the critical challenges has been about moulding an organization culture and how to go about doing that. Culture as such has been a complicated subject for me since it does not fit well into moulds of programming logic. I was first seriously introduced to that concept while reading the book Delivering Happiness by Tony Hsieh. A great book and I would highly recommend. I have read numerous such corporate management and leadership books including the recent The hard things about hard things by Ben Horowitz which have been helping me in forming a pattern around hacking a culture change.

A culture in a way that I understand is the vibe a team or organization provides to any new person joining it. It also sets some unwritten rules and behavioral expectations from the people in the team that has been carved by their founders and leaders. What I have come to derive is that appreciation, silence and feedback are the key tools that if used appropriately can help carve a specific culture, one that can be planned, engineered and implemented.

One way to think of these tools (appreciation, silence and feedback) is how they impact the thing (culture) we intend to mould. Getting down to the basic constructs of culture, what we wish to drive  is the overall behavioral traits of the team. Here is how I feel these tools help mould that -
  • Appreciation - it is an enhancer. It increases the behavioral trait that it is applied to.
  • Silence - it diminishes or discourages a behavioral trait. Lack of appreciation is felt as much as its presence and is effectively a culture tool.
  • Feedback - this is useful for course correction. Since the previous two tools are not helpful much when the directions are incorrect.
Appropriately combining the above 3 techniques, can effectively help build a culture. This does trickle down from the leadership. So knowingly or unknowingly, these tools are always functional and continue to mould an organization.

To cite an example, let us say we want to create a culture where working longer hours is a norm and expected. As a leader here is how I can use these tools to get that going -
  • Appreciation - an engineer worked overtime to deliver a report a customer asked for. As soon as I come to know about it, I want to publicly appreciate this specific trait.
  • Silence - an engineer does tremendous job at everything she undertakes but always leaves office on time. I never bring that up or show appreciation.
  • Feedback - another engineer works overtime but sometimes does not show up at the weekend standup. I like the person and during our 1-1 meeting I mention that and ask for sending advanced notification and avoiding such absences.
This though is a negative example I am sure some of you can relate to it. It does create a bad culture, but the point here is that it can be planned and implemented. In a similar fashion, one can lay the foundation of building cultures around excellence, fun, sharing and the traits that one wants to be part of their organization.

This approach though greatly simplified, feels logical to me. The framework gives me a way to enable cultural change. Things are not black and white but the shades of grey are differentiable. In the end, it gives me a way to proceed forward and to learn and grow in the process.

Jun 23, 2015

Communication Structures

Product architecture reflects the communication structure of the teams. Interestingly, the reverse is true as well.