Skip to content

Feed aggregator

New download – SAFe in 8 Pictures

Agile Product Owner - Wed, 09/02/2015 - 15:13

Hello everyone,

SAFe Foundations has been the cornerstone PowerPoint presentation for you to introduce the Scaled Agile Framework in your enterprise. Now there is a new, lightweight tool for introducing: (1) the levels, (2) the people, (3) the backlogs, (4) the cadence, (5) code quality, (6) relentless improvement, (7) economic prioritization, and (8) the full Big Picture.

The idea for this deck came about last year when I was presenting SAFe to an executive team. Three slides into my 35-slide deck, they asked me to turn off the projector. Standing in front of a 3 x 5 foot image of the Big Picture, we spent the remaining two hours discussing different dimensions of SAFe: the levels, the people, the backlogs…  The dynamic approach resonated.  I began using this same simple approach again and again.

SAFe in 8 Pictures deck

There are no bullets: only 8 pictures and 16 words. The graphical nature of “SAFe in 8 Pictures” allows you to tailor your talk to any audience. Behind it are robust speaker notes to get you started quickly. From there, you can continue building your knowledge with other content from this site.

Download SAFe in 8 Pictures 



Categories: Blogs

RabbitMQ – Best Practices For Designing Exchanges, Queues And Bindings?

Derick Bailey - new ThoughtStream - Wed, 09/02/2015 - 13:30

A question was asked on StackOverflow about best practices for RabbitMQ exchanges, queues and bindings. While this question was technically “off topic” for StackOverflow, I answered it anyways because it’s a common set of questions and offers insight in to a few points of confusion when starting out with RabbitMQ. 

Ex q bind

One Exchange, Or Many?

The core parts of the question include:

I’am looking for best practices for the design of the system regarding topics/queues etc. One option would be to create a message queue for every single event which can occur in our system, for example:


I think it is not the right approach to create hundreds of message queues, isn’t it?

Isn’t it better to just have something like “user-service-notifications” as one queue and then send all notifications to that queue? I would still like to register listeners just to a subset of all events, so how to solve that?

My second questions: If I want to listen on a queue which was not created before, I will get an exception in RabbitMQ. I know I can “declare” a queue with the AmqpAdmin, but should I do this for every queue of my hundreds in every single microservice, as it always can happen that the queue was not created so far?

It’s a difficult set of questions to answer, but also a common set. There are a lot of options and possibilities for which type of exchange is used, and how the bindings are configured for routing messages. 

One Or Many Exchanges?

I generally find it is best to have exchanges grouped by object type / exchange type combinations. In the example of user events, you could do a number of different things depending on what your system needs.

Exchange Per Event

In one scenario, it might make sense to have an exchange per event as you’ve listed. you could create the following exchanges

| exchange     | type   |
| user.deleted | fanout |
| user.created | fanout |
| user.updated | fanout |

This would fit the pub/sub pattern of broadcasting events to any listeners, with no concern for what is listening.

With this setup, any queue that you bind to any of these exchanges will receive all messages that are published to the exchange. this is great for pub/sub and some other scenarios, but it might not be what you want all the time since you won’t be able to filter messages for specific consumers without creating a new exchange, queue and binding.

Exchange Per Object Type

In another scenario, you might find that there are too many exchanges being created because there are too many events. you may also want to combine the exchange for user events and user commands. this could be done with a direct or topic exchange:

| exchange     | type   |
| user         | topic  |

With a setup like this, you can use routing keys to publish specific messages to specific queues. For example, you could publish user.event.created as a routing key and have it route with a specific queue for a specific consumer.

| exchange     | type   | routing key        | queue              |
| user         | topic  | user.event.created | user-created-queue |
| user         | topic  | user.event.updated | user-updated-queue |
| user         | topic  | user.event.deleted | user-deleted-queue |
| user         | topic  | user.cmd.create    | user-create-queue  |

With this scenario, you end up with a single exchange and routing keys are used to distribute the message to the appropriate queue. notice that i also included a “create command” routing key and queue here. this illustrates how you could combine patterns through.

Registering Messages For Specific Consumers

Later in the question set, this person asks:

I would still like to register listeners just to a subset of all events, so how to solve that?

If you need specific messages to go to specific consumers, you do this through the routing and bindings. Trying to filter once the message is in the queue, is an anti-pattern in RabbitMQ.

This leaves you with options for how you would set up the pre-filtering of messages, using routing.

By using a fanout exchange, you would create queues and bindings for the specific events you want to listen to. each consumer would create it’s own queue and binding.

By using a topic exchange, you could set up routing keys to send specific messages to the queue you want, including all events with a binding like This binding uses a wildcard to send all events to the queue for this binding. 

There are still other options and configurations, of course. Without knowing the specifics of a given scenario, it is hard to give a solid answer.

When To Declare Queues And Bindings

The last question in this set deals with when to create your queues.

If I want to listen on a queue which was not created before, I will get an exception in RabbitMQ. I know I can “declare” a queue with the AmqpAdmin, but should I do this for every queue of my hundreds in every single microservice, as it always can happen that the queue was not created so far?

There are two ways to do this:

  1. Pre-define the exchanges, queues and bindings
  2. Define them at runtime
Pre-Define Exchanges

In my experience, pre-defining exchanges queues and bindings becomes difficult. RabbitMQ and the AMQP specification allow and often require configuration to be done through the communication protocol itself.

You don’t need a third party application to configuration the layout of your RabbitMQ installation. You can use the Web Administration plugin for this if you want. But, in my experience, this leads to problems with large applications. You will run in to a scenario where the queue name and binding cannot be pre-determined.

There is some use for this, though. There will be times when you need an exchange to always be around or you want to do some quick testing to make sure things are set up correctly. The Web Admin plugin is very useful, here.

Dynamically Defined Exchanges

Because of the way AMQP works, and the need to define queues and bindings dynamically, I find it best to have each message consumer declare the queues and bindings it needs before trying to attach to it. This can be done when the application instance starts up, or you can wait until the queue is needed. Again, this depends on what your application needs.

I tend to prefer to wait until the application needs it… but there are some cases where the queue and binding should be there before the code runs, to ensure all possible messages are caught. In that scenario, having the queues pre-defined at application startup can help.

Learn Through Others’ Experiences

