Skip to content

Feed aggregator

Coaching Corner: Why Weekly Plans Matter

NetObjectives - Mon, 08/17/2015 - 08:50
At Net Objectives we do a weekly status for everyone else to see. This is important because we are a distributed company. The status is simple, we answer four questions: What I did last week What I’m going to accomplish this week What I need help with A ‘how I see things are going’ commentary I often have a concern that many of my folks consider this an unnecessary burden adding little value to...

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

Nederlandstalige en Franstalige paperback ook te koop in Belgie bij Bol

Ben Linders - Mon, 08/17/2015 - 07:53
Door Ben Linders Publishing Belgium worden de Nederlandstalige en Franstalige paperback editie van het succesvolle boek met oefeningen voor Agile Retrospectives in België op bol.com verkocht. In Nederland worden ze verkocht door Ben Linders Publishing. Continue reading →
Categories: Blogs

You don't need Agile, just get rid of the deadweight developers?

Do we need this Agile malarky if all we need to do is get rid of all the "deadweight developers"?
This question implies two other questions:
  1. Does an Agile approach improve less-skilled developers?
  2. Should we even bother improving less-skilled developers?
Does an Agile approach improve less-skilled developers?Back in the day, there were questions about whether Extreme Programming (XP) was really only for highly skilled developers and less-skilled developers required more heavyweight approaches like the Rational Unified Process (RUP).
Ralph Johnson (co-author of Design Patterns) described his experiences teaching software engineering at the University of Illinois where the students had both XP and RUP projects:"...they do not have the experience to design anything reasonable. If they try to follow RUP, the time spent designing is totally wasted. When they follow XP, they get test cases to run, producing horrible code at first. They don't make rapid progress, but they make progress. After a few months, they start to realize that their code is lousy and then reading the refactoring book helps them a lot. By the end of the year, they have working code and have become much better programmers. So, my experience is that XP is especially good for novice programmers. It only asks them to do things of which they are capable. RUP can work if you have an expert who is trying to lead a group of novices, but if you don't have an expert then it will not work.This is not to say that RUP works better than XP if you have an expert leading a group of novices."In other words, XP is designed to use concrete feedback to develop skill.  I'm not as confident about other Agile methods and less-skilled developers.

Okay, so let's say you accept that given less-skilled developers, an Agile, or more specifically, XP approach would help improve their skill.  There is still an open question of why you should bother improving their skill instead of just cutting the "deadweight developers" loose.
Should we even bother improving less-skilled developers?There's a well-known response from W. Edwards Deming on how to deal with "deadwood employees":"Were they dead when you hired them? Or did you kill them?" (via Dealing with Deadwood)In other words, how much of the low performance of the developer is less a reflection of the individual and more a reflection of a broken surrounding system.

Most "poor developers" I've met have had poor teachers and a poor supporting environment.  The question is, why should I design a system that only works with people who can compensate for being in an inferior system?  I would suggest that this is reflected in poor diversity and difficulty in finding people.

When thinking about this topic, I tend to remember the story of NUMMI where the worst of the worst GM plant became the best in GM in about a year, with pretty much the same people, by adopting the "team way of working" (aka Toyota Production System).

Workers who could reasonably be considered the worst kind of deadwood all of a sudden becoming examples of the best way of working.

But we're not manufacturing cars.  Surely there is minimum level of sheer intellectual capability that not everyone has.

I can accept that.  There are developers that perform better than others.  That's empirically true.

Where I split ways is what the response is for developers who are not currently performing at the same level.  The best performer is the standard.  However, if you are willing to learn, we should be willing to teach.  If you are not willing to learn...

There are also problematic consequences of believing in this idea of "deadweight" even for high performers.

Believing too strongly that there are some developers that are deadweight and others that are not reinforces a fixed rather than growth mindset, which is a dangerous, performance undermining thing to reinforce, especially for high performers.

Also, the mentality of abandoning people is incompatible with the reflex of empathy required to succeed in an Agile, and arguably any successful, product development environment.What I'd advocate instead
  1. Improve your selection criteria.  Some people do have greater skill and the right mindset to perform and improve much more quickly than others.  The right mindset is more important than greater skill BUT both is better and there is a minimum level of capability.
  2. Improve your human development approach.  I like the XP / Agile environment as a way to do this.
  3. Never reinforce the idea that anyone is deadweight.  The best is the standard, but if you are willing to learn, we are ready to teach.
Categories: Blogs

Why the especially terrible "Agile" you hear about is misled and wrong

There have been claims of the terribleness of Agile from the birth of the Agile Manifesto in 2001 and before then, when it was more the terribleness of Extreme Programming.

