Showing posts with label collaboration. Show all posts
Showing posts with label collaboration. Show all posts

Tuesday, July 3, 2012

The Tragedy of Agile

I've recently become aware of some recent complaints about the agile methodology and as I've thought about these complaints it seems to me that the reason for these complaints is because people are too locked into doing what someone has ordered them to do to. What I mean by that is too often we're not able to ask why we're doing something other than the boss (or someone else like an expensive consultant) said so.

All too often agile, or any process decision, is directed from the top-down.  An executive/manager/lead gets wind of a way to make all their buggy, late, and expensive software problems go away.  All you have to do is follow a few simple rules.  Now the tragedy is the people who have to carry out these rules are never asked how they feel about these rules before they're told to do them.  What we're seeing is a bureaucratic, closed, and stale culture trying to implement a set of rules that are based on an open, transparent, and continuously improving culture.  The rules for the software development process just don't seem to fit, but luckily nothing is set in stone.

This is your process...not Scrum's

During my grad studies I took a class about lean manufacturing which is the basis for the Toyota Production System (TPS).  Basically, TPS is a culture, set of rules, guidelines, and processes that enable Toyota to eliminate waste in their business.   Eventually Toyota realized that it needed to help their suppliers eliminate waste so that they could work together better.  Our class took a tour of one of these suppliers called Autoliv.  Autoliv builds parts for Toyota's airbags and with Toyota's help they've been able to create a more efficient production system.  Now, do they call it the Toyota Production System?  No way.  Why?  Because they're not Toyota, they're Autoliv.  It's the Autoliv Production System.  It was modeled after TPS but modified for their specific needs.

Don't say we use the Scrum or OpenAgile or Waterfall or whatever methodology you're basing your process off, because the truth of the matter is you aren't.  You're taking whatever you understand these methodologies to be and you're applying it to your circumstances.  When you say you're using Scrum it's too easy to blame your problems on Scrum.  Take ownership of your development process because if there is a problem, you'll need to fix it.  And by you I mean everyone on your team.  

Empower the team.  They will come.

I've come to discover that self-organizing teams are incredibly productive and for the most part a lot happier than your traditional team (I wish I had empirical proof, but I don't).  Part of the self-organizing team is shared responsibility.  You fail together and you succeed together.  Most people I've come across(sure there's a few dicks out there) are going to want the team to succeed and will share ideas on how to improve. Whether code or development process, the team needs to be able to adjust to better increase their chances of success.  In order to do that they need to be able to experiment with their ideas without going through miles of red tape.  Does experimentation lead to some failures?  Absolutely, but it is the only way to improve.  

Another important aspect of the team is having clear roles.  Generally, you'll have your product owner and your customers and your project manager (some people might call this scrum master for some weird reason), and your developers.  Your process might have more and maybe less (do you see a problem with having less?), but the fact of the matter is if you know who has what role, and what specific duties are included in that role, there won't be as many conflicts of people trying to do the same thing.  For example, if you have a clear product owner who is driving the direction of the project you won't be receiving conflicting feature requests.  Again, it's important to understand why you have each role on the team.  If you don't know why, you probably don't need it and you can move that person to QA since they're probably overloaded anyways.

Tool not rules

As I've come to better understand agile, lean, theory of constraints, and other ideas of improving processes the better I've come to understand that all the ideas and strategies are simply tools.  Tools that I can choose to use in a certain situation where necessary or, if it wouldn't be effective, to leave in the toolbox.  You wouldn't use a sledge hammer to hang a picture would you?

In carpentry it's generally pretty easy to decide on which tool for a job, but it may not be so easy for software development.  For this reason it's important that you're measuring the right things to see if a tool really is beneficial.  I agree that this is way easier said than done, but at the very least you should know how long, on average, a feature takes to go from inception to release.  That way you can monitor any changes that come about from your experimentation(remember the scientific method?).

Some other useful metrics might be ROI, velocity and there are a slew of others.  And once again, understand why you're measuring something, because truth be told, measuring can be a pain.

So...

If I were to have you remember anything from this article, understand why you're doing what you're doing. I sincerely hope that you're in an organization where that's okay.  If not you might have a hard time trying to convince people to change, but I've found that most people are willing to change If they understand why it would be better.