I know the answers I’m providing are rather vague and full of options, rather than real answers. Ultimately, there is no right or wrong answer for which exchange type and configuration to use without knowing the specifics of each system’s needs.

Truthfully, you could use any exchange type for just about any purpose. There are tradeoffs with each one, and that’s why each application will need to be examined closely to understand which one is correct.

If you’re interested in learning more about the tradeoffs and how to make decisions around these questions, I’ve written a small eBook that covers these topics. This book takes a rather unique perspective of telling stories to addresses many of these questions, though sometimes indirectly. 

Step inside the mind of another developers and learn how to make decisions about RabbitMQ Structure and Layout.

Categories: Blogs

Agile in the Real Trenches

TV Agile - Wed, 09/02/2015 - 13:22
The Agile principle of “trusting work to the self-organizing, self-managing teams” is radically different to the military doctrine of “strict top-down hierarchy, command & control”. Yet almost a 100 years ago this idea was tried out on many battlefields and the consequences are still felt today. Video producer:
Categories: Blogs

The Essential Skill of a Good Product Owner

Scrum Expert - Wed, 09/02/2015 - 13:17
There are many books and trainings that describe what good Product Owner should be in Scrum team. I have been a Product Owner for more than 5 years now. During this time I learned that there is only one skill that is essential to good Product Owner. I am ready to share it with you together with few “stories from the trenches” that will illustrate it.Video producer:
Categories: Communities

MSBuild SonarQube Runner now available on Visual Studio Online

Sonar - Wed, 09/02/2015 - 09:13

The MSBuild SonarQube Runner TFS 2015 Build Tasks are now available out of the box on Visual Studio Online, and even on Hosted Build Agents! This means that SonarQube analysis can now be enabled in a few clicks on any Visual Studio Online project without having to install anything!

I could tell you more, but Jean-Marc Prieur from Microsoft has already done such a beautiful job that you should just read what he wrote in his Visual Studio ALM blog post.

Categories: Open Source

The invite for speakers to present at the Ottawa Gatineau Agile Tour 2015 is officially out!

Agile Ottawa - Tue, 09/01/2015 - 22:13
The 2015 Gatineau Ottawa Agile Tour event’s organizing committee is working hard to prepare the upcoming conference on November 23rd. We’re inviting anyone with Agile experience to propose a session for the conference. The submission proposal deadline is Sept 30. … Continue reading →
Categories: Communities

Insight from a new Scrum Master

Learn more about transforming people, process and culture with the Real Agility Program

I recently had the pleasure of doing some coaching with someone who is new to Scrum and has taking on the role of the Scrum Master as part of a team of teachers.

Edwin Portfillo - Scrum MasterEdwin Portillo  – (c) Copyright Edwin Portillo, 2015

Last week, I unexpectedly received this email from him. I wanted to share it as a thought for other new Scrum Masters in the making…..

I’m beginning to understand that being a SM involves me not coercing people into following a specific task but guiding them into  deciding as a group what must be done for the team to move efficiently.

“We never want to be in a position where 100% of the work is 80% done.

On the other hand, if 80% of the work is 100% done, you have a qualified success.”

 Edwin Portillo
High School teacher (Scrum Master – The Teaching Team)
Hope High School / Blueprint Education

As you can see, Edwin has come a long way already in his understanding of the role. Please feel free to share your Positive comments with Edwin if you wish.  I’m sure he’ll appreciate it :->

I’ll start…  Thanks Edwin for taking the time to really think about how your actions should impact your team. Thank you for sharing your ideas with new Scrum Masters in such a simple and effective way.

Mike Caspar
Passionate About Agile


Scrum –
Hope High School –
Blueprint Education –

Learn more about our Scrum and Agile training sessions on WorldMindware.comPlease share!

The post Insight from a new Scrum Master appeared first on Agile Advice.

Categories: Blogs

Personal Agility Canvas

Leading Agile - Mike Cottmeyer - Tue, 09/01/2015 - 17:00


Personal Agility Canvas

personal agility canvas


A few years ago I was at an Agile conference standing around with a bunch of CSTs and CSCs and one of the CSTs said:

“The other day in class, this guy asked me if he was Agile enough… can you believe that? What a stupid question. Who would ask something like that?”

Um… me… all the time. Even though I have now been working in Agile for almost as long as I worked in waterfall, I find myself often worrying that someone is going to find me out, or that my waterfall practices are so deeply engrained that  I can’t even tell when they raise their ugly heads and start messing with Agile.

I am always concerned about being agile and getting better through practice. The Personal Agility Canvas is one attempt to help address some of my concerns. What follows is a written explanation of what it is, examples for use and how to apply it in your own meaningful way.

Click here to download the Personal Agility Canvas

Just Do It…

Where you start working on the Personal Agility Canvas does not actually matter. The ordering used below is based solely on how I normally go through each section. The main thing is just to start. I’ve personally found that it works much better when I avoid overthinking my ideas and begin filling the canvas with whatever comes to mind.

Value Proposition

This is the box I usually start with when I am filling out the canvas. What goes in here should explain how you as an individual (not your team/group/department/company) add value. How would you respond if your boss was to lean his elbow over the wall of your cubicle tomorrow, coffee mug in hand, and say:
lumberg<Lumberg voice: “on”>
“Uh, yea, so, we’re Agile now and uh… we’re not really sure why we should have you keep working here so, um, you can go ahead and get set up in the basement next to Milton.”</Lumberg>

The question is, within your Agile(ish) organization, what unique value proposition do YOU (as an individual) bring to the table? What is it about you that makes you valuable to a company that has adopted (or is working on adopting) Agile?

Given that you want to change some aspect of yourself to become more Agile
When you are this more Agile you
Then how will you be different from who you are now?

When you evolve into this new version of you, how will this Agile version of you be able to add value to the organization? Or, how will your adoption of a more Agile approach better support the organization?

This can be a tough one. Most of us have spent time thinking about the value our company, our department, or our team adds, but we rarely take the time to consider the question as if we were re-interviewing for the job we already hold. And if you get really stuck, just ask yourself WWGHD (What Would Gene Hackman Do) “I tried to imagine a fella smarter than myself. Then I tried to think, “what would he do?” ~ Joe Moore from The Heist

So, try to imagine a more Agile version of you and ask how he/she would respond to the question, what value do I actually add here?