Because of this, most of the "new" arguments you hear are not actually that new but typically reflect the same misunderstanding (whether accidental or deliberate) of what XP / Agile is about.  This is not to say that all new arguments have been made before nor that every argument whether old or new is completely devoid of merit.  However, it's rather tiresome and perhaps not too useful to respond to the exact same objections that have already been answered.

To that end, let's try to capture some of the patterns of misunderstanding and explain why they are misled and wrong.
Patterns of Agile misunderstanding



Categories: Blogs

Unix: Redirecting stderr to stdout

Mark Needham - Sat, 08/15/2015 - 17:55

I’ve been trying to optimise some Neo4j import queries over the last couple of days and as part of the script I’ve been executed I wanted to redirect the output of a couple of commands into a file to parse afterwards.

I started with the following script which doesn’t do any explicit redirection of the output:

#!/bin/sh
 
./neo4j-community-2.2.3/bin/neo4j start

Now let’s run that script and redirect the output to a file:

$ ./foo.sh > /tmp/output.txt
Unable to find any JVMs matching version "1.7".
 
$ cat /tmp/output.txt
Starting Neo4j Server...WARNING: not changing user
process [48230]... waiting for server to be ready.... OK.
http://localhost:7474/ is ready.

So the line about not finding a matching JVM is being printed to stderr. That’s reasonably easy to fix:

#!/bin/sh
 
./neo4j-community-2.2.3/bin/neo4j start 2>&1

Let’s run the script again:

$ ./foo.sh > /tmp/output.txt
 
$ cat /tmp/output.txt
Unable to find any JVMs matching version "1.7".
Starting Neo4j Server...WARNING: not changing user
process [47989]... waiting for server to be ready.... OK.
http://localhost:7474/ is ready.

Great, that worked as expected. Next I extended the script to stop Neo4j, delete all it’s data, start it again and execute a cypher script:

#!/bin/sh
 
./neo4j-community-2.2.3/bin/neo4j start 2>&1
rm -rf neo4j-community-2.2.3/data/graph.db/
./neo4j-community-2.2.3/bin/neo4j start 2>&1
time ./neo4j-community-2.2.3/bin/neo4j-shell --file foo.cql 2>&1

Let’s run that script and redirect the output:

$ ./foo.sh > /tmp/output.txt
Unable to find any JVMs matching version "1.7".
 
real	0m0.604s
user	0m0.334s
sys	0m0.054s
 
$ cat /tmp/output.txt
Unable to find any JVMs matching version "1.7".
Another server-process is running with [50614], cannot start a new one. Exiting.
Unable to find any JVMs matching version "1.7".
Another server-process is running with [50614], cannot start a new one. Exiting.
+---------+
| "hello" |
+---------+
| "hello" |
+---------+
1 row
4 ms

It looks like our stderr -> stdout redirection on the last line didn’t work. My understanding is that the ‘time’ command swallows all the arguments that follow whereas we want the redirection to be run afterwards.

We can work our way around this problem by putting the actual command in a code block and redirected the output of that:

#!/bin/sh
 
./neo4j-community-2.2.3/bin/neo4j start 2>&1
rm -rf neo4j-community-2.2.3/data/graph.db/
./neo4j-community-2.2.3/bin/neo4j start 2>&1
{ time ./neo4j-community-2.2.3/bin/neo4j-shell --file foo.cql; } 2>&1
$ ./foo.sh  > /tmp/output.txt
 
$ cat /tmp/output.txt
Unable to find any JVMs matching version "1.7".
Another server-process is running with [50614], cannot start a new one. Exiting.
Unable to find any JVMs matching version "1.7".
Another server-process is running with [50614], cannot start a new one. Exiting.
Unable to find any JVMs matching version "1.7".
+---------+
| "hello" |
+---------+
| "hello" |
+---------+
1 row
4 ms
 
real	0m0.615s
user	0m0.316s
sys	0m0.050s

Much better!

Categories: Blogs

Innovation day at KLM: Persistence with Docker containers

Xebia Blog - Sat, 08/15/2015 - 13:06

On 3th of July KLM and Cargonauts joined forces at KLM headquarters for an innovation day. The goal was to share knowledge and find out how to properly do “Persistence with Docker containers”.

Persistence is data that you want to have available after the reboot, and to make it more complex in some cases you also want to share that data over multiple nodes. Examples of this are an upload folder that is shared or a database. Our innovation day case is focusing on a MySQL database, we want to find out how we can host MySQL data reliable and highly available.

Persistence with Docker containers poses the same dilemmas as when you don’t use them but with more options to chose from. Eventually those options could be summarized to this:

  1. Don’t solve the problem on the Docker platform; Solve it at the application level by using a distributed database like Cassandra.
  2. Don’t solve the problem on the Docker platform; Use a SAAS or some technology that provides a high available storage to your host.
  3. Do fix it on the Docker platform, so you are not tied to a specific solution. This will allows you to deploy everywhere as long as Docker is available.

