Monday, January 25, 2016

The Vertical Slice



If your "agile transformation" is introducing a replacement hierarchy for your existing one, you need to be asking some tough questions.

Before

After



Take a look at an approach that comes from the software development community.... "The Vertical Slice".


Mike Caspar
Passionate About Agile



References:



















Monday, January 18, 2016

The Idea Folder as feedback from Leadership Information Radiators of Sprint Goals

I have been working with a leadership team recently on the concept of transparency and what this really could mean to them as an organization.

The idea that transparency might be two-way has been an eye opening experience for them. Here's a link to an old post about transparency, should you be interested.

As a first step to improving transparency, they are leading by example....

The Leadership Scrum Team is publishing their two week Sprint Goal on an information radiator at all locations for all to see. Awesome. 

They have already learned that once a year or once a quarter feedback loops are far too slow for a modern organization. 

A positive feedback loop for ideas and innovation to help the Leadership Team to create (and adjust) the Organizational Product Backlog Items is needed. This allows the leadership team to serve their organization rather than direct it.

A few years back, I came up with an idea that could help leadership teams find the courage to provide Information Radiators that include a feedback mechanism. 

Instead of asking for "Feedback" or "Complaints", or "Impediments", they simply put an "IDEAS" slot on their information radiators. 

If the leadership team is effectively using Scrum, there will already be active feedback after every sprint from internal and/or external stakeholders during their Sprint Review.




Many people feel good about enhancing and improving good ideas. By making what you are working on visible, you give others the opportunity to join you in your quest.

Something I have seen on an actual card once (modified for privacy of course)... 

That's a great story from the leadership team this Sprint.. Imagine if you also did _______.  Now, that would be great!

By putting the feedback cards next to specific work being done, it creates an implied reference between ideas and what is being radiated. Others might use it for other things. Hey... that's OK too.

I am not advocating that all "problem solving" go away. Regular inspect and adapt cycles are always important.

In this case, it might be more appropriate for you to invest energy on enhancing positive information and ideas coming to you every two weeks!

If you are on a leadership team working on transparency, I'll leave you with a final thought...

In a world where so many negative feedback loops already exist, consider how a positive feedback loop could help to spur innovation and creativity and put you in a position where you can improve your ability to serve.

Mike Caspar


Monday, December 21, 2015

An awesome message about Blueprint Education to end the year.

As some of you know, I have been helping out the amazing folks at Blueprint Education in Arizona.  They have been making some changes to their culture as a follow-on to a previous introduction to new ideas introduced by John Miller from Agile Classrooms.

I'm getting ready to relax until the end of the year and saw this message in my FB feed this morning and thought..... It would be really cool to share this to inspire others to perhaps try something new in 2016!  

The follow dialogue has some questions about Blueprint Education and then the following statement from Mark...
"Blueprint education is a non profit. Our mission is to inspire students to make better choices and be champions of their own learning. I'm the CEO. We apply the principles of Agile to elementary and high school education."


Mark French FB Feed
(c) Blueprint Education. 2015

For me at least, this is one of the best messages I could have read all year.

If what you read in some of the following posts inspires you, reach out to John Miller or Mark French. I know that either of them would be more than pleased to share what they have been up to or help you learn more about bringing Agile Values and Principles to your education system.

There are some exciting things happening next year at Blueprint and I can't wait to start sharing those! Stay tuned.

For now.. Here is a selection of previous posts to get you up to speed.....


References....

Agile Classrooms

Blueprint Education

John Miller

Mark French


Thursday, December 17, 2015

Mental Model Culture Diagrams

Sometimes the coolest things come when least expected.....

Saravana Bharathi (@AgileKarma) shared the link at the bottom of this message today over at FB.  Thanks !!

Although I am not a fan of the stereotyping in the post...

The picture representations of complex mental thought differences are intriguing and simple to understand.

Imagine if we could facilitate discussions toward commonality using this type of diagram?

I wonder if one could facilitate a team to draw their own diagrams?

I wonder if one could facilitate separate groups in an enterprise to draw their own diagrams to find commonality or places for discussion.

One thing is for certain (to me at least).  The simple diagrams convey a strong message without the need for a large, written report.  

I do have some personal reservations about this accidentally turning into a "categorize everybody into the same group" type thing. 