I come from a strong project management background and I’ve spent half my career learning how to work with Agile. I spent years fighting with Agile before it really made sense to me and the work I do. That offers me a somewhat unique perspective on adopting Agile. I see the workspace through an Agile point of view, but I also have a great deal of empathy for those struggling with the transition. My own personal transition was very difficult and that has helped me learn some things that I can use to help others get their heads (and hearts) out of the waterfall and into a mindset that is more in sync with the core tenets behind Agile.


Making the transition to Agile is not easy for an organization, or a department. And it is not easy for an individual either. If you are going to go down this path, you are going to have to expect some tough challenges. The process change is not easy, but it is nothing compared to the cultural and value system overhaul that it requires. In my experience, this holds true for those who REALLY want Agile to be more like the traditional way of working AND for those who read a book, drank all the kool-aid and found what they believe is the One True Way.

Change is not easy, and you are going to need a reason to keep going when things go all Sharknado on you. It would be easy to brush this one off and say your goal is to keep your job and that your company has mandated that everyone switch, but chances are, you’ll find it much easier to stick with this during the rough spots if you can come up with a specific thing you are trying to accomplish for yourself. So, what is your personal goal? Why do you want to go through this change? What’s the win for you (personally)?

  • Do you have a specific goal for transitioning to Agile?
  • How will you define/measure success?
  • What indicators will let you know your goals have been achieved?

You may want to work in a more creative environment, or with a closely knit team that you can collaborate with. You may want to be part of a team that can deliver consistently. My favorite answer to this question came from someone who attended a workshop I ran on using the Personal Agility Canvas. He was an old school PM who was working with a team that had started using Scrum. He was struggling not just with a new way of working but with the fact that there was a whole new vocabulary he didn’t understand. His response “I just want to feel less stupid when I talk to the Agile people.”


One thing about setting goals, they need to be attainable. This is not the list of stuff you’d ask the Genie for after you freed him/her from the bottle. Your goals need to be few in number and they need to be realistically achievable in a relatively short time-frame. If there are too many, they are too grandiose or they are open ended, you may become discouraged and they will start working against you. A big part of this is not just achieving the goals, but developing the momentum you’ll need to keep working on transforming yourself.


Each of us has things about us that will propel us forward with the change that Agile brings. It is important to identify the strengths that you have because it is easy to get discouraged about making the switch. If you can identify a few things about yourself, how you work, how you think, etc., you can find a way to leverage these strengths to help you succeed with the goals you are setting for yourself.

  • What about you, your mindset, and/or your level of discipline will help you during your journey to a more Agile you?
  • What abilities, behaviors, personality traits, or habits will you be able to leverage to strengthen your successful transition?
  • What experiences and/or training have you had that will serve you during your transition to a more Agile way of working?

Maybe you are someone who has experienced the strength of a good team first hand. Or you are someone who is just naturally open to experimenting with trying new things to see if they work better for you. I have a lot of experience in working with both Agile and traditional approaches of work. This experience has allowed me to see value in both ways of working and has led me to a point where I am less focused on process than I am on results (cough…outcomes).

I consider this to be a strength for two reasons. The first is that while I see value in learning new processes/approaches to work, I tend to not get so hung up on the idea of doing it “right”. It has also left me with a healthy skepticism. I take an empirical approach to how the different tools/methods/processes work. I do tend to start out trying to be disciplined about using a new approach, but trial and error wins the day in the end.

Interactions with Others

How we interact with others is a big part of the cultural change that comes with moving to Agile. This can relate to how we communicate with people, our ability to trust, our openness to differences of opinion and our ability to be empathetic to others who may be further along, or not, than we are with making this change.

If you come from a traditional background, believing that you can trust others to make good choices in the work they do and in solving problems for the customer can prove to be difficult. A lot of this may just be about being mindful of how we talk to people and how we react to the possibility of failure. No one likes to fail, but it is important to remember that each failure creates an opportunity to inspect and adapt and succeed next time.

Consider the way you interact with others, how you lead and are led, how you communicate and how you think and feel about the people you work with.

  • Are you practicing transparency?
  • Are you willing and able to trust others on your team?
  • Is this demonstrated through how you interact with people?
  • Do you need to control things others do to ensure they are done right?

In the 1960’s, Douglas McGregor was working at MIT’s Sloan School of Management and he came up with “Theory X and Theory Y”. Basically, Theory Y assumes that if we give people what they need and the freedom to make a choice, they will work hard and do good things. Theory X, (not so much with the Agile), believes that if we do not offer the carrot and the stick (or often, just the stick), that people are inherently self-serving and lazy. Agile is much more in the Theory Y camp. One thing I had to recognize when filling this out was that while I REALLY want to be Theory Y, I have had a lot of work experience that pull me more into the Theory X camp. The way this plays out in my interactions is that if I am not careful I can easily slip into the “just do this because” mindset.


This is probably the easiest of all the boxes to complete. Consider your working environment, the tools you have at your disposal. In working towards a more Agile approach, do you have everything you need to succeed?

  • Are there things about your working environment that aid or impede your ability to be more Agile
  • What could (should) be changed to better support your transition to Agile?
  • Are there things in play that could be amplified to enhance your personal adoption of Agile?

If your team is not collocated but are in the same building, maybe you want a space where you can all work together. If your team is distributed, maybe you need video conferencing for Daily Standups or a few big monitors to hang up so everyone can always see the task board. Or maybe you just need a rolling white board you can all share.

I use Personal Kanban to manage my work. When I am home and have my whiteboard, it works great. But, I travel a lot and I can’t bring the whiteboard on the plane. Yes, there are plenty of electronic tools out there, but most of them require internet access and they are no good to me at 30,000 feet. While solving this is still a work in progress for me, it is something that I know I need.

Also, because I love what I do, I have a tendency to want to say “HELL YES!” to every opportunity that comes my way. Work is important to me, but my family is much more important. I have learned the hard way that I need help with remembering to protect the time I have to be at home and fully present with my wife and daughter.

The Mark Inside

