
Sunday, September 13, 2020

Wednesday, August 5, 2020

Productive Disagreement
Building products(software) is hard. There are so many things that can go wrong. At Scale, everything becomes more laborious. More people, more coordination needed, more things that can go wrong and more pieces and more dependencies. To scale, we create team structure and software, often in the form of SOA Services. Any architecture or Design should survive a set of hard questions; otherwise, the idea or solution might not be good enough. Having people thinking into different dimensions, with varying points of view and various schools of touch, would create disagreement with could be an excellent and healthy thing. However, not always thats is the case.
When is Disagreement not Healthy?
I would say that disagreement is not healthy if create one or several of the following side-effects:
- Affects team morale(mature team) by not empowering that team
- Prevent progress by power from Comand Control Structure
- It's not logical or rational, and It is just a decision based on fear or emotion.
- Becomes a Power dispute(it will proceed via John or Petter way?)
- Promotes a toxical environment with lots of politics
Some companies have toxic and un-secure cultures and environments. Often Top-down and old school. Steve Jobs once said, "There is no sense in hiring smart people and tell them what to do." IF you can't change the culture, you should consider leaving, at the end of the day it's what happens and is what people do.
When is Disagreement Healthy?
First of all, To have a productive disagreement, you need to have a psychological safety environment. Wich requires mature people(a lot of them) and careful management. Not every company is like that, unfortunately. If you have that, the environment(be glad). Having that environment than disagreement become a valid tool to:
- Promote team ownership
- Cultivate a non-silos culture of collaboration
- Generating new ideas
- Hardening Solutions
Ownership ends up promoted because people get into conflicts, and thats okay because of this is just ideas, it's not personal, and that makes the team grows.
Non-Silos culture is promoted when you add other stakeholders from other teams to have that discussion and listen and participate equally.
However, all of this is not possible if you don't have psychological safety at the company level.
Generating new ideas is a super cool side-effect because you end up exposed to different points of view, and thats super constructive at the end of the day.
Hardening solutions is one of the best outcomes because collectively reviewing ideas, architectures, designs, and solutions is much cheaper than figuring out this issue in prod.
I always believe in a Double-check mindset. Having Productive Disagreement is like having Doudle-check at the team or company level, which is super sweet and makes the whole team and the entire company to grow.
How to Enable Productive Disagreement?
There are many things you could do to promote a better culture and, therefore, a better working environment. Such as:
- Get executive By In (Management)
- Promote Psychological Safety
- Replace Blame for Curiosity
- Have regular 101s
- Do regular retrospectives and clear out misunderstandings.
- Give and ask for Feedback.
Building a better culture is hard and takes time, commitment, vision, and continuous efforts, but it pays off in the long run.
Cheers,
Diego Pacheco
Tuesday, January 13, 2015