Since this was an innovation day and we are container enthusiasts, we focused on the last option. To make it more explicit we decided to try and investigate into these two possible solutions for our problem:

  1. Provide the host with a highly available distributed file system with GlusterFS. This will allow us to start a container anywhere and move it freely because the data is available anywhere on the platform.
  2. GlusterFS might not provide the best performance due to its distributed nature. So to have better performance we need to have the data available on the host. For this we investigated Flocker.

Note: We realise that these two solutions only solve part of the problem because what happens if the data gets corrupted? To solve that we still need some kind of a snapshot/backup solution.

Having decided on the approach we split the group into two teams, team 1 focused on GlusterFS and team 2 focused on Flocker. We will post their stories in the coming days. Stay tuned!

The innovation day went exactly as an innovation day should go, with a lot of enthusiasm followed with some disappointments which led to small victories and unanswered questions, but with great new knowledge and a clear vision where to focus your energy next.

We would like to thank KLM for hosting the innovation day!

Categories: Companies

Divergence at Agile2015

Leading Agile - Mike Cottmeyer - Fri, 08/14/2015 - 23:20

Lean Coffee

I made a plan this year that I was going to spend a lot more time outside of the planned sessions of the annual Agile Alliance conference, of which this was my fourth.  When I attended back in 2012, I went to sessions by the “who’s who” in the Agile space.  To get as much value as possible, I attended as many scheduled sessions as possible.  The only exception to that schedule was I wanted to attend some Lean Coffees.

Each year, I have returned to the Gaylords for the annual Agile Alliance conference. Texas, Tennessee, Florida, Washington DC…  In that short time, something changed.  Those things that I believe, as they relate to Lean, Agile, and Transformations in the Enterprise have evolved. Those people who I saw speak back in 2012 are saying the same things.  Honestly, what they are saying just isn’t as compelling as it once was.

The Problem of BDUF

We talk about how bad it is to have a Big Design Up Front (BDUF).

“Critics (notably those who practice agile software development) argue that BDUF is poorly adaptable to changing requirements and that BDUF assumes that designers are able to foresee problem areas without extensive prototyping and at least some investment into implementation… ~Wikipedia”

Each year, a bunch of super smart people go through a few thousand submissions for the coming event, in the hope of shaping a conference that people will attend and enjoy.  The decisions are made months in advance on exactly what talks/workshops will happen.  A lot of work goes into this effort (I know because I was a reviewer one year).  This is all done in a vacuum.  Honestly, those who are reviewing the sessions don’t know what the attendees will perceive as valuable. So, they can’t vet the most valuable sessions.  This year, I found the conference was heavy on Agile fundamentals (this was a conversation at one of the lean coffees at the conference).  Now, this may not be a bad thing. Maybe the Agile Alliance has a target market of those with less than three years working in the domain.  But what about those with more experience in the Agile space? Where will we find our valuable sessions at the conference?

Solving the problem with Emergent Design

I know you can’t please everyone, but each year I have found fewer topics so compelling that I want to sit there for an hour and listen to someone.  I have learned to get up and walk out as quickly as possible, when I discover the session is not going to provide me the value I had hoped.  Fortunately this year, I found that Lean Coffee and Open Jam gave me almost an entire conference-week of very valuable and satisfying conversations and learning.  Did I find a few compelling sessions this year?  Yes.  Is the value of the planned session diminishing year over year for me? Yes. Will I spend even more time in the Lean Coffee and Open Jam space next year? Yes, absolutely!

The Divergence

I am certainly not poo-pooing the Agile Alliance or the people who put on the conference. They do a hell of a good job, year after year. I look forward to going to the conference in Atlanta next year.  But, there is a split that I’m seeing.  I didn’t like the big planning upfront this year or at other local conferences. So, I stood up my own conference: Agile Baltimore Unconference. Now, this post isn’t about self-promoting my event.  It’s about the divergence I’m seeing.  I found it interesting to discover that if you have an Open Space (an unconference method) event, the sponsor request will take a different path within the Agile Alliance (who are now a sponsor of the Agile Baltimore Unconference). I found it interesting the attendees of the Agile2015 Lean Coffees and Open Jam agreed that if you wanted more advanced topics, you weren’t going to find many in the planned sessions.

Agile Baltimore or Agile2015+ Unconference

So, what if the Agile Alliance had an Unconference?  Imagine a whole day of conversations, like the ones you had between sessions, at coffee, lunch, or over drinks.  Wouldn’t that be awesome?  Do you think that is the direction we’re going?  As a community, is the big plan up front more valuable than the conversations or the information we’re trying to distribute?