And if you were to remember some other things it would be good to also remember that it's YOUR software development process, for better or for worse.  The sooner you realize that the better for you and your team. And lastly, use tools that are good for the job.  

So, by following these few simple rules (maybe I'll name it the Be Awesome To Each Other Methodology), you too can enjoy your job in software development.  

Seriously though,  I am interested in your stories, ideas, anecdotes, etc.

Saturday, May 26, 2012

How do you see people? Part 2

Last post I talked about the training I went to from The Arbiger Institute.  I thought it was really powerful since it helped me realize that how I unwittingly see people affects me and my relationship with that person.

I still think the best way to learn about what they teach is to get one of their books, but I want to put down my notes for future reference.

So in review from Part 1, I wrote about if we betray our desires to help, or do something for or with someone, then we have a need to justify our own behavior to our self.  We justify our self by convincing our self that the person is worse (or maybe even better) than they really are and we are better (or worse) than we really are.

When we see others as objects we are basically inviting them to see us as an object too, and when that happens we enter into a cycle of collusion, which means that we continually betray our inner senses/desires and are continually needing to justify ourselves and we  continually  behave in that regard which feeds the other persons need to be justified so they behave in a a way to us that justifies what we convinced ourselves of the other person.  Or in other words, its a back and forth exchange of negativity.

Getting out of the box

There are 4 steps to getting out of the box.  

Step 1: Look for signs of the box

When we're in the box we think and act in certain ways that are red flags that we're in the box.  Some common signs are:
  • I need to feel justified
  • I feel victimized
  • I blame others
  • I horribilize (make someone out to be horrible)
  • I exaggerate values ("I'm just being honest")
  • I get defensive
  • I focus on myself
  • I must be right
  • Avoiding someone
And the list goes on and is different for each person.  We need to recognize our specific red flags.

Find an out of the box place or person

Once we recognize that we're in the box towards someone we need to change our surroundings to something that does not feed our box.  That might involve talking to someone that you aren't in the box towards about the person you are in the box towards (without trying to seek out allies to put them in the box too).  Or, it might just be a place where you can think quietly.  

Ponder the situation anew

As we come to realize that we're in the box we need to think about how the person or group that we're in the box towards really is.  To do that we can ask ourselves certain questions.
  • What are the person's or group's challenges, trials, burdens and pains?
  • How am I, or some group I'm a part of, adding to the challenges, trials, burdens and pains?
  • In what other ways have I, or my group, neglected or mistreated the person or group?
  • In what ways are my better-than, I-deserve, worse-than, and must-be-seen-as boxes obscuring the truth about others and myself and interfering with potential solutions?
  • What am I feeling I should do for this person or group? What could I do to help?

Action

As we realize we're in the box and see the other person or group out of the box, we have a sense or desire to do something for that other group or person.  Remember, if we don't act on that sense/desire we betray our self and we need to feel justified and we start the cycle all over again.  

So, in order to stay out of the box we need to act on our sense/desire.  This might be something as simple as an apology letter or a lot more than that.  Every situation is different.  

Helping things go right

Another main argument from The Arbinger Institute is that we spend most of our time fixing things that are going wrong, when in reality we should be spending most of our time helping things go right.  In their books and lessons they have a nice pyramid that helps to understand this concept better, but they divided this pyramid into different layers.  From the bottom to the top the layers are:
  1. Get out of the box/Obtain a heart of peace
  2. Build relationships with others who have influence towards the person you want to help influence.  Such as your kid's friends.
  3. Build the relationship with that person.
  4. Listen and Learn
  5. Teach and Communicate
  6. Correct.  This might be putting your kid in timeout or some other corrective behavior.  
With the pyramid also comes 3 main lessons:
  1. Most time and effort should be spent at the lower levels of the pyramid.
  2. The solution at one level of the pyramid is always below that level of the pyramid.
  3. My effectiveness at each level depends on my way of being.  At war, or in the box, or at peace, out of the box;

Conclusion

I've read a quite a few leadership type books and truthfully I've enjoyed them all and have found that I've become a better person because of it.  I think the main difference between what The Arbinger Institute teaches vs the other books I've read is that The Arbinger Institute breaks it down to the very fundamental layers of how we maintain meaningful relationships that include philosophy and psychology (or at least as near as I can tell).  

So for more information visit The Arbinger Institute

Friday, May 18, 2012

How Do You See People? Part 1

I find I don't have much time to post anything that requires much thought or work, but recently STG gave a training on some pretty interesting concepts on how we interact with people by The Arbinger Instiute and I wanted to post my notes.


The Arbinger Institute was formed by a pretty genius philosopher who figured out how people interact and how when we see people in the wrong way we actually invite the behavior from them that we're trying to avoid.  It's pretty complicated material (humans are pretty complicated), but they've done an awesome job dumbing it down and labeling it in such a way that we can understand it. 


How we see people - our way of being 

At the core of what Arbinger teaches is how we see people, or our "way of being".  It's important to understand that our way of being is different than our behavior.  We can behave in the same way no matter our way of being, but our way of being might affect how our behavior is received.  

There are two ways of being, or how we see people. 
  1. We see someone as a person, we value their humanity as equal to our own, or we're out of the box.
  2. We see someone as an object, we value their humanity differently than ours, or we're in the box. When we're in the box we see that other person as:
    • A Vehicle; a means to an end
    • An Obstacle
    • Irrelevant
 Strangely enough, we put ourselves in the box towards people all of the time. Even towards those we consider the closest.  

How we get in the box - self-betrayal and justification

Getting in the box towards someone can be incredibly easy if we're not on the lookout for the red flags.  All it really involves is a desire that we don't act on.  For example, let's say I'm reading a pretty interesting book and I hear my wife doing the dishes in the kitchen.  As I hear her doing the dishes I get this idea, "I should go help with the dishes".  If I decide not to act on that desire I put myself in the box and then I need to justify my choice.  By justify  mean I need to make out my wife to be a horrible person so that i feel I am justified in not helping her.  I'll try to rationalize by telling myself that she has all these horrible traits  (none of which are true in my wife's case) while I have all these good ones and that's why I don't need to help.  