I do think if the diagrams are created by people as self-representations, stereotyping might not happen.

I'm looking forward to trying something around this idea out.

If anyone tries these diagrams out before me, please let myself (and the community) know how it works out! 

Here's the link.. Enjoy...

http://qz.com/567479/the-cultural-differences-between-east-and-west-according-to-one-artist/

To reach out to Saravana, you could find him here...


https://twitter.com/AgileKarma


https://www.facebook.com/saravana.bharathi


Tuesday, December 15, 2015

Tech Post: Docker, PhantomJS, Selenium on a Jenkins host for pre-production website testing

I recently spent days trying to solve a technical problem when attempting to auto-test a website on my Jenkins server combined with Selenium, Selenium Grid, or PhantomJS on the same machine. 

I had previously been using a different approach for my automated testing and thought I'd do something new for this site :->


I figured out the solution and decided I would share it here should someone find themselves in the same or similar situation.

These instructions apply to Jenkins but will likely also apply for Bamboo, TeamCity or your CI server of choice.

Scenario:  

  • When testing on a developer workstation, the site is started up and tested at localhost: (127.0.0.1).

  • A Jenkins server which runs all tests locally instead of on slaves (the same problem would likely occur on a slave).

  • On a check-in of code, load the site up at localhost on the Jenkins server (as you would expect)

  • Attempt to run Selenium or PhantomJS in a Docker container......

-- FAIL --

  • Spent days researching "headless" build capabilities
  • Spent even more days reading about countless issues with dockerized containers working with Selenium. 

As it turns out, the problem is not related to Docker and Firewalls but the nature of containers.  

The easy (short) answer.....

If you set your tests to run at localhost: or 127.0.0.1, they will work no problems on a developer machine, but when the Dockerized container tries to reach localhost it will look to it's own localhost versus the CI server's localhost... 

Change the tests to use the local IP address of the host instead. I used an environment variable to do this on the host. 

The following sample makes some assumptions (modify as needed)

  • Jenkins Server
  • NodeJS
  • Docker
  • PhamtomJS (the same holds true for Docker versions of Selenium)

Docker:

docker run -d -t -p 4444:4444 --name phantom servebox/phantomjs phantomjs \
--webdriver=127.0.0.1:4444

To see the running container....

docker ps should show you something like.....

aa71e19beecd        servebox/phantomjs   "phantomjs --webdrive"   2 minutes ago       Up Less than a second   0.0.0.0:4444->4444/tcp   phantom

You can now start and stop the container by executing either  (making it easy to control from Jenkins)

docker stop phantom
docker start phantom

Environment Variable Setup (linux)

export TEST_IP_ADDRESS="x.x.x.x" (replace with host address)



NodeJS: (helper.js)


global.testPort = 9005;
var url = "http://" + process.env.TEST_IP_ADDRESS + ":" + testPort;
global.url = url;

NodeJS: (mocha test) 


var webdriver = require('selenium-webdriver');
var expect = require('chai').expect;

var driver = new webdriver.Builder().usingServer('http://127.0.0.1:4444/wd/hub').withCapabilities({
    'browserName': 'phantomjs'}).build();

describe('Click On CEC Logo should bring us to the SA CEC Page', function () {

    "use strict";
    it('should work', function (done) {

        driver.get(url);  //set in helper.js as global
        driver.findElement(webdriver.By.id('CECLink'))
                .then(function () {
                    return driver.findElement(webdriver.By.id('CECLink')).getAttribute("href");                })
                .then(function (linkString) {
                    expect(linkString).equals('https://www.scrumalliance.org/certifications/cec-certification');                    driver.quit();                })
                .then(function () {
                    done();                });    });});
(code not perfectly formatted in this blog post).


Jenkins:

Create a job step to execute a shell with the following commands....
(where x.x.x.x. is the ip address where the LOCAL TESTABLE WEB PAGE is located in pre-production).

docker start phantom
export TEST_IP_ADDRESS="x.x.x.x"      
npm run jenkins-mocha 
docker stop phantom


What Happens:


  • Jenkins launches the docker container called phantom that was previously defined
  • Docker starts up an instance of the phantomjs webdriver at port 4444 on the localhost (in a container)
  • NodeJS starts up the website locally (code not shown in this example) . This site starts at IP address x.x.x.x
  • NodeJS (mocha) loads Webdriver and requests PhantomJS from the Container
  • The Container loads PhantomJS and gives a session for Webdriver
  • NodeJS makes requests to x.x.x.x (instead of localhost)
  • When the tests are complete, Jenkins stops the phantom container