Again, I’d like to thank the Agile Alliance and LeadingAgile for sponsoring the upcoming Agile Baltimore Unconference.

What: Agile Baltimore Unconference
When: Monday, October 12, 2015 7:30 AM – 7:00 PM (Eastern Time)
Where: ETC Incubator, 101 N Haven St, Baltimore, Maryland 21224
How:  To learn more or to register, go to http://www.agilebaltimore.org

The post Divergence at Agile2015 appeared first on LeadingAgile.

Categories: Blogs

Agile2015 Conference Resources

Scrum Expert - Fri, 08/14/2015 - 18:01
The Agile2015 Conference has been a big success with 2,300 attendees. The Agile Alliance has now released the full-length videos of all 3 Keynote presentations and the Industry Analyst Panel Discussion, the collection of video podcasts with Agile experts and thought leaders and the Agile2015 Experience Reports. The three keynote presentations and the Industry Analyst Panel Discussion are available on http://www.agilealliance.org/resources/learning-center/ More full-length videos of selected Agile2015 Sessions will be added to the Video Learning Center during August and September. Short interviews and candid conversations with many of the thought leaders and ...
Categories: Communities

Hansoft Enterprise 9 Released

Scrum Expert - Fri, 08/14/2015 - 17:49
Hansoft has announced the release of Hansoft Enterprise 9.0, its tool for agile team collaboration and management. The latest release comes with a new UI which allows for even smoother team collaboration. Hansoft 9 makes it easier for both managers and team members to understand and participate in large and small projects thanks to better contextualization and clearer visuals. “We have had some customers running their agile portfolio, program, and project management in Hansoft but who had their issue tickets in other tools. The improved capabilities now makes it easy for ...
Categories: Communities

Personal Development Insights from the Greatest Book on Personal Development Ever

J.D. Meier's Blog - Fri, 08/14/2015 - 17:38

“Let him who would move the world first move himself.” ― Socrates

At work, and in life, you need every edge you can get.

Personal development is a process of realizing and maximizing your potential.

It’s a way to become all that you’re capable of.

One of the most powerful books on personal development is Unlimited Power, by Tony Robbins.  In Unlimited Power, Tony Robbins shares some of the most profound insights in personal development that world has ever known.

Develop Your Abilities and Model Success

Through a deep dive into the world of NLP (Neuro-Linguistic Programming) and Neuro-Associative Conditioning, Robbins shows you how to master you mind, master your body, master your emotional intelligence, and improve what you’re capable of in all aspects of your life.  You can think of NLP as re-programming your mind, body, and emotions for success.

We’ve already been programmed by the shows we watch, the books we’ve read, the people in our lives, the beliefs we’ve formed.  But a lot of this was unconscious.  We were young and took things at face value, and jumped to conclusions about how the world works, who we are, and who we can be, or worse, who others think we should be.

NLP is a way to break way from limiting beliefs and to model the success of others with skill.  You can effectively reverse engineer how other people get success and then model the behavior, the attitudes, and the actions that create that success.  And you can do it better, faster, and easier, than you might imagine. 

NLP is really a way to model what the most successful people think, say, and do.

Unlimited Power at Your Fingertips

I’ve created a landing page that is a round up and starting point to dive into some of the book nuggets from Unlimited Power:

Unlimited Power Book Nuggets at a Glance

On that page, I also provided very brief summaries of the core personal development insight so that you can get a quick sense of the big ideas.

A Book Nugget is simply what I call a mini-lesson or insight from a book that you can use to change what you think, feel, or do.

Unlimited Power is not an easy book to read, but it’s one of the most profound tombs of knowledge in terms of personal development insights.

Personal Development Insights at Your Fingertips

If you want to skip the landing page and just jump into a few Unlimited Power Book Nuggets and take a few personal development insights for a spin, here you go:

5 Keys to Wealth and Happiness

5 Rules for Formulating Outcomes

5 Sources of Beliefs for Personal Excellence

7 Beliefs for Personal Excellence

7 Traits of Success

Create Your Ideal Day, the Tony Robbins Way

Don’t Compare Yourself to Others

How To Change the Emotion of Any Experience to Empower You

How To Get Whatever You Want

Leadership for a Better World

Persuasion is the Most Important Skill You Can Develop

Realizing Your Potential is a Dynamic Process

Schotoma: Why You Can’t See What’s Right in Front of You

Seven Meta-Programs for Understanding People

The Difference Between Those Who Succeed and Those Who Fail

As you’ll quickly see, Unlimited Power remains one of the most profound sources of insight for realizing your potential and becoming all that you’re capable of.