It sounds kind of absurd when you first hear about it, but then you start seeing this pattern all over the place -In yourself, in others- and that's when you start seeing how crazy it really is.  But not quite as crazy when you get two people (or groups) in the box towards each other. 

Effects of the box - collusion

Collusion is a cycle of selfish views and actions and is what happens when two people are in the box towards each other.  It follows a they do, I see, I do, they see, they do pattern.  Here's another example on a larger scale between the MAFIAA and The Pirate Bay.  
  1. TPD do: The Pirate Bay allows users easy access to illegally copied music and movies. 
  2. MAFIAA see: The MAFIAA sees an organization with blatant disregard for the hard work of their clients. They must be free-loaders and inherently evil and lazy, etc, etc
  3. MAFIAA do:  The MAFIAA contacts governments and courts to shut down the pirate bay.
  4. TPD see:   The MAFIAA is trying to censor the web.  They must be against sharing knowledge, etc, etc
  5. TPD do: The Pirate Bay moves all their servers to a neutral country where other governments can't shut them down.
  6. and the cycle continues...

Spreading the box - allies

When we find ourselves in the box towards someone we feel we need to be justified no matter the consequences, even sacrificing our own well-being and happiness.  Not only do we feed our justification by the other person's actions, we try to convince others that we're right.  An artist might say to a friend, "Look how much money The Pirate Bay is stealing from us!"  all the while The Pirate Bay fans are crying, "The MAFIAA is going to shut down the web!" As we gather allies to our cause the box continues to grow. This is how wars are started. 


Some people's boxes are thicker than others and some can be dangerous, but in every case they prevent us from a meaningful relationship with that person or group.  So the question remains, how do we get out of the box?  I'll write about that in part 2, or you can always go to The Arbinger Institute and learn this all for yourself (which I would suggest doing anyways).

Thursday, March 8, 2012

Collaboration Tools

Here are some interesting looking tools to use for staying in touch with your team.

TeamViewer (never tried it)
- Free for non-commericial uses.  Seems very powerful for small-medium sized groups.

AnyMeeting
-Free with ads.  Large groups.  Looks like it is mostly for conferencing and webinars. Pretty good for sharing your desktop, but it forces me to call into a conference call for audio.

Skype
-Mostly phone and conference calls. I've never had much luck sharing my screen.

Party Chat for Gtalk
-The awesomeness of Gtalk and the convenience of group chat.  Truly one of my favorite collaboration tools.

Twiddla
-team whiteboard, document editor. Looks good for collaborating notes on.