In the book “The Ticket That Exploded” William Burroughs said “ Husters of the world, there is one mark you cannot beat: The Mark Inside”. Burroughs was referring to the fact that each of us, like it or not, is our own impediment. No matter how hard we try, we can never truly see ourselves outside of the narrative we create for ourselves about our own life. This is true in work, and it is true of our adoption of Agile. While it may not be something any of us can fully overcome, it is something we must be mindful of, always seeking understanding. Part of the relentless pursuit of continuous improvement that is inherent in Agile, is always trying to see the ways in which we are keeping ourselves from getting better. (Having an accountability partner can help a lot here see the end of this post.) In what ways are YOU the impediment to achieving your goals for a personal adoption of Agile?

  • How trusting or skeptical are you in the “promise” of Agile?
  • How disciplined are you in your practice of Agile?
  • Are you hedging your bets because of “how things work in the real world”?

The trick with this is to try to develop awareness without judgment. For many, this is much harder than it sounds. If you have established goals for adopting Agile and you aren’t meeting them, are you able to see why? Maybe the goals were not realistic, maybe there are other factors that are contributing to your situation and you need to take those into account and reset. What you are working for here is a better understanding of how you are approaching the changes you are trying to make and learning more about yourself along the way.

I believe that once you learn traditional project management, it changes the way you look at the world. I am a project manager and I spent a lot of time refining my ability to see things that way. But, now I work in Agile. While I cannot un-learn traditional project management, I know that I need to pause for a few seconds to let the Agile filters kick in before I speak. The healthy skepticism that I listed earlier as a strength is also something that factors in here. I need personally validated proof in order to truly believe that changing how I work is going to help. While this is a strength, it also leads me to being a bit reluctant to just jumping on board with new ideas.

Desired Changes

What are some possible areas of focus where you may want to introduce a change that will improve your ability to adopt Agile on a personal level?

  • Behavior towards others
  • Speech
  • Mindset
  • Openness and Transparency
  • Knowledge and experience gaps
  • Willingness to Trust

Because of my experience working as a traditional PM, there are still language issues to be aware of – like referring to the humans who do the work as “resources”. I also have some gaps in the things I know about Agile that I continue to work on. And I know, that despite my best efforts, I still struggle with trusting that left to their own devices, and provided with the things they need, that people will do good things. I’ve gotten much better at this, but I still periodically run across situations that drag me back into the Theory X camp.

I have found that in working on this section of the canvas there are two things to consider. The first is to try avoid going from desired changes to negative self-judgment. The second is to keep this list reasonable. It is easy to come up with a bunch of stuff we all need to work on, but trying to maintain a list of things you can actually achieve in a relatively short time frame can be challenging. Be clear and keep it simple.


Transitioning to Agile is not an easy thing. There may be a lot you have to let go of and many of those things could be exactly what got you to where you are today. Change is scary and it is normal to be more worried about the devil you don’t know. So what about the possibility of Agile as a cause for anxiety or stress?

  • Does the possibility of letting go of the things you have learned to do in work give you some angst?
  • Do you worry that adopting Agile might have a negative impact when you start explaining to management you they aren’t getting a Gantt chart and that despite your PM Certification , you can’t actually be trusted to accurately predict the future?
  • Are you seeing roadblocks or are you so deeply under the sway of responding to every impossible request by saying “YES” that you are stuck in the “Yeah, well, Agile sounds cool, but that will never work at OUR company because WE’RE special. “

When I first started working with people who were Agile, I was always scared that I was going to be caught or found out and exposed as a traditional PM.  I dealt with this by trying to overcompensate for my traditional background. This completely worked against me.

Actions Needed and Accountability Partnerships

Step 1: Take few minutes to review your Personal Agility Canvas. Come up with a list of 3 to 5 actions you believe you could accomplish in a relatively short time frame. These should be things you can measure and feel comfortable committing to and they should be focused on helping you reach whatever you are aiming for in terms of becoming a more Agile version of you.

Step 2: Write each action out, set a realistic deadline for each of the items and figure out how you will measure success, or define done for each of these items.

Step 3: Check your action plan against the goals you’ve set. Will the actions help you get there? If not, why and do you need to change one or the other.

Step 4: Go find an Accountability Partner. My suggestion is that the partner you find should be someone you trust to give you honest feedback and will be willing to call you out on things or challenge you when things seem off.

Step 5: Share your list of actions with your Accountability Partner. You don’t have to share anything on the canvas but the Action box. The rest may be fairly personal. When you share the actions, make sure to let your partner know about the deadlines you’ve set and how you will measure performance towards those goals. The job of the Accountability Partner is to check in with you if they have not heard back by the time the established deadlines hit. If you don’t hit them, that is between you and your partner, but they should be willing to challenge you on why if the goals are not met.

Establishing an Accountability Partner serves two purposes. The first is that your partner should be willing and able to serve as a sort of Personal Agility Trainer for you (like you’ve had in a gym). The second reason is a but dysfunctional but I have found that the guilt that comes from knowing someone will be checking up on me is a strong motivator.

Once you and your partner reach a shared understanding about their role, your goals and how you plan to achieve them, then it is time to get to work. You should expect that sometimes you’ll succeed with these things, sometimes, not so much. The trick is to continually inspect and adapt along the way. Should you decide to use the canvas, it would be great if you returned to this post and shared your experiences with the canvas.

Click here to download the Personal Agility Canvas

The post Personal Agility Canvas appeared first on LeadingAgile.

Categories: Blogs

Agile Open California South, Irvine, USA, September 10-11 2015

Scrum Expert - Tue, 09/01/2015 - 16:12
Agile Open California South is two-day conference that provides Agile and Scrum practitioners in California an opportunity for learning and networking. Practitioners and newcomers come together for two days to discuss, examine and otherwise brainstorm the most timely and relevant topics in Agile development today. Agile Open California South follows the open space format for conferences. Open space is a simple methodology for self-organizing conference tracks. It relies on participation by people who have a passion for the topics to be discussed. There is no preplanned list of topics, only time ...
Categories: Communities

Lead the Change: Learn to Drive an Agile Transformation

Rally Agile Blog - Tue, 09/01/2015 - 16:00

Isn’t it fun to think about a future that includes driverless cars? The technology behind them is pretty impressive, but it isn’t quite where it needs to be to take over for humans. And in the meantime, we humans continue to be fallible creatures. We need instruction and practice to drive well, and even then, we sometimes get off-course or hit obstacles along the way.  

 (image: Flickr CC)