It truly is the ultimate source of personal development in action.

Enjoy.

Categories: Blogs

Estimating Tasks and Management’s Role in Scrum

Agile Learning Labs - Thu, 08/13/2015 - 23:38

Here’s an interesting question that just came in from a local scrum master. It’s about estimating tasks and management’s role in choosing the practices that a scrum team uses.

Question

Chris,

The team I am working with wants to do an experiment where they will stop estimating task in hours. Their sprint burn down will be then tasks vs. days instead of hours vs. days. The team believes that they will be successful with this and they are also thinking of creating an initial working agreement for this experiment e.g. any task that will be added will not be longer than a day of effort.

I am supporting this but somehow I have failed in explaining and convincing management. They want me to explain the benefits and the purpose of this experiment. They point to scrum books that say tasks should always be estimated in hours and a burn down chart can only be shown using hours. How do I convince management to allow the team to proceed with this experiment?

Answer

Your team is on the right track in moving away from task-hour estimates. We used to think that estimating tasks in hours was a useful practice, but over time, we have learned that it causes more harm than benefit.

One of the issues is that we never find all of the tasks during sprint planning. There will always be tasks that get discovered after we begin the work, lots of them! The very best teams I’ve worked with can find about 60% – 70% of the tasks during planning, and those are the best teams.

When we start looking at estimated hours, we get a false sense of certainty and we start making bad decisions based on that. One common bad decision is to do “capacity planning” where we make sure there are “enough hours of work” for everyone on the team. This is a terrible idea! What happens when we discover the tasks that we didn’t know about during planning? If we planned ourselves “full” we are now seriously “behind” just because of our use of task hours and capacity planning.

My only suggestion for your team is to go for even smaller tasks. I generally recommend that tasks should be small enough that they feel like no more than 3 hours of work. I don’t want to know how many hours of work; I just want the binary answer to the question: Does this seem like 3 hours of work or less? If the answer is yes, we are good. If the answer is no, then break it down some more. The reason is that breaking it down helps us better design how we will do the work.

You may also want to explain to your managers that one meta benefit of the experiment is that the team learns that they are free to experiment and improve. That’s really key to scrum: the development team owns how the work gets done. With that ownership, comes empowerment and also responsibility for the outcome. Management doesn’t need to be convinced to let the team try this experiment; management needs to be convinced that it’s the team’s job to continually improve their practices and management’s job is to create an environment where that can happen.

I hope this helps!

Cheers,

Chris

Categories: Companies

Agile2015 Podcast: A Short History and Future of SAFe

Agile Product Owner - Thu, 08/13/2015 - 23:14

We just came back from attending the Agile2015 conference in DC, and we were pleased and humbled to see so many enterprises  applying SAFe. It was the first year that we had a booth—which we dubbed “SPC & Partner Central”—and it was surrounded by Scaled Agile Partner booths in every direction.

I had the chance to sit down with Enterprise Agile Coach, Dave Prior, to talk about SAFe, and record a 20-minute podcast. We discussed the evolution to SAFe 3.0; the refinements we made to the Portfolio level; the expansion of roles and responsibilities; and the deeper focus on Value Streams. We also describe our extension into lean systems engineering. You can see our work in progress at SAFe-LSE.com.

We also talked about the principles and ideas that are guiding us as we work on the next version of SAFe, and the eye-opening insights we got from both the Systems and Software communities. This led us to pivot toward an upcoming release of a broader, more modular and more scalable framework (V4.0), one that will support both communities. If you’d like a preview of that approach, be sure and check out SAFe-LSE, because the modularity is patterned after that.

As a sidebar, I gave a talk on the common guiding principles (Nine Immutable Principles of Lean-Agile Development), and you can download that presentation here.

To everyone we met and visited with at Agile2015, we appreciate the interest and feedback you’ve provided, and look forward to seeing you again next year.

Stay SAFe,

—Dean

Categories: Blogs

Scrum Alone Is Not Enough – InfoQ and Agile 2015 Interviews

Notes from a Tool User - Mark Levison - Thu, 08/13/2015 - 21:32

5_Steps_For_Creating_High_Performing_Teams_-_Mark_Levison_at_Agile_2015_-_YouTubeMark attended Agile2015 in Washington and, as part of his conference commitments, he sat down with ​SolutionsIQ for an Agile Amped podcast about High-Performance Teams, as well as with InfoQ for an on-camera interview to discuss his Scrum Alone Is Not Enough blog series.

InfoQ recently interviewed Mark regarding the motivation behind the blog series and how his experience as an Agile expert has formed his viewpoints. You can read the full interview at http://www.infoq.com/articles/scrum-not-enough.

And you can view the video from the Agile Amped podcast here.

