How Violent Is Your Communication?
I am in the process of reading a book that I am very excited about, “Coaching Agile Teams” by Lyssa Adkins. The reading is slow-going because each section is so thought-provoking. I am finding it clear and concise as well as plentiful in applications for life and work. Here is one section that I would like to share from the third chapter, Master Yourself. I hope you can find it inspiring as well:
How Violent Is Your Communication?
Probably few of us would say that we bring violence to the people we coach. Most likely our team rooms do not erupt in violence, at least not the physical kind. What about the verbal kind? Although we may not consider the way we talk to be violent, our words can wound people and cause them pain.
To see this in action in your coaching, consider these questions honestly, and count how many “yes” and “no” answers you come up with (adapted from Baran and Center for NonViolent Communication 2004):
- Do you spend some time each day quietly reflecting on how you would like to relate to yourself and others?
- Do you remember that all human beings have the same needs?
- Before every conversation, do you check your intention to see whether you are as interested in others getting their needs me as your own?
- When asking someone to do something, do you check first to see whether you are making a request or a demand?
- Instead of saying what you don’t want someone to do, do you say what you do want the person to do?
- Before agreeing or disagreeing with anyone’s opinions, do you try to tune in to what the person is feeling and needing?
- Instead of saying “no” do you say what need f yours prevents you from saying “yes”?
- If you are feeling upset, do you think about what need of yours is not being met, and what you could do to meet it, instead of thinking about what’s wrong with others or yourself?
- Instead of praising someone who did something you like, do you express gratitude by telling the person what need of yours was met?
If you answered “no” to more than a few of these questions, there is a good chance that your communication has been unintentionally hurtful. It has been violent, and it doesn’t mater that you didn’t mean it. To have an important impact, the kind of impact a coach needs to have to influence people and help them become good agilists, you must pay attention to you language and take responsibility for your emotional wake (Scott 2007). This means that you own up to your impact whether harm was intended and whether you think the other person should feel hurt or not.
For a leader, there is no such thing as a trivial comment. Something you might not even remember saying may have had a devastating impact on someone looking to you for guidance and approval. (Scott 2007)
As an agile coach, team members look to you for guidance and approval, especially in the beginning when being agile has them at once excited and terrified. The people we coach will not be motivated to change or take a risk when they feel we have hurt them – diagnosed them, judged them, sidestepped them or manipulated them.
TextMate Evernote Clipper
I’m a really big fan of Evernote. It lets me loosely organize things I find important without much hassle. Not only does it support basic text notes, but it also supports PDFs, videos, images, HTML and more.
In addition to storing all of the content I find useful it lets me categorize them with notebooks or with tags. It also has a extremely nice searching feature. And if that weren’t enough it lets you sync all of your notes to Evernote online which then also syncs to your iphones, ipads, Windows machines, and beyond. I find it pretty incredible for most of my needs. There’s one area however where it’s pretty lacking—text editing.
As a software developer I spend 95% of my time in a text editor. My editor of choice is TextMate. Every time I am in Evernote I want to use my TextMate keyboard sequences, macros, commands and the like, but I can’t. It is frustrating to say the least.
Evernote is for general purpose note-taking though so I don’t necessarily think Evernote needs to support TextMate’s bindings.
Here’s a short screencast on setting up our Evernote Clipper for TextMate:
Source
You can find it on github a part of our MHS tidbits project: http://github.com/mhs/tidbits/raw/master/textmate/evernote-clipper.rb
More Evernote Clipper Resources
- Evernote Clipper for Google Chrome – https://chrome.google.com/extensions/detail/pioclpoplcdbaefihamjohnefbikjilc
- Evernote Clipper for Firefox – https://addons.mozilla.org/en-US/firefox/addon/8381/
Celebration Retrospective
Recently, we finished a few large projects and headed off-site to celebrate and retrospect with ice cream from The Parlor at Cherry Hill Market. Thanks again to the kind people at the Parlor for great service and delicious ice cream!
Each participant had a card for every other member of the team. We each wrote a sentence or two detailing something we appreciated about the person, then someone other than the subject of the comments would read them aloud.
Here are the comments we shared, in no specific order:
Ryan Montgomery
- I like that you’re opinionated and not afraid to speak your mind. It makes for fun conversations!
- I’m very appreciative and thankful that Ryan is able to take charge, motivate, and openly communicate on Remix and Inspire with other developers as well as clients. He helps me sleep at night! :)
- I am inspired by your ideas, insights and suggestions on ways to improve processes and environment!
- Thank you for being a leader in pursuing new processes and ew technology like the iphone. I really appreciate your willingness to go above and beyond what’s asked for.
- Kept pushing us to get inspire going again.
- Thanks for help on RLI DICE & Agile Zen. Looking forward to digging into Node JS per your recommendation.
- Sticks to principles and has interesting input.
- You are the in-house entrepreneur! Really liked your initiative about new tools and preaching agile/kanban.
- I appreciate far more than words can express – all of your extra help – including putting handles on the cupboards & helping put tables together, and especially your willingness to to stay late & come in on the weekends to help & support Zach D!!
Zach Church
- Considerate, consistent in both coming & going and attitude
- Your willingness to do whatever the team needs is infectious and uplifting. Especially your willingness to take on new projects and technologies.
- For meeting in the mornings while we cut our teeth on titanium. I appreciated the motivation.
- I really like Mr. Church’s ability to decipher the craziness that is Remix. I can’t believe he’s only going to be a sophomore. You code like you’ve been doing it for years! Oh, and thanks for making sense of my incoherent requests!
- Thanks for rescuing me from dependecy hell! Great job on RLI and Remix Mobile. Hope to work on a project with you again soon.
- Task ownership of IOP and worked independently.
- Great job being adaptable to all the different projects you are working on!
- Things I like about you include:
- Easily fitting to MHS fast
- New initiatives (Titanium, etc)
- Sense of humor
- Punctuality :)
- I really appreciate your kindness!! For taking the time out of your day to put memory in my computer!! And – for letting us borrow your tools!! Also – your willingness to go above & beyond to get things done!
Sung Yi
- Awesome pairing! Thanks for introducing me to SASS and awesome Mayo help. Glad you made it to GRLUG! Good luck on Linux!
- For going to Ross H’s BBQ/helping me with the t-shirt design.
- I love Sung’s positive demeanor and energy at the office. I fine it uplifting to be around him at the office.
- Aways there to do graphic work I am not capable of.
- I like your loudness and you make me laugh.
- Thanks for smiling always. Nothing phases you. Your hunger to learn is awesome!
- Your positive, joyful, open-minded attitude is a joy to work with!
- I LOVE your lauh and your contagious good attitude – your energy is great to have in the office.
- I like your sense of humor. Also I like that you are a Feynman fan!
Paula Mierendorf
- Interesting perspectives with activities and very easy-going.
- I love the positive energy you bring to everything you do. You’re a perfect blend of strength and sensitivity.
- Keeps Imikimi work on track and on budget.
- I am grateful and super excited that Paula is taking over on RW and is becoming a more important presence all around. I am thankful she is generating ideas that allow us to have new and creative ways of working. I also appreciate her patience with the partners and her genuine honesty.
- I like how you’ve been bringing in plants and making the calendar on the windows and the other things you’ve done to make the office a more fun place.
- Directing the group to do more scrums/keeping us on task more during them.
- Thanks for keeping us on track and on schedule! You make us look awesome to clients!
- I so appreciate the fact that we have another female & Scorpio in the office! =) I also feel so lucky to have found a new friend – and so appreciate all of your advice! And I love that you have brought so much nature to the office!
- You are dependable on project mgmt when I’m working with code. It’s a great relief! Appreciate initiatives like movies, company lunch, etc.
Matthew Seeley
- Very humble about abilities; very organized and thoughtful about work.
- The remix mobile app is pretty sweet and makes all of us look awesome – so thanks.
- Helped me find and fix annoying IE6 issues and despite it not being fun.
- I am profoundly impressed with Matt’s ability to be given something with often little or no direction and be able to figure it out ad produce working software, solve problems, or prototype ideas. I know I take advantage of that sometimes and it isn’t intentional.
- Thanks so much for stepping in and helping whatever needed to be doe on Mayo. Your positive attitude and help is much appreciated.
- I’ve had a lot of fun in the times we’ve paired together!
- Excellent job staying open, positive, and willing to give your best ot every project you work on!
- I like to talk about new technologies with you (WebOS) etc. which keep sme up-to-date!
- I so appreciate your quiet kindness & always eager to help attitude! Your gentle & eager personality is so great to have as part of the team! *
Mark Van Holstyn
- You amaze me every time we pair. Thanks for all the help on Mayo.
- I had a ton of fun pairing with you on the IOP stuff and other projects my first week. I like the strange voices you made while talking about stupid code or stuff that’s broken.
- Thanks for awesome help with Mayo Javascript stuff! I was very lost and learned a lot!
- Easy to communicate with, very clear. Very knowledgeable about ideas and design.
- Being the voice of reason when one is needed (Inspire, office stuff, etc.)
- Mark’s well-balanced presence and opinions keep me grounded when I need it, but might not know it. I’m glad he is smarter than me and helps point out simpler solutions than what I often conjure up.
- Excellent job staying level-headed, practical and objective when faced with a challenge or issue!
- Extreme patience to explain things that are not clear to me & fun to work with.
- I apprecaite yoru subtle sense of humor & your calming attitude. =)
Zach Dennis
- Very good job staying positive and focusing on the solution!
- I always appreciate your dedication to quality and professionalism. You do it with tremendous passion and energy.
- Thanks for showing me some great Ruby/rails Refactoring stuff. Learned a lot from pairing, and love TDD.
- I know I’ve had a lot of questions when I run into problems, but you’re always happy & enthusiastic about answering them.
- Busted his butt to make Remix happen.
- Pairing with me and pushing me to do more. *as opposed to helping too much or never having time to pair.
- Thoughtful about the work and also very involved. Very positive.
- I admire your coding “Prowess”. Like your DJ sessions. Any problem has a solution for you.
- I appreciate the fact that you can put up with me @ work. =) – and all of your “extra” help after hours…
John Hwang
- Great drive and vision with tasks. Very accountable for things.
- You do such an excellent job of being creative and incorporating long-term ideals with short-term needs!
- Keeps the work coming in so we can do what we love.
- You always make it seem like you have time to talk or answer questions even though you’re everyone else’s bottleneck. ;)
- Starting to prioritize Inspire and making it real/ad also for always “checking up” on me. :)
- I am appreciative that even over-worked and stressed at times, that John has gone the extra mile to help any project (especially Remix), whether its at 10am or 10pm. It’s great t be able t rely on John when you need him most.
- Thanks for pairing – learned lots on style and UI consistency. And the RLI styles looked really good and reusable.
- So many things to mention! Things I wish to learn more from you:
- Attention to detail
- Leadership
- Communication skills
- Patience
- Vision
- CSS
- I appreciate your patience – thank you for being a great teacher! And especially the appreciation you have expressed towards my work!
Auvi Rahman
- Auvi’s been extremely helpful with MHS stuff. I always love chatting with Auvi about awesome tech stuff!
- Auvi is the Bangladeshi Cowboy. He’s knowledgeable in a diverse set of subjects and always open to helping.
- I appreciate your happy-go-lucky personality!! You bring happiness into the office and share it with everyone!!
- It was fun pairing with you on the stories for Imikimi. I like how you found a way to make the features even better than originally asked for.
- Has helped me out a ton keeping Imikimi moving forward while I am busy running around.
- 1. You ate Indian Food at that restaurant with your hands and that was sweet. 2. You’ve been rocking out on Imikimi and everything I’ve heard from everyone has been great. So I’m sure our customer is happy!
Gretchen Knight-Dennis
- I like your google docs surveys and see them implemented fast. Many thanks for taking care of the foods! You helps us all shine!
- I love how you keep us accountable in the kitchen and the office. I also appreciate all of the thought and work you put into making sure everyone has a voice for everything you work on.
- Gretchen is great to be around and she rocks the snacks choices.
- She keeps us fed & got us nice chairs to try out!
- You Rock! Thank you for getting on top of things especially Direct Deposit, the food, the chairs, Health care stuff. You are basically awesome.
- Thanks so much for all the awesome work around the office and with getting us set up. You help us all shine!
Note: For those of you who may be interested more in the details of how we went about setting up and implementing the retrospective: We first handed out a pile of cards and a pen to everyone. Each person put their name on the top of seven cards (one less than the number of people present). Then we passed our cards around to the left, with everyone taking one card for everyone other than themselves. So, each person had a pile of cards with seven different names at the top. We then took some time to meditate and write our appreciations for each person on the cards. When everyone was finished, we created piles for each person in the middle of the table, all their cards together. Then, everyone took a pile for someone else, ideally the person on their right, and we took turns reading them aloud. During and after each reading, there was a bit of laughter and teasing, and we actually clapped in celebration of that person – “Yay Zach!!”, etc. After the “work” of the retrospective, we got up and ordered our ice cream and hung out eating and chatting for a bit before going off into the warm summer afternoon. Very fun!
Chinese Proverb
Recently while reading I found a venerable chinese proverb that reminded me of the our team here at MHS:
A very old man knew that hew was going to die very soon. Before he died he wanted to know what heaven and hell were like, so he visited the wise man in his village.
“Can you please tell me what heaven and hell are like?” he asked the wise man.
“Come with me and I will show you”, the wise man replied.
The two men walked down a long path until they came to a large house. The wise man took the old man inside, and there they found a large dining room with enormous table covered with every kind of food imaginable. Around the table were many people, all thin and hungry, who were holding twelve-foot chopsticks. Every time they tried to feed themselves the food fell off the chopsticks.
The old man said to the wise man, “Surely this must be hell. Will you now show me heaven?”
The wise man said, “Yes, come with me.”
The two men left the house and walked farther down the path until they reached another large house. Again they found a large dining room and in it a table filled with all kinds of food. The people here were happy and appeared well fed, but they also held twelve-foot chopsticks.
“How can this be?” said the old man. “These people have twelve-foot chopsticks and yet they are happy and well fed.
The wise man replied, “In heaven the people feed each other.”
The subject of the proverb is far more serious than what we deal with as a software shop, but I find there are parallels between this proverb and our team. Mainly that as a company and a team we try our best to feed each other, whether it’s literal food, encouragement, trust, support, teaching, learning, etc. While we’re not perfect we definitely avoid what a lot of other teams cannot because we actively try to put our egos aside rather than focus on ourselves, which as the proverb suggests, leads people to become hungry and thin.
I’m glad to be working with all of every single human here at MHS.
Amazon SQS with Ruby
Today I needed to look into working with AWS SQS using Ruby. Google eventually lead me to the Rightscale AWS project on github. This looked great but so far is missing SNS support which we also needed. Fortunately bemurphy forked the Rightscale project and added SNS support in a branch named 'add_sns'.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
require 'right_aws' aws_access_key_id = "your key goes here" aws_secret_access_key = "your secret access key goes here" queue_name = "anyQueueWillDo" sqs = RightAws::SqsGen2.new(aws_access_key_id, aws_secret_access_key) q = sqs.queue(queue_name) # this will serialize and submit the message Yo! # to your queue named "anyQueueWillDo" q.push("Yo!") # this will pop a message off of the queue named "anyQueueWillDo" returned_msg = q.pop # will remove the message from the queue returned_msg.delete |
UNIX tee in real life
tee is a pretty sweet little unix utility that allows you to copy standard output and make a copy of it to one or more files. For example, let’s say that you wanted to run a command, see the output it generated, as well as save it to a file. tee does just that:
1 2 3 4 |
shell> echo run code run | tee /tmp/output.txt run code run shell> cat /tmp/output.txt run code run |
If you run the above snippet you’ll see “run code run” in the terminal output as well as in the file we told tee to copy standard output to.
Read the rest - 2 commentsGLSEC 2009 Talk - Driving Behaviour w/Cucumber
Last Tuesday I had the pleasure to speak at the Great Lakes Software Excellence Conference (GLSEC) about behaviour driven development (BDD). The topic of my talk was “Driving Behaviour with Cucumber” and the talk focused on the BDD tool Cucumber , which is a framework for writing and executing high level descriptions of your software’s behaviour.
In the talk I showed how Cucumber can be used to streamline communication and the development cycle—stories in, features out. A beautiful thing about Cucumber as a tool is it reduces the barrier for communicating clearly amongst the entire project team, from non-technical to technical people including the project stakeholders. It can do this because it promotes using a common language to describe the software at all levels, from non-technical people describing the software down to the code that developers write to make it work.
Read the rest - 0 commentsMHS volunteers at Givecamp
Our entire team of software developers at Mutually Human participated last weekend in GRGivecamp , which is a weekend initiative to build sites for non-profit organizations with the most need for these services.
John, Zach, Mark, Auvi and Craig were among more than 90 other volunteers doing work for 23 non-profits at the downtown YMCA. The efforts of our humans alone equaled nearly $24,000 in services hours!
By the end of the weekend, the five of us had completed four web sites that meet the specific needs of their operators. John was one of seven organizers for the event. He worked through the weekend to develop the first-ever web site for Grand Rapids Sister Cities International.
Mark worked on a site for Haiti Needs You , which recruits health professionals to fly to the impoverished country and donate their services. Auvi and Craig completed a site for C-Snip , an organization that seeks to reduce the costs to neuter and spay pets.
Read the rest - 0 commentsLocal Prototype JS API Docs
I like to have useful information accessible to me at a moment’s notice. I’m a fan of Sam Stephenson’s Prototype library and I really like the layout and usefulness of their API page, http://api.prototypejs.org . As much as I love going out to the internets to get the latest documentation I love it available locally. Here’s a short step by step on how to build Prototype’s docs locally.
Read the rest - 0 commentsFinding unmerged commits with git-unmerged
git-unmerged is a tool that helps you find commits that have not been merged into an upstream branch like master or origin/master. It displays useful information in color to make it easy to identify the missing commits. To make it easier on us, it provides a brief overview, a legend, and a breakdown of each branch. Here’s a sample run:
May 4, 2009 – In early April, Mutually Human Software, a company that writes people-friendly custom Web applications, and People Design, a firm that helps companies develop innovative customer experiences, began sharing a collaborative workspace in Grand Rapids’ historic Brassworks Building on Monroe Avenue NW. The companies officially became office mates on April 7.
Read the rest - 0 commentsJSConf2009 in review
I just got back from JSConf2009 and it was absolutely amazing. If I hadn’t known it was the first JavaScript conference I probably would not have guessed it. The conference’s agenda, venue, and food were very well put together. Though I did not attend the after parties, I heard they were great as well. It’s hard to think about after parties when you’ve just sat through a day of amazing presentations and conversation. The inspiration meter was off the charts, rendering nightly coding irresistible and unavoidable. At the end of it all, three technologies really got my blood pumping: CouchDB, PhoneGap, and Joyent’s JavaScript Platform as a Service (PaaS).
Read the rest - 0 commentsBDD with Rails Class
Behaviour Driven Development (BDD) shifts your thinking about how to write software. Rather than starting with the pieces that make up your application and building from the inside-out, you start with identifying the behaviour of the application and build from the outside-in. It was a giant “Aha!” moment in my journey as a developer. Much like Ruby was. Much like TDD was. Much like Rails was. I believe it will be just as groundbreaking for your journey as well.
So I’ve teamed up with the guys at Collective Idea to bring you an outstanding course on BDD in the context of a Rails app. During the class you’ll learn what BDD is and isn’t, how it works, and how to use it to write better Rails apps. You can find out more about the course at its official home: http://ideafoundry.info/behavior-driven-development.
It’s going to be an inspiring and eye-opening week of learning and sharing. I hope to see you there!
Terminal: a better way to navigate using ad
Several years and thousands of “cd some/path” later I finally decided to stop manually traversing directories. I will never get back those lost keystrokes.
Over the years I’ve used my own aliases in .profile (or .bashrc) as well as bash functions, perl scripts, etc produced by coworkers or random people on the internet to allow me to more easily navigate to a directory. At its heart the most basic way is a simple bash alias:
alias somedir='cd somedir' |
Reflecting on Lane Halley's talk at XPWM
Software development is a journey. No two paths are the same, and the journeys we each take rarely stay on the course we thought they would. Last night I was inspired by Lane Halley’s talk at the local XPWM about the great combination of User Experience (UE) and Agile. Although her journey and mine have been very different, we’ve arrived at similar places.
Read the rest - 0 comments