You know what’s even harder than driving a car? Driving an agile transformation. While agile principles may seem simple to understand, they can be complex to implement at scale. Changing an organization’s processes, practices, and culture takes knowledge, discipline, and motivation. Especially in large companies, guiding a scaled agile implementation can feel like steering a battleship with a joystick. This is why all successful change initiatives need great humans to drive them.

The Cred to Create Change

We can train you to be a great driver. Our SAFe® Program Consultant (SPC) workshops will give you the confidence and know-how to lead an enterprise agile transformation. This four-day, intensive training will teach you how to harness the Scaled Agile Framework®, so you can accelerate change within large organizations and unleash the power of agile.  

You’ll learn …

  • The application of Lean, agile and product development flow principles for better productivity, quality, time to market, and employee engagement
  • How to apply the Scaled Agile Framework, as well as how to teach and certify others in SAFe
  • Certified leadership skills for unlocking people’s intrinsic motivation and leading a transformation
  • How to identify value streams and organize Release Trains around them
  • How to prepare the organization and its teams to launch Release Trains and run the first release planning
  • When to interact at key program touchpoints, to help "keep the train on the tracks”

… Plus a whole lot more.

Who Should Be an SPC

Our SAFe Program Consultant training and certification is a great course for internal agile change agents or external consultants. It provides the training you need to validate and implement your knowledge of agile programs, program portfolio management, agile architecture, and SAFe, so you can launch and steer an enterprise change initiative.