We will post links to the InfoQ video interview as it becomes available.

Categories: Blogs

Sed: Using environment variables

Mark Needham - Thu, 08/13/2015 - 21:30

I’ve been playing around with the BBC football data set that I wrote about a couple of months ago and I wanted to write some code that would take the import script and replace all instances of remote URIs with a file system path.

For example the import file contains several lines similar to this:

LOAD CSV WITH HEADERS 
FROM "https://raw.githubusercontent.com/mneedham/neo4j-bbc/master/data/matches.csv" 
AS row

And I want that to read:

LOAD CSV WITH HEADERS 
FROM "file:///Users/markneedham/repos/neo4j-bbc/data/matches.csv" 
AS row

The start of that path also happens to be my working directory:

$ echo $PWD
/Users/markneedham/repos/neo4j-bbc

So I wanted to write a script that would look for occurrences of ‘https://raw.githubusercontent.com/mneedham/neo4j-bbc/master’ and replace it with $PWD. I’m a fan of Sed so I thought I’d try and use it to solve my problem.

The first thing we can do to make life easy is to change the default delimiter. Sed usually uses ‘/’ to separate parts of the command but since we’re using URIs that’s going to be horrible so we’ll use an underscore instead.

For a first cut I tried just removing that first part of the URI but not replacing it with anything in particular:

$ sed 's_https://raw.githubusercontent.com/mneedham/neo4j-bbc/master__' import.cql
 
$ sed 's_https://raw.githubusercontent.com/mneedham/neo4j-bbc/master__' import.cql | grep LOAD
LOAD CSV WITH HEADERS FROM "/data/matches.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/fouls.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "/data/subs.csv" AS row

Cool! That worked as expected. Now let’s try and replace it with $PWD:

$ sed 's_https://raw.githubusercontent.com/mneedham/neo4j-bbc/master_file://$PWD_' import.cql | grep LOAD
LOAD CSV WITH HEADERS FROM "file://$PWD/data/matches.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/fouls.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "file://$PWD/data/subs.csv" AS row

Hmmm that didn’t work as expected. The $PWD is being treated as a literal instead of being evaluated like we want it to be.

It turns out this is a popular question on Stack Overflow and there are lots of suggestions – I tried a few of them and found that single quotes did the trick:

$ sed 's_https://raw.githubusercontent.com/mneedham/neo4j-bbc/master_file://'$PWD'_' import.cql | grep LOAD
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/matches.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/fouls.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/subs.csv" AS row

We could also use double quotes everywhere if we prefer:

$ sed "s_https://raw.githubusercontent.com/mneedham/neo4j-bbc/master_file://"$PWD"_" import.cql | grep LOAD
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/matches.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/players.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/fouls.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/attempts.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/corners.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/cards.csv" AS row
LOAD CSV WITH HEADERS FROM "file:///Users/markneedham/repos/neo4j-bbc/data/subs.csv" AS row
Categories: Blogs

Tips for the Daily Scrum

Agile Game Development - Thu, 08/13/2015 - 16:54
When visiting a studio, I'll often ask to observe the daily stand-ups meetings.  It's the best way to sense where a team is and how to focus coaching time for the visit.  An effective daily stand-up meeting is an energetic swarm of committed team members that need to quickly synchronize their efforts and identify anything that is threatening their shared goal.

Some daily stand-ups (or daily scrums), aren't like this.  They are monotonous, manager-led and pointless to the attendees.  Teams here lack any sense of commitment or ownership and they eventually question the merit of the practice and perhaps even abandon it.  Unfortunately, abandoning the stand-up doesn't improve their chances of building commitment or ownership, which are principles of Scrum.  So I've compiled a list of pointers on ways to improve the daily stand-up meeting and improve commitment and ownership.


The stand-up is for the team.  This meeting is for the team to synchronize their efforts towards achieving their goal, not just as a status report.  If their are any "management artifacts" that need to be created (such as an update to a tracking tool), it should be done outside the meeting.

Anti-Tip: A sprint's commitment is on quality, not quantity.  If a studio wants a predictable amount of garbage, then taking over and running sprint meetings for the team is the best way to do it.

The rules aren't fixed.  The "answer the three questions" rule you read about in books is only the starting place.  Teams add questions, change the format, and do anything necessary to address their needs.

Anti-Tip: Make Scrum a process by fixing all the practices.  This will ensure that continuous improvements will cease.

It's about the commitment to the goal, not just the tasks.  Task tracking is critical, but work will arise on a daily basis that wasn't considered during sprint planning.  Teams need to react to this new work and balance it daily against their goal.  They need to inform each other about new developments and threats to their goal.  They should care about accomplishing the tasks, but they should care about the goal more.