Saturday, November 28, 2015

Empowerment Retro


This week I had the pleasure if sitting in to observe a CSM (Certified ScrumMaster®) class put on by Mishkin Berteig and David Sabine from Berteig Consulting Inc. in Toronto. 

I was there primarily to provide some input on a specific topic for David. During the first day, I was asked if I'd be willing to come up with a talk for the second day on a topic that kept coming up during conversations... Fears around empowerment of self-organizing teams.


I remembered, there is no better way to share ideas than to let them come from the audience themselves. I decided.... Rather than a talk, let's get the class (all aspiring CSMs) to provide the learning for themselves.

I spent that evening and the following morning on the train coming up with a session for this discussion. I call it the Empowerment Retro.

Several people took pictures and mentioned that for them it would be a game changer.  I am happy with initial results.  Next time, I will experiment with a better way of explaining what I am looking for as an improvement.

There are some people who might make arguments about teams being self-empowered vs. empowered. I acknowledge and accept that as an interesting topic, but I'll stay focused on the assumption that organizations empower for now to facilitate this discussion.


This will be the first publish of the "Empowerment Retro".

In general, a Scrum Master will inevitably find themselves in a conversation about Empowerment.  As many of the people in the class were soon going to find themselves in the Scrum Master role, I felt it was a good idea to give them some knowledge and ability to handle this discussion when it comes up. They also had the benefit of more than 30 other smart minds in the class they could learn from.

Here we go....

The amount of empowerment will be different based in every company and culture. 

There are two commonalities in discussions about Empowerment (and some of the fears associated with the topic).


FROM:  

The team(s) receiving a 
Level of Empowerment from the Organization.

TO:

The team(s) provides certain things to the Organization
as a result of this empowerment.


---
It is a symbiotic relationship
 (one that benefits both parties)
---


I gave a short story showing an example of each from previous real-life situations from coaching engagements.

I discussed the idea that a healthy environment likely has some embodiment of both sides of the TO / FROM equation.

The class was asked to think of something that needs to be there in the TO as well as something that needs to be there in the FROM for a healthy approach to team based work. 

Each person brought up and put their stickies on the chart.

Then, a person from the class volunteered to facilitate a discussion about the results. 

It was awesome to see a full set of ideas for both sides of the discussion. 

For me, it was very exciting to see a future Scrum Master practice facilitation in front of the class (something they would be doing often in their new role).

The resulting chart gave some interesting ideas for the attendees.  Here are some insights that were shared with me privately during a future break....

  • (after taking a picture).. "This for me is the money shot to show my boss.  Although these were very different people from different companies and cultures, they had very similar ideas about a large number of topics (a way to create common understanding between each other) and it was quick and easy to do.  It will help me prove to my boss that different people collaborating together can create great ideas and insight"  (paraphrased). 

  •  "I never realized that empowerment is not just one way or that we should maybe talk about this openly once in a while". (paraphrased) 

  • "I'm glad I have some ideas of where first steps can come from for this discussion to move forward in my company"(paraphrased)."

Here is the photo from the class... 

Empowerment Retro 
by 
Mike Caspar is licensed  under a

Creative Commons Attribution 4.0 International License.
Creative Commons Licence


I appreciate that you can't see the specific ideas in this picture. That's fine by me.  

The idea is for your team or company to come up with their own :->

Please feel free to share your results with me when you try this. I would be curious to hear back reports of success or failure with the tool.

Mishkin. Thanks for the reminder to share this idea with others in the community as quickly as possible :->


Mike Caspar
Passionate About Agile

References:

Berteig Consulting Inc. - http://www.berteigconsulting.com


CSM (Certified Scrum Master- https://www.scrumalliance.org




Friday, November 20, 2015

A quick thought about culture and Onboarding.


Here's a thought ...

Onboarding may explain the official culture.
Actual culture is experienced at the first visit to the water cooler or a team meeting.



Water dispenser by Kal Hendry

If you have some thoughts
....

What might you do differently during a organizational change assessment?

References:

Onboarding - https://en.wikipedia.org/wiki/Onboarding