IT Good and Bad Spots
Sunday, November 2, 2014
Driving fear out through passion and patience
Some organizations or systems are more complex and political tham other but you need be very careful because sometimes things are not impossible as we think they are.
Is easy to see things as worst as they are because we fell safe this way. So how we overcome fear? For me is a matter of passion and patience, first of all you need to love what you do otherwise you wont be able to drive any change, secondly still talking about you passion you need to be yourself.
Passion is magnetic
People often listen to passionate people, because we want that, because is in or very nature i think could be our artistic side taking control or something like that. Thats why because of pitch a company could be founded now a days and chance the world, if you think about it, its true? A Pitch is just a passionate speak about some ideias. So people by this and get money because not only the ideas but what you can do around that ideas so there is a sense of faith in your passion.
Patience, Patience, Patience
Bigger the prize, longer the fight. You will need to have patience, nothing chance as short tern, so great stuff will only happen after times goes by. I would say is a never ending stop battle since in companies and life people keep going, you get new people in your work and life how often? So you are dealing with something that is alive. Thats why organizations are some complex and so hard to change because if hard to keep things alive.
No matter your culture or beliefs there are things we can do world wide. Like: Appreciate a simile or a good piece of code, or team work or a beautiful software interface that works. In the end we are not so different but we need to keep and keep doing what we belive otherwise it dies. So what you want todo become a cause and if is good cause you might get more people to follow your cause and you need to infect they as a virus. More people you infect with this better, more chance you have to make things happen.
You need to Start and Keep the Cadence
Instead of complain go do one small thing to help things to go a better spot. After you do that keep doing that every week. That`s how we can change stuff with rythin, like a song you need keep the jam otherwise it gets ugly.
I belive as human beings we have a lack of creativity. Because why there is people motivated and people demotivated on same spots? I guess is a matter of perspective and faith, not only faith the persistence to keep pushing into a direction. Fear is often trigger when you try todo big things, thats why baby steps are so important because with small steps you dont have fear is easier to overcome stuff.
Very often our perception is worst than the really. So sometimes is just a matter to find something small that can work and keep trying the thing you want todo or change. You can change people minds you can make they belive you, but did you belive in your self?
Not sure if you do belive in your own ideas!
Do you really belive in your ideias? If thats is true, what are you doing? How many people do you talk every week to change stuff? how many different things did your tried? I made several experiments in my life. But i notice when i say something to people sometimes they got afraid but if instead of saying i DO with they together they fell better and they are able to overcome fear. So was that hard on the beginning? Well thats the thing FEAR makes things worst them they actually are.
Most of great ideas and startups i see now a days are around very passionate people who keep pushing into a direction or a vision they had. Maybe your idea is not that solid, so you could be talking to people outside of your office to get it into a more mature stage or you could be doing small experiments to see if things works as you think they worked.
Cheers,
Thursday, October 23, 2014
Why Management does not work on Agile?
I`m not staying you not need management. As you grown into a complex structure you will need coordination, costs control, and management is need as you get something bigger and complex.
But in order to get it right you need realize when and where you fit management. People talk a lot about scaling agile and i think is funny so little is about engineering. People talk about multiples teams, multiple Product owners, multiple work streams, multiple timezones and cultures but where is the engineering? Deming(The Big mind behind Lean) talk a lot about psychology and the ability to understand systems and they nature. Go Google you will lots of things talking about teams and so little talking about stuff like: Culture, Engineering practices, software architecture(real one, not power points) and principles.
Why Management is not working?
You can only manage what works, if it dont work how could you manage it? How could you manage what you dont understand!? RUP in the past talked a lot about "Vision" thats something very important. If you dont understand it how can you fix it or improve it!?
We need management for complex things but management need came later, after leadership and great engineering practices. Software architecture and design are key elements or enablers of developers / features / users scalability.
Agile Engineering is almost dead, how many posts do we see around it!? How many people are talking about it, well the most successful company's are doing this, and i see lots of good samples like: Netflix and Spottily.
Why do we still have spaghetti for dinner?
Spaghetti code / design / architecture happens because the lack of the right practices like: Code Review, Design Sessions, Design Reviews, Coding Dojos, Proper Retrospectives and lack of right technical leadership. If you keep not doing this things it will become a habit and belive me bad habits are hard to fix, you need change bad habits with good habits.
How to introduce right development habits? Strong vision and fanatic disciplined leadership with engineering practices make they happen every day, systematical, over time, over and over.
Why I dont like what happens with "Technical Debts"?
The idea behind technical debts is brilliant and is a great metaphor the problem is the fact that: Why should you care about your others debts? Fuck them right? You will only care if is your debits. So if my friend have debits why should i care? IT department often hold the business down but business also try to be "clear" and never pay technical debts and this make they go slower not fast but since they dont see the debts as their debts they wont pay it. I like the idea of not separate the tech debits from the business stories because that dont give options for the business to decide "not pay the debits".
So basically should management be doing this stuff? No they should not, this is a technical fault because why should a manager do a design session, right? At some point all the code and the system become an Alien system. Nobody knows from where thing come and where they will go, people just know is that way and keep going on that same direction.
Systematic fault also called Cancer
So nobody cares about technical debts, they are not being payed, no proper review meetings and proper retrospectives to fix the product and the process, so nobody study new technology and techniques... At some point people just get demotivated and start quitting and one thing leaves to another and this become very spread and bad, so its hard to get fixed. But it can get fixed.
In order to get this right you need do systematical fixes, in process, in people, in leadership and in engendering culture and practices, you need make sue people are learning and improving stuff, that takes time but direction is more important than speed, you can do it.
Everything can be fixed, you just need patience and time, keep doing the right things. Small is better than big because is easier to fix but start one small step and keep going, you can go very slow if you go right it does not matter one day you will change the world :-)