Anti-Tip: Force teams to use task tracking software.  They'll measure success by completing tasks, not adding value.

The ScrumMaster must know their role.  ScrumMasters do not run the daily stand-up.  They facilitate them.  The difference is that the rules for the stand-up come from the team and the ScrumMaster ensures that those rules are followed.  If the team has decided that being late to the stand-up is not acceptable, they'll likely have a rule in place to chastise those who are late.  Paying $1 or singing a song is common.  ScrumMasters must not let them off the hook. 

Anti-Tip: When you solve all of today's problems for the team, they'll expect you to solve tomorrow's problems as well.

Respect the time-box and start time.  Some of the most effective stand-ups I've seen were five-minute "hurricanes of energy and activity".  The team shared what they needed to share and went back to work.  Stand-ups that take longer than 15 minutes are just wrong and need to be fixed.  Also, don't waste time by having a variable start time (based on who shows up late).

Anti-Tip: Ignore the time-box and see who shows up on time (& vice-versa)

Prefer a physical task board.  This is not always possible to have, but here is no electronic replacement that is equivalent.  A physical task board with cards allows everyone on the team to handle the tasks simultaneously at the same location.  It encourages team ownership.

... & Avoid projectors.  This might seem a bit redundant given the last point, but projectors used in a stand-up meeting should be renamed "conversation killers".  Projectors usually involve a software tool that provides information in a linear, one-at-a-time way with someone, unfortunately often the ScrumMaster, at the keyboard/mouse controls.  If defeats the non-linear, swarming-on-the-goal, value of the stand-up.  Software tools are often a critical part of project planning and tracking, but they have no place in a co-located daily stand-up.

Anti-Tip: Usually tools allow only one operator (mouse/keyboard).  When there is one operator in the meeting, guess what happens to the engagement levels for everyone else?

It's owned by the team.  The team picks the format and time of day of the daily stand-up.  Since they own it, it should run the same way, regardless of whether the ScrumMaster is there or not.  One simple test I recommend to ScrumMasters is to occasionally hide around the time of the daily scrum and see what happens.  If the team meets and runs the stand-up the same way as when you are their, you are doing a good job.  If they don't meet or stand around wondering what to do, they have some things to fix.

Anti-Tip: Standing in a circle answering three questions is a secret formula which leads to the magical process fairy flying overhead, sprinkling productivity dust on people.  These practices have nothing to do with team engagement through ownership.

(this post was edited from an earlier post)
Categories: Blogs

Agile 2015 Conference Highlights: Saluting Enterprise Agility

Agile Management Blog - VersionOne - Thu, 08/13/2015 - 14:30

I am just returning from a fantastic week at the 2015 Agile Alliance Agile conference held from August 3-7 just outside Washington D.C. and wanted to share some highlights with those who were unable to attend. This conference attracts international interest and was attended by over 2300 participants, including both experienced practitioners looking to refine their game, as well as novices seeking to join in and reap the powerful benefits of this mainstream set of values and principles that we call “agile”.

As a title sponsor, VersionOne featured the latest innovations in its Enterprise Agile Platform to help enterprises succeed with scaling agile, our support for the Scaled Agile Framework® (SAFe®), and new capabilities such as TeamSync™ for JIRA.

The industry focus on DevOps continues, as do discussions on successfully navigating barriers to change and scaling successfully.  VersionOne featured a unified DevOps solution showcasing demonstrations of the new ClearCode integration that enables an automated visual flow of change throughout the software cycle from discovery through final delivery.

booth

 

 

 

 

 

 

 

 

 

The VersionOne theme, “Enterprise Agility:  Revolutionizing How Teams at All Levels Work Together,” echoed well with the conference sessions and discussions focusing on scaling agile across enterprises.  At VersionOne, we know that revolutionary change, change that really matters, can only be achieved by people working together at all levels.  Conference sessions and experience reports discussed keys to successful transformations, including the importance of executive support and addressing the underlying culture and the soft skills needed to succeed.  Conversations at the VersionOne booth included Dean Leffingwell, the creator of the Scale Agile Framework® (SAFe®), sharing insights around scaling agile.  Jeff Sutherland, Scrum co-originator, was also spotted sharing insights at the booth as well.

jeff&peter

VersionOne toasted 10 years of the State of Agile™ survey, the industry’s longest running survey, by serving champagne during the Wednesday evening vendor show.  A very popular tribute, needless to say!  And if you have not done so yet, please take a few minutes to participate in the State of Agile survey for this year (and you might win an Apple watch).  Go to www.stateofagile.com