Your SAFe Program Consultant Trainers (SPCTs) are among the industry’s most experienced, hands-on coaches. They work regularly with a broad range of companies in applying their agile skills, honing their knowledge of leading-edge techniques, and identifying and resolving some of the most difficult organizational challenges. (Keep reading for a fact about our trainers you probably didn't know.)

Get Started

Rally’s Agile University is offering SPC training and certification courses in four cities around the world, over the coming months:

  • 15–18 September: Singapore
  • 20–23 October: Dallas
  • 10–13 November: Raleigh
  • 17–20 November: Sydney

Visit the AgileU website to get the details.

Do you want to help other great humans build great organizations? Start by learning to drive, steer, and lead agile transformations. Sign up for our SPC training and certification course and get the skills you need to drive change with the right kind of impact.

P.S. Did you know that there are fewer than 25 SAFe Program Consultant Trainers, or SPCTs, in the whole world, and five of them work at Rally?

Categories: Companies

NeuroAgile Quick Links #13

Notes from a Tool User - Mark Levison - Tue, 09/01/2015 - 10:02
A collection of links to interesting research from the world of neuroscience and behavioural psychology that can be applied (or not) to Agile/Scrum Teams. NeuroAgile Quick Links from Certified Scrum Trainer Mark Levison


Categories: Blogs

Delivering Training in an Agile Way

Ben Linders - Tue, 09/01/2015 - 08:17
When a client asks for a training session, most often the full content of the training is discussed and defined up front. With one client that wanted a week of training I took a different approach. The client an I used a backlog to prioritize training sessions and workshops. We only planned the first days, and reflected and adjusted the training every day of the week. This is a story of how I collaborated with a client in an agile way to ensure that they would get the biggest possible benefit out of a training week that I delivered to them. Continue reading →
Categories: Blogs

Phone Screening Junior Candidates

Phone screening junior candidates is hard. With 20+ years of experience I find it hard to evaluate someone who’s new to the field or worked less than 6 months. What I’m looking for is potential, but I can’t fall back on traditional measures where I ask for evidence of a skill. Sure they might have a beginning grasp of some language or the ability to put together a bare bones web site or iPhone app, but I really can’t drill them on OO, Domain Driven Design, or functional programming.

My approach has been to touch on some real basics to determine they’ve at least been exposed to subjects they claim on a recipe. Then I dig for stories of how they picked things up, what they learned from mistakes

Step one, is read the resume. They tend to actually be one page! Note anything I should ask them about such as basic language syntax or their explanation of TDD. Second, is take a look at any open source code you can find, often github. Ignore that it’s sloppy or untested and just take a good look at it. Then if you have time you can do some Googling and see what kind of data you can find about their participation in the community or even just questions on forums or Stack Overflow.

Next comes the actual phone screen itself. I have a stable of questions I use, a few I always use and many that I sample based on the interviewee’s experience:

  • What have you done in 2 minutes or less? (I’ll let this go over 2 minutes if I’m getting good information, but sometimes you just have to tell people you need to move onto the next question.)
  • I usually warm up with a question about the disadvantages of inheritance. This often throws junior candidates, but you can get a pretty good sense of how much OO they really understand this early in a career.
  • As I’m a die-hard TDD/BDD type I always ask them to describe how they’d write a test in their current unit test framework. A surprising number of resumes that claim to practice TDD can’t explain the syntax behind writing a rspec or Junit test.
  • I’ll often ask a question about a situation where they didn’t have enough information to complete an assignment and how they handled that. Sometimes this sort of behavioral question throws junior developers and I have to reiterate that I’m not looking for a theoretical answer.
  • Then I’ll jump around from behavioral questions to technical questions. I might ask about what an index is or what they find most challenging about their current project.
  • Almost always I include a question on how they come up to speed on new technologies. I’m looking here for anything they learned that wasn’t just presented to them in a class or at their job.
  • Finally I wrap up with a few standard questions:

  • Why do you want to work for us?
  • Is there anything else I should ask you?
  • What questions do you have for me?

Every few months I come through the questions and usually add a few and remove the ones I never ask. I still wish I had a better process, but the most common theme to come out of junior phone screens is that they’re enthusiastic and they know at least what they claim on the resume.

Categories: Blogs

Making Amazon ECS Container Service as easy to use as Docker run

Xebia Blog - Mon, 08/31/2015 - 21:52

One of the reasons Docker caught fire was that it was soo easy to use. You could build and start a docker container in a matter of seconds. With Amazon ECS this is not so. You have to learn a whole new lingo (Clusters, Task definitions, Services and Tasks), spin up an ECS cluster, write a nasty looking JSON file or wrestle with a not-so-user-friendly UI before you have your container running in ECS.

In the blog we will show you that Amazon ECS can be as fast, by presenting you a small utility named ecs-docker-run which will allow you to start a Docker container almost as fast as with Docker stand-alone by interpreting the Docker run command line options. Together with a ready-to-run CloudFormation template, you can be up and running with Amazon ECS within minutes!

ECS Lingo

Amazon ECS uses different lingo than Docker people, which causes confusion. Here is a short translation:

- Cluster - one or more Docker Hosts.
- Task Definition - A JSON representation of a docker run command line.
- Task - A running docker instance. When the instance stops, the task is finished.
- Service - A running docker instance, when it stops, it is restarted.

In the basis that is all there is too it. (Cutting a few corners and skimping on a number of details).

Once you know this, we are ready to use ecs-docker-run.

ECS Docker Run

ecs-docker-run is a simple command line utility to run docker images on Amazon ECS. To use this utility you can simply type something familiar like:

ecs-docker-run \
        --name paas-monitor \
        --env SERVICE_NAME=paas-monitor \
        --env SERVICE_TAGS=http \
        --env "MESSAGE=Hello from ECS task" \
        --env RELEASE=v10 \
        -P  \

substituting the 'docker run' with 'ecs-docker-run'.

Under the hood, it will generate a task definition and start a container as a task on the ECS cluster. All of the following Docker run command line options are functionally supported.

-P publishes all ports by pulling and inspecting the image. --name the family name of the task. If unspecified the name will be derived from the image name. -p add a port publication to the task definition. --env set the environment variable. --memory sets the amount of memory to allocate, defaults to 256 --cpu-shares set the share cpu to allocate, defaults to 100 --entrypoint changes the entrypoint for the container --link set the container link. -v set the mount points for the container. --volumes-from set the volumes to mount.

All other Docker options are ignored as they refer to possibilities NOT available to ECS containers. The following options are added, specific for ECS:

--generate-only will only generate the task definition on standard output, without starting anything. --run-as-service runs the task as service, ECS will ensure that 'desired-count' tasks will keep running. --desired-count specifies the number tasks to run (default = 1). --cluster the ECS cluster to run the task or service (default = cluster). Hands-on!

In order to proceed with the hands-on part, you need to have:

- jq installed
- aws CLI installed (version 1.7.44 or higher)
- aws connectivity configured
- docker connectivity configured (to a random Docker daemon).

checkout ecs-docker-run

Get the ecs-docker-run sources by typing the following command:

git clone
cd ecs-docker-run/ecs-cloudformation
import your ssh key pair

To look around on the ECS Cluster instances, import your public key into Amazon EC2, using the following command:

aws ec2 import-key-pair \
          --key-name ecs-$USER-key \
          --public-key-material  "$(ssh-keygen -y -f ~/.ssh/id_rsa)"
create the ecs cluster autoscaling group

In order to create your first cluster of 6 docker Docker Hosts, type the following command:

aws cloudformation create-stack \
        --stack-name ecs-$USER-cluster \
        --template-body "$(<ecs.json)"  \
        --capabilities CAPABILITY_IAM \
        --parameters \
                ParameterKey=KeyName,ParameterValue=ecs-$USER-key \

This cluster is based upon the firstRun cloudformation definition, which is used when you follow the Amazon ECS wizard.

And wait for completion...

Wait for completion of the cluster creation, by typing the following command:

function waitOnCompletion() {
        while expr "$STATUS" : '^.*PROGRESS' > /dev/null ; do
                sleep 10
                STATUS=$(aws cloudformation describe-stacks \
                               --stack-name ecs-$USER-cluster | jq -r '.Stacks[0].StackStatus')
                echo $STATUS

Create the cluster

Unfortunately, CloudFormation does (not) yet allow you to specify the ECS cluster name, so need to manually create the ECS cluster, by typing the following command:

aws ecs create-cluster --cluster-name ecs-$USER-cluster

You can now manage your hosts and tasks from the Amazon AWS EC2 Container Services console.

Run the paas-monitor

Finally, you are ready to run any docker image on ECS! Type the following command to start the paas-monitor.

../bin/ecs-docker-run --run-as-service \
                        --number-of-instances 3 \
                        --cluster ecs-$USER-cluster \
                        --env RELEASE=v1 \
                        --env MESSAGE="Hello from ECS" \
                        -p :80:1337 \
Get the DNS name of the Elastic Load Balancer

To see the application in action, you need to obtain the DNS name of the Elastic Load Balancer. Type the following commands:

# Get the Name of the ELB created by CloudFormation
ELBNAME=$(aws cloudformation describe-stacks --stack-name ecs-$USER-cluster | \
                jq -r '.Stacks[0].Outputs[] | select(.OutputKey =="EcsElbName") | .OutputValue')

# Get the DNS from of that ELB
DNSNAME=$(aws elb describe-load-balancers --load-balancer-names $ELBNAME | \
                jq -r .LoadBalancerDescriptions[].DNSName)
Open the application

Finally, we can obtain access to the application.

open http://$DNSNAME

And it should look something like this..

host release message # of calls avg response time last response time

b6ee7869a5e3:1337 v1 Hello from ECS from release v1; server call count is 82 68 45 36

4e09f76977fe:1337 v1 Hello from ECS from release v1; server call count is 68 68 41 38 65d8edd41270:1337 v1 Hello from ECS from release v1; server call count is 82 68 40 37

Perform a rolling upgrade

You can now perform a rolling upgrade of your application, by typing the following command while keeping your web browser open at http://$DNSNAME:

../bin/ecs-docker-run --run-as-service \
                        --number-of-instances 3 \
                        --cluster ecs-$USER-cluster \
                        --env RELEASE=v2 \
                        --env MESSAGE="Hello from Amazon EC2 Container Services" \
                        -p :80:1337 \

The result should look something like this:

host release message # of calls avg response time last response time b6ee7869a5e3:1337 v1 Hello from ECS from release v1; server call count is 124 110 43 37 4e09f76977fe:1337 v1 Hello from ECS from release v1; server call count is 110 110 41 35 65d8edd41270:1337 v1 Hello from ECS from release v1; server call count is 124 110 40 37 ffb915ddd9eb:1337 v2 Hello from Amazon EC2 Container Services from release v2; server call count is 43 151 9942 38 8324bd94ce1b:1337 v2 Hello from Amazon EC2 Container Services from release v2; server call count is 41 41 41 38 7b8b08fc42d7:1337 v2 Hello from Amazon EC2 Container Services from release v2; server call count is 41 41 38 39

Note how the rolling upgrade is a bit crude. The old instances stop receiving requests almost immediately, while all requests seem to be loaded onto the first new instance.

You do not like the ecs-docker-run script?

If you do not like the ecs-docker-run script, do not dispair. Below are the equivalent Amazon ECS commands to do it without the hocus-pocus script...

Create a task definition

This is the most difficult task: Manually creating a task definition file called 'manual-paas-monitor.json' with the following content:

  "family": "manual-paas-monitor",
  "containerDefinitions": [
      "volumesFrom": [],
      "portMappings": [
          "hostPort": 80,
          "containerPort": 1337
      "command": [],
      "environment": [
          "name": "RELEASE",
          "value": "v3"
          "name": "MESSAGE",
          "value": "Native ECS Command Line Deployment"
      "links": [],
      "mountPoints": [],
      "essential": true,
      "memory": 256,
      "name": "paas-monitor",
      "cpu": 100,
      "image": "mvanholsteijn/paas-monitor"
  "volumes": []
Register the task definition

Before you can start a task it has to be registered at ECS, by typing the following command:

aws ecs register-task-definition --cli-input-json "$(<paas-monitor.json)"
Start a service

Now start a service based on this definition, by typing the following command:

aws ecs create-service \
     --cluster ecs-$USER-cluster \
     --service-name manual-paas-monitor \
     --task-definition manual-paas-monitor:1 \
     --desired-count 1

You should see a new row appear in your browser:

host release message # of calls avg response time last response time .... 5ec1ac73100f:1337 v3 Native ECS Command Line Deployment from release v3; server call count is 37 37 37 36 Conclusion

Amazon EC2 Container Services has a higher learning curve than using plain Docker. You need to get passed the lingo, the creation of an ECS cluster on Amazon EC2 and most importantly the creation of the cumbersome task definition file. After that it is almost as easy to use as Docker run.

In return you get all the goodies from Amazon like Autoscaling groups, Elastic Load Balancers and multi-availability zone deployments ready to use in your Docker applications. So, check ECS out!

More Info

Checkout more information:

Categories: Companies

Let's stop doing the wrong thing because we can't get past an impediment

NetObjectives - Mon, 08/31/2015 - 20:31
I've been watching the Agile community since 1999.  A pattern I've seen is that when we can't get the right behavior, we just back off and redefine things. The first time I saw this was the Scrummaster.  In my mind, the Scrummaster is simply a new role we made because few knew how a project manager should act.  Quick fix - eliminate the role and make a new one.  Then we saw the creation of the...

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]
Categories: Companies

Holding a Tech Lead course in Sydney - Mon, 08/31/2015 - 18:27

With a one-time only opportunity this year, I am running a course for Architects and Tech Leads on 22-23 October at the ThoughtWorks Sydney offices. After interviewing over 35 Tech Leads for the Talking with Tech Leads book, I recognised there is a gap about teaching developers the special leadership skills a successful Architect and Tech Lead demands. The class size is really limited, so reserve yourself a place while you can.

Tech Lead

In this very hands-on and discussion-based course, participants will cover a wide breadth of topics including understanding what a Tech Lead is responsible for, the technical aspects a developers rarely experiences and is not accountable for, and the difficult people-oriented side to the role including influencing, relationship building and tools for better understanding your team.

This is a two-day course that will quickly pay back dividends in accelerating you on your path or further developing your Tech Lead skills as developers. Register here on eventbrite for the course 22-23 October.

Categories: Blogs

“The story I’m making up…”

Thought Nursery - Jeffrey Fredrick - Mon, 08/31/2015 - 17:13

Last week at the August session of the London Action Science Meetup we started with a discussion of the phrase “the story I’m making up…” I love this phrase! It captures the process of the Ladder of Inference, but it has an immediate emotional resonance that the ladder does not.

I came across this phrase from an unlikely source: Now I’ve got nothing against Oprah, but this it just isn’t in a url that shows up a lot in my browser history! So the real credit goes to @frauparker, who is someone I clearly trust well enough to follow off into the well-scrubbed bright and shiny parts of the internet; in this case an article by Brené Brown on How to Reckon with Emotion and Change Your Narrative, an excerpt from her new book Rising Strong. The article is well worth reading but I’m going to take a look at it through the narrow lens of the action science workshops I’ve been leading.

For a few months now I’ve been leading weekly lunchtime workshops at TIM Group where anyone who is interested can join in a discussion of some two-column case study. This might be a canned case study, or one people recall and write down on the spot, but the best sessions have been when someone has come with something in mind, some conversation in the past or future that is bothering them. As a group then we try to help that person to explore how they were feeling, what they didn’t share and why, and how they might be more effective in the future. One of the common observations, and one this article reminded me of, is how hesitant the participants are to put their feelings into words. It seems we can almost always have a productive conversation by asking the series “How did you feel at that point?” followed by “Is there any reason you didn’t share that reaction?” These questions get quickly to the real source of our frustrations that are hiding back in the shadows. Bringing them into the light we find out something quite surprising: they were stories we were making up.

The article has good advice that will be familiar to students of action science and the mutual learning model, suggestions like separating facts from assumptions, and asking “what part did I play?” It also had a key action that is hidden in plain sight. Do you see it in this exchange from the article?

Steve opened the refrigerator and sighed. “We have no groceries. Not even lunch meat.” I shot back, “I’m doing the best I can. You can shop, too!” “I know,” he said in a measured voice. “I do it every week. What’s going on?”

As I read the remainder of the article from the author’s point of view it was easy to overlook the role Steve played here. It was his calm empathetic question that allowed the author to reply with the title phrase: “The story I’m making up is that you were blaming me for not having groceries, that I was screwing up.” I really struggle generating this kind of response, of not getting caught up with my own emotional reaction. So I admire what Steve accomplished here.

I’ve long said that “stories are the unit of idea transmission”. What I hadn’t realised before reading this article was how powerful I’d find using the word story to describe what is going on in my head. I’m really looking forward to practicing with this phrase in future conversations.

Categories: Blogs

Agile 2015 Video Interview

Agilitrix - Michael Sahota - Mon, 08/31/2015 - 16:09

Olaf Lewitz and I were interviewed at Agile 2015 on coaching and helping organizations become more adaptable (anti-fragile) through safety – leadership – trust. I am really happy how well it turned out.  

The post Agile 2015 Video Interview appeared first on - Michael Sahota.

Categories: Blogs

How to Use an A3 in an Agile Transformation

Leading Agile - Mike Cottmeyer - Mon, 08/31/2015 - 16:02
What is an A3

An A3 is more than an 11 x 17 inch piece of paper that is structured into several sections and not all A3’s are created equal. An A3 is a structured problem solving and continuous improvement approach, first employed at Toyota and typically used by Lean manufacturing practitioners. What your A3 looks like depends upon the situation. The example below consists of the following pattern, as part of an Agile Transformation:

  1. Current Situation & Problem
  2. Root Cause Analysis / Conclusion
  3. Goal
  4. Corrective Action

After we agree on the four steps, we’re going to implement the correction action and then verify the results. The content of an A3 follows the logic of the Plan-Do-Study-Act (PDSA) cycle.  What I want you to take away from this blog post is not so much TQM, PDSA, and A3’s, as much as how you could benefit from them when doing an Agile transformation or any kind of process improvement.

a3 example for transformation

When doing an Agile Transformation, I’m going to always cycle back to 3 core goals.

  1. Form complete cross functional teams
  2. Build backlogs
  3. Deliver working tested software

Anything that gets in the way of doing these is an impediment that has to be removed.  The example I have above describes how a team is under-committing each sprint.  We’re using a story point completion ratio to know if the team is delivering working tested software. We’re going to use this single page to have a shared understanding with our client and agree on a course of action.  Now, I’m not saying you have to use this template. If you can remove an impediment informally, by all means, do it!  But, to make sure my client agrees there is a problem that needs to be prioritized and addressed, this is an effective tool and it’s pretty lightweight.  You may also notice I don’t call this an A3 on the actual example.  I’m going to call it an Action Report so my client feels comfortable with common language and I don’t need to distract them by introducing Lean terminology.  When I say “A3″, there are certain expectations.  Let’s not get hung up on that and just call it an Action Report going forward.

Flow of the Action Report

You’ll notice that I structured my Action Report so that your eyes will be drawn to sections. I want to compare 1 and 3 (Current Conditions and Goals) and 2 and 4 (Root Cause Analysis/Conclusion and Corrective Action).  This allows a transformation consultant to note impediments and identify root causes independently but then be prepared to collaborate with the client on goals and corrective actions.  I’m going to stress this again.  We’re only going to go through this process if the consultant can’t resolve the issue informally.  If not, he or she will need to collaborate with the client to confirm the goal and agree on an appropriate action. The consultant doesn’t do all of this in a vacuum.  When looking at action (or A3) reports used by others, I’ve seen them identify the goal prior to looking for root cause. From my experience, if I’m required to identify the goal before moving forward, this may create an unnecessary delay.  If I don’t think something is right, I’m going to start investigating right away and then circle back with the client to validate their goal. But, I’m not going to stop and wait to be told what their goal is before beginning to look for root cause. I don’t want to stop until my personal curiosity is satisfied. Also, I’m not saying to not collaborate with the customer. I’m saying keep moving forward on multiple fronts and to circle back at the first logical opportunity.

Current Conditions

We have several opportunities during the transformation to get this information.  It could be, we just completed a formal assessment of the team or organization.  Maybe we just reviewed metrics of the team or organization.  Maybe I just walked out of a really long and unproductive meeting. Whatever we did, I’m looking for some kind of objective criteria or indicator to describe the condition.

Root Cause Analysis / Conclusion

In order to propose appropriate corrective actions, we need to identify the root cause of the condition. Avoid using logical fallacies like anecdotal, appeal to emotion, or false cause. I like to use Socratic method or ask the 5 whys to help reach the root cause.


The goal listed above in the illustration focuses on getting a team’s story point completion ratio to 100% +/- 10%. This goal is pointing back to building backlogs and delivering working tested software.  By getting the teams to keep their commitments of delivering working tested software regularly, we allow the business to make better commitments to their customers. If we can build that trust and safety within our organizations, we’ll start to build balanced systems.

Corrective Actions

Identify corrective actions that is both short term and easy to implement. If the actions are neither, I keep a higher level corrective action around and then break it down so I can incrementally work toward the goal.  Personally, I keep my daily activities on a Kanban board. For an overall transformation, I keep the actions and activities in a rolling 90-day plan.  This keeps the client informed on what value I’ve delivered and what value I plan to deliver in the coming weeks/months.

Plan Do Study Act in an Agile Transformation

When doing an Agile Transformation, PDSA is just one pattern to map the approach.  Not mentioned in this blog post are the original inputs into the initial coaching plan and 90-day plan. (both of which are collaboratively defined and continuously evolved with the client). But, how do I fit it all together in a high level “plan do study act” process, more emblematic of the original A3 process? I use the following:

  1. Coaching Plan (Plan)
  2. Rolling 90-Day Plan (Do)
  3. Adoption Assessment (Study)
  4. Metrics (Study)
  5. Action Report (Act)

Plan Do Study Act


I hope this provides some insights into how you can take some of the hand waving out of your next (or current) Agile transformation.  There are a lot of moving parts and you need the process and tools to keep an eye on your goals and manage progress, without adding so much overhead that you stifle the forward momentum.  Let me know if you have questions!

Download a free copy of the A3 – Action Report Template


The post How to Use an A3 in an Agile Transformation appeared first on LeadingAgile.

Categories: Blogs

AgileNZ, Wellington, New Zealand, September 1-2 2015

Scrum Expert - Mon, 08/31/2015 - 13:50
The AgileNZ Conference is a two-day conference taking place in New Zealand and focused on Agile project management and Scrum. The main theme for AgileNZ Conference 2015 is transformation. Lean and Agile approaches are not only continuing to transform software delivery, they’re being adopted outside of software to transform entire businesses. In the agenda of the AgileNZ Conference you can find topics like “What Would It Take to Have an Agile Enterprise?”, “Making Integral Agility Real on Your Team”, “Bugger the Boxing – Pour the Concrete Anyway!”, “Visual Facilitation”, “Full Stack ...
Categories: Communities

Knowledge Sharing

SpiraTeam is a agile application lifecycle management (ALM) system designed specifically for methodologies such as scrum, XP and Kanban.