VersionOne consultant, Susan Evans, gave an inspirational experience talk about following your beliefs to ensure your happiness and motivation at work.  Write your own career user story with job satisfaction acceptance criteria.  Are you in the right job?  Do you love your job?   Read her 3 part blog on this topic: http://blogs.versionone.com/agile_management/2015/01/05/99-problems-but-a-coach-aint-one-part-1-of-3/

Steve Ropa, VersionOne consultant, presented “Agile Craftsmanship and Technical Excellence:  How to Get There”.  To change your organization, set an example of “this is what we do here”.  Seek to become a mentor to others and to engage in continuous learning.  Read his blog related to this topic:  http://blogs.versionone.com/agile_management/2015/08/06/how-to-become-a-software-craftsman/

Also, Satish Thatte, another VersionOne Consultant, gave a light-hearted talk on “Scaling Agile Your Way,” based on his blog:  http://blogs.versionone.com/agile_management/2014/10/14/scaling-agile-your-way-how-to-develop-and-implement-your-custom-approach-part-4-of-4/

Then, of course, there were evening festivities.  The best party to be invited to was hosted by VersionOne at Bobby McKey’s Dueling Piano Bar featuring very talented musicians and songs we all knew and loved.  A great time and lots of fun were had by all.  No walking out early here!

joThe conference party theme on Thursday evening was Super Heroes.  Of course, the real heroes attending that night were those industry leaders who had the vision and the courage to guide their organizations and teams to a winning strategy focused on a culture of agility and lean principles.  One of the sessions presented by Michael Hamman described agile (transformational) leadership as the ability to grow adaptive capability across all aspects of the organization. In another session, Doc Norton encouraged adopting an experimentation-oriented mindset by challenging assumptions, compliance, and fear of failure.  In the closing keynote, James Tamm encouraged us to examine our own personal defensiveness as a way to overcome conflict and unhealthy cultural dynamics so we can move into an open, trusting, and collaborative culture.

Not surprising given the venue, a number of session topics focused on agile in government, dispelling once and for all the myths that agile cannot be successfully applied in the government sector.  The government sectors often face more ingrained cultural challenges to agile adoption than their commercial counterparts including:

  • Federal policies that agencies are audited against and contractor relationships dictated by contractual requirements which address traditional and “waterfallish” approaches
  • Earned value reporting and accounting driven by artifacts and activity versus outcome
  • Contract competitions which stifle collaboration
  • Command and control hierarchy that restrict flow of information and innovation

However this is changing and the fact is that many government agencies are overcoming these barriers and are realizing the benefits of agility.  Coming from the government sector myself and knowing agile works, this success is near to my heart.  And frankly, who should want to see this success more than taxpayers:  a government delivering a continuous stream of value efficiently.

To summarize key takeaways:

  • Scrum is more than a set of process and activities; it is about the continuous delivery of value and getting things done.
  • Large organizations across all industries are scaling agile across the entire enterprise and discussing how to optimize results.
  • To streamline delivery cycle time and improve time to market, you must tackle DevOps and this is the new focus of improvement in many organizations.
  • True agile transformation must address individuals and interactions, establishing a culture of trust and collaboration and alignment to vision and goals. This requires executive level commitment and action.

The closing keynote cited net income improvements of 755% between collaborative and adversarial work environments.  We need to see more leadership willing to tackle these challenges and deliver. It is never too late.

Whether you want to initiate an enterprise level agile transformation or just revitalize your practices, visit ttp://www.versionone.com/customer-success/ for information on getting started with our solution programs.

we want you

Finally, mark your calendars for next year’s conference. It will take place from July 25 – July 29, 2016 in Atlanta, Georgia, home base for the VersionOne family.  It promises to be even bigger and better!  Hope to see you there next year for another great learning opportunity and chance to reconnect with old friends and meet and connect with new associates who share your passion for enterprise agility.

Categories: Companies

2015 State of Scrum Report published

Ben Linders - Thu, 08/13/2015 - 13:24
The Scrum Alliance has published the 2015 State of Scrum Report. You can download the full report from the Scrum Alliance website. Continue reading →
Categories: Blogs

Teams and their proximity to the final user

Learn more about our Scrum and Agile training sessions on WorldMindware.com

A great, simple post from Mike Bowler…

Time: Teams that are writing code today that will be used by their customers tomorrow are very focused on what the customers actually need. Teams that are writing code today that won’t be seen by a customer for six months are less engaged.

https://www.linkedin.com/pulse/why-teams-care-mike-bowler

Mike Caspar
Passionate About Agile

Try out our Virtual Scrum Coach with the Scrum Team Assessment tool - just $500 for a team to get targeted advice and great how-to informationPlease share!
facebooktwittergoogle_plusredditpinterestlinkedinmail

The post Teams and their proximity to the final user appeared first on Agile Advice.

Categories: Blogs

Knowledge Sharing


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