Skip to content

Feed aggregator

The Great Positive Thinking Quotes Collection

J.D. Meier's Blog - Mon, 03/02/2015 - 03:28

I revamped my positive thinking quotes collection on Sources of Insight to help you amp up your ability to generate more positive thoughts. 

It’s a powerful one.

Why positive thinking?

Maybe Zig Ziglar said it best:

“Positive thinking will let you do everything better than negative thinking will.”

Positive Thinking Can Help You Defeat Learned Helplessness

Actually, there’s a more important reason for positive thinking: 

It’s how you avoid learned helplessness.

Learned helplessness is where you give up, because you don’t think you have any control over the situation, or what happens in your life.  You explain negative situations as permanent, personal, and pervasive, instead of temporary, situational, and specific.

That’s a big deal.

If you fall into the learned helplessness trap, you spiral down.  You stop taking action.  After all, why take action, if it won’t matter.  And, this can lead to depression.

But that’s a tale of woe for others, not you.   Because you know how to defeat learned helplessness and how to build the skill of learned optimism.

You can do it by reducing negative thinking, and by practicing positive thinking.   And what better way to improve your positive thinking, than through positive thinking quotes.

Keep a Few Favorite Positive Thinking Quotes Handy

Always keep a few positive thinking quotes at your fingertips so that they are there when you need them.

Here is a quick taste of a few of my favorites from the positive thinking quotes collection:

“A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.” –  Herm Albright

"Attitudes are contagious.  Are yours worth catching?" — Dennis and Wendy Mannering

"Be enthusiastic.  Remember the placebo effect – 30% of medicine is showbiz." — Ronald Spark

"I will not let anyone walk through my mind with their dirty feet." — Mahatma Gandhi

"If the sky falls, hold up your hands." – Author Unknown

Think Deeper About Positivity By Using Categories for Positive Thinking

But this positive thinking quotes collection is so much more.  I’ve organized the positive thinking quotes into a set of categories to chunk it up, and to make it more insightful:

Actions
Adaptability and Flexibility
Anger and Frustration
Appreciation and Gratitude
Attitude, Disposition, and Character
Defeat, Setbacks, and Failures
Expectations
Focus and Perspective
Hope and Fear
Humor
Letting Things Go and Forgiveness
Love and Liking
Opportunity and Possibility
Positive Thinking (General)

The distinctions you can add to your mental repertoire, the more powerful of a positive thinker you will be.

You can think of each positive thinking quote as a distinction that can add more depth.

Draw from Wisdom of the Ages and Modern Sages on the Art and Science of Positive Thinking

I've included positive thinking quotes from a wide range of people including  Anne Frank, Epictetus, Johann Wolfgang von Goethe, Napoleon, Oscar Wilde, Ralph Waldo Emerson, Robert Frost, Voltaire, Winston Churchill, and many, many more.

You might even find useful positive thinking mantras from the people that you work with, or the people right around you. 

For example, here are a few positive thinking thoughts from Satya Nadella:

“The future we're going to invent together, express ourselves in the most creative ways.”

“I want to work in a place where everybody gets more meaning out of their work on an everyday basis.

I want each of us to give ourselves permission to be able to move things forward.  Each of us sometimes overestimate the power others have to do things vs. our own ability to make things happen.

Challenge Yourself to New Levels of Positive Thinking through Positive Quotes

As you explore the positive thinking quotes collection, try to find the quotes that challenge you the most, that really make you think, and give you a new way to generate more positive thoughts in your worst situations. 

In the words of Friedrich Nietzsche, "That which does not kill us makes us stronger."

You can use your daily trials and tribulations in the workplace as your personal dojo to practice and build your positive thinking skills.

The more positivity you can bring to the table, the more you’ll empower yourself in ways you never thought possible.

As you get tested by your worst scenarios, it’s good to keep in mind, the words of F. Scott Fitzgerald:

"The test of a first-rate intelligence is the ability to hold two opposed ideas in the mind at the same time, and still retain the ability to function.  One should, for example, be able to see that things are hopeless and yet be determined to make them otherwise."

I’ll also point out that as you grow your toolbox of positive thinking quotes and you build your positive thinking skills, you need to also focus on taking positive action.

Don’t just imagine a better garden, get out and actually weed it.

Don’t Just Imagine Everything Going Well – Imagine How You’ll Deal with the Challenges

Here’s another important tip about positivity and positive thinking …

If you use visualization as part of your approach to getting results, it’s important to include dealing with setbacks and challenges.   It’s actually more effective to imagine the most likely challenges coming up, and walking through how you’ll deal with them, if they occur.   This is way more effective than just picturing the perfect plan where everything goes without a hitch.

The reality is things happen, stuff comes up, and setbacks occur.

But your ability to mentally prepare for the setbacks, and have a plan of action, will make you much more effective in dealing with the challenge that actually do occur.  This will help you respond vs. react in more situations, and to stay in a better place mentally while you evaluate options, and decide a course of action.  (Winging it under stress doesn’t work very well because we shut down our prefrontal cortex – the smart part of our brain – when we go into flight-or-fight mode.)

If I missed any of your favorite positive thinking quotes in my positive thinking quotes collection, please let me know.

In closing, please keep handy one of the most powerful positive thinking quotes of all time:

“May the force be with you.”

Always.

You Might Also Like

The Great Inspirational Quotes Revamped

The Great Happiness Quotes Collection Revamped

The Great Leadership Quotes Collection Revamped

The Great Love Quotes Collection Revamped

The Great Motivational Quotes Revamped

The Great Personal Development Quotes Collection Revamped

The Great Productivity Quotes Collection Revamped

Categories: Blogs

Python: Detecting the speaker in HIMYM using Parts of Speech (POS) tagging

Mark Needham - Sun, 03/01/2015 - 04:36

Over the last couple of weeks I’ve been experimenting with different classifiers to detect speakers in HIMYM transcripts and in all my attempts so far the only features I’ve used have been words.

This led to classifiers that were overfitted to the training data so I wanted to generalise them by introducing parts of speech of the words in sentences which are more generic.

First I changed the function which generates the features for each word to also contain the parts of speech of the previous and next words as well as the word itself:

def pos_features(sentence, sentence_pos, i):
    features = {}
 
    features["word"] = sentence[i]
    features["word-pos"] = sentence_pos[i][1]
 
    if i == 0:
        features["prev-word"] = "<START>"
        features["prev-word-pos"] = "<START>"
    else:
        features["prev-word"] = sentence[i-1]
        features["prev-word-pos"] = sentence_pos[i-1][1]
 
    if i == len(sentence) - 1:
        features["next-word"] = "<END>"
        features["next-word-pos"] = "<END>"
    else:
        features["next-word"] = sentence[i+1]
        features["next-word-pos"] = sentence_pos[i+1][1]
 
    return features

Next we need to tweak our calling code to calculate the parts of speech tags for each sentence and pass it in:

featuresets = []
for tagged_sent in tagged_sents:
    untagged_sent = nltk.tag.untag(tagged_sent)
    sentence_pos = nltk.pos_tag(untagged_sent)
    for i, (word, tag) in enumerate(tagged_sent):
        featuresets.append((pos_features(untagged_sent, sentence_pos, i), tag) )

I’m using nltk to do this and although it’s slower than some alternatives, the data set is small enough that it’s not an issue.

Now it’s time to train a Decision Tree with the new features. I created three variants – one with both words and POS; one with only words; one with only POS.

I took a deep copy of the training/test data sets and then removed the appropriate keys:

def get_rid_of(entry, *keys):
    for key in keys:
        del entry[key]
 
import copy
 
# Word based classifier
tmp_train_data = copy.deepcopy(train_data)
for entry, tag in tmp_train_data:
    get_rid_of(entry, 'prev-word-pos', 'word-pos', 'next-word-pos')
 
tmp_test_data = copy.deepcopy(test_data)
for entry, tag in tmp_test_data:
    get_rid_of(entry, 'prev-word-pos', 'word-pos', 'next-word-pos')
 
c = nltk.DecisionTreeClassifier.train(tmp_train_data)
c.classify(tmp_test_data)
 
# POS based classifier
tmp_train_data = copy.deepcopy(train_data)
for entry, tag in tmp_train_data:
    get_rid_of(entry, 'prev-word', 'word', 'next-word')
 
tmp_test_data = copy.deepcopy(test_data)
for entry, tag in tmp_test_data:
    get_rid_of(entry, 'prev-word', 'word', 'next-word')
 
c = nltk.DecisionTreeClassifier.train(tmp_train_data)
c.classify(tmp_test_data)

The full code is on my github but these were the results I saw:

$ time python scripts/detect_speaker.py
Classifier              speaker precision    speaker recall    non-speaker precision    non-speaker recall
--------------------  -------------------  ----------------  -----------------------  --------------------
Decision Tree All In             0.911765          0.939394                 0.997602              0.996407
Decision Tree Words              0.911765          0.939394                 0.997602              0.996407
Decision Tree POS                0.90099           0.919192                 0.996804              0.996008

There’s still not much in it – the POS one has slightly more false positives and false positives when classifying speakers but on other runs it performed better.

If we take a look at the decision tree that’s been built for the POS one we can see that it’s all about POS now as you’d expect:

>>> print(c.pseudocode(depth=2))
if next-word-pos == '$': return False
if next-word-pos == "''": return False
if next-word-pos == ',': return False
if next-word-pos == '-NONE-': return False
if next-word-pos == '.': return False
if next-word-pos == ':':
  if prev-word-pos == ',': return False
  if prev-word-pos == '.': return False
  if prev-word-pos == ':': return False
  if prev-word-pos == '<START>': return True
  if prev-word-pos == 'CC': return False
  if prev-word-pos == 'CD': return False
  if prev-word-pos == 'DT': return False
  if prev-word-pos == 'IN': return False
  if prev-word-pos == 'JJ': return False
  if prev-word-pos == 'JJS': return False
  if prev-word-pos == 'MD': return False
  if prev-word-pos == 'NN': return False
  if prev-word-pos == 'NNP': return False
  if prev-word-pos == 'NNS': return False
  if prev-word-pos == 'POS': return False
  if prev-word-pos == 'PRP': return False
  if prev-word-pos == 'PRP$': return False
  if prev-word-pos == 'RB': return False
  if prev-word-pos == 'RP': return False
  if prev-word-pos == 'TO': return False
  if prev-word-pos == 'VB': return False
  if prev-word-pos == 'VBD': return False
  if prev-word-pos == 'VBG': return False
  if prev-word-pos == 'VBN': return True
  if prev-word-pos == 'VBP': return False
  if prev-word-pos == 'VBZ': return False
if next-word-pos == '<END>': return False
if next-word-pos == 'CC': return False
if next-word-pos == 'CD':
  if word-pos == '$': return False
  if word-pos == ',': return False
  if word-pos == ':': return True
  if word-pos == 'CD': return True
  if word-pos == 'DT': return False
  if word-pos == 'IN': return False
  if word-pos == 'JJ': return False
  if word-pos == 'JJR': return False
  if word-pos == 'JJS': return False
  if word-pos == 'NN': return False
  if word-pos == 'NNP': return False
  if word-pos == 'PRP$': return False
  if word-pos == 'RB': return False
  if word-pos == 'VB': return False
  if word-pos == 'VBD': return False
  if word-pos == 'VBG': return False
  if word-pos == 'VBN': return False
  if word-pos == 'VBP': return False
  if word-pos == 'VBZ': return False
  if word-pos == 'WDT': return False
  if word-pos == '``': return False
if next-word-pos == 'DT': return False
if next-word-pos == 'EX': return False
if next-word-pos == 'IN': return False
if next-word-pos == 'JJ': return False
if next-word-pos == 'JJR': return False
if next-word-pos == 'JJS': return False
if next-word-pos == 'MD': return False
if next-word-pos == 'NN': return False
if next-word-pos == 'NNP': return False
if next-word-pos == 'NNPS': return False
if next-word-pos == 'NNS': return False
if next-word-pos == 'PDT': return False
if next-word-pos == 'POS': return False
if next-word-pos == 'PRP': return False
if next-word-pos == 'PRP$': return False
if next-word-pos == 'RB': return False
if next-word-pos == 'RBR': return False
if next-word-pos == 'RBS': return False
if next-word-pos == 'RP': return False
if next-word-pos == 'TO': return False
if next-word-pos == 'UH': return False
if next-word-pos == 'VB': return False
if next-word-pos == 'VBD': return False
if next-word-pos == 'VBG': return False
if next-word-pos == 'VBN': return False
if next-word-pos == 'VBP': return False
if next-word-pos == 'VBZ': return False
if next-word-pos == 'WDT': return False
if next-word-pos == 'WP': return False
if next-word-pos == 'WRB': return False
if next-word-pos == '``': return False

I like that it’s identified the ‘:‘ pattern:

if next-word-pos == ':':
  ...
  if prev-word-pos == '<START>': return True

Next I need to drill into the types of sentence structures that it’s failing on and work out some features that can handle those. I still need to see how well a random forest of decision trees would as well.

Categories: Blogs

Eat Risks for Breakfast, Poop Awesomeness All Day!

Leading Answers - Mike Griffiths - Sun, 03/01/2015 - 00:03
I have submitted a presentation for Agile 2015 Conference about team based risk and opportunity management that may well get rejected based on its title alone! It has always been a good practice to engage team members in the estimation... Mike Griffiths
Categories: Blogs

A Stakeholder goes to St. Ives

lizkeogh.com - Elizabeth Keogh - Sat, 02/28/2015 - 20:32

As I was trying to resolve my problem, I met a portfolio team with seven programmes of work.

Each programme had seven projects;

Each project had seven features;

Each feature had seven stories;

Each story had seven scenarios.

How many things did I need to resolve?


Categories: Blogs

The Role of PI Objectives by Eric Willeke

Agile Product Owner - Sat, 02/28/2015 - 18:43

We are always grateful to the SPCs in the field who are transforming enterprises to a new and better Lean and Agile way of working with SAFe. It’s heavy lifting, but the results (see Case Studies, many more on the way): higher quality and productivity, faster time to market, higher quality of work life, are so worth it. Many of the SPCs are thought leaders in their own right, and contribute directly to the SAFe body of knowledge.

Eric Willeke from Rally is a good example. He recently opined on the critical role that the interesting mechanism of “PI Objectives” play in aligning the business and helping Agile Release Trains achieve better outcomes. His post is here: Role of PI Objectives in SAFe.

And a while back, he contributed another neat bit of work, highlighting how SAFe applies WIP limits, both explicitly and simplicity at the Portfolio level, where it really counts. Just for reference, that post is Perspective on SAFe Portfolio-WIP-Limits.

Both of these belong in Guidance, so I’ll talk to Eric and see if we can get that accomplished.

Thanks Eric!

Categories: Blogs

Summary of five years

Thought Nursery - Jeffrey Fredrick - Sat, 02/28/2015 - 11:05

“What have you been doing these last few years?” was the question Péter Halácsy asked me during my visit to Prezi. I was there to for the CTO equivalent of a developer exchange: learning how things were done at Prezi, sharing my observations, and then speaking at the Budapest Jenkins meetup. Prior to my visit Péter had come to this blog to learn more about me, only to learn that I’d not been blogging. I’m resolved to get back into the blogging habit this year and I decided I’d take the time to fill in the gap for any future Péters. In part this will recapitulate my LinkedIn profile but also describe some of what I felt was most significant.

The primary reason I only posted a single post after 2009 was that I joined Urbancode in a marketing/evangelism role and I posted almost everything I had to say under their masthead. In my two and half years there I had a great time spreading the word about build automation, continuous delivery and Devops. I was able to visit a wide range of companies, learn first hand about the challenges of enterprise organization, and then turn this information into new content. At Urbancode we developed a very good flow of information and almost every month we had a new webinar, a newsletter, and maybe a white paper. My primary content collaborator was Eric Minick and he has kept up those evangelizing ways at IBM following their acquisition of Urbancode.

After I left Urbancode we made a family decision to try living in London for a few years. I reached out to Douglas Squirrel and he brought me into TIM Group to do continuous delivery, infrastructure and operations. In my time there I’ve become CTO and Head of Product and I’ve really enjoyed the opportunity to apply what I know, both about product development and about organizational change. I’ve been almost equally as absent from the TIM Group development blog, but I have managed to share some of our experiences and learning at a few conferences including GOTO Conference 2012 (talk description & slides: A Leap from Agile to DevOps), London Devops Days 2013 (video of talk: Crossing the Uncanny Valley of Culture through Mutual Learning),  and XPDay London 2014.

During my time in London Benjamin Mitchell has been one of the biggest influences on my thinking and approach to organizational change. Benjamin has been a guide to the work of Chris Argyris and Action Science. It has been what I’ve learned from and with Benjamin that has inspired me to start the London Action Science Meetup.

Finally, I couldn’t recap the last few years without also mentioning Paul Julius and CITCON. Since I last mentioned CITCON North America in Minneapolis on this blog in 2009 we’ve gone on to organize 16 additional CITCON events worldwide, most recently in Auckland (CITCON ANZ), Zagreb (CITCON Europe), Austin (CITCON North America), and Hong Kong (CITCON Asia). For PJ and I this is our 10th year of CITCON (and OIF, the Open Information Foundation) and it has been fantastic to continue to meet people throughout the world who care about improving the way we do software development.

Categories: Blogs

Fueling Delivery Teams

Leading Agile - Mike Cottmeyer - Fri, 02/27/2015 - 20:52

I’ve started using an analogy to illustrate the importance of product owner teams in larger organizations.  When working with organizations to do an agile transformation, almost always, a tiered model is used for scaling across the organization. The model looks something like this:

tiered-model

The top tier is portfolio management which is responsible for investment decisions and what initiatives continue to move forward. The middle tier is representative of the Product Owner role in Scrum and is where we often create program teams, sometimes called product owner teams. The bottom tier is where stable cross-functional teams reside that are delivering increments of value in some cadence such as every two weeks.

Let me describe this engine analogy to see if it resonates with you. Stable Engines

I think of the delivery tier as the engine of the organization. Each delivery team is designed to operate at a sustainable pace in a very predictable manner. If we think of each team as an engine then we may find some operate at 2500 RPM, others 3500 RPM, regardless, they each operate at a RPM that is sustainable. If we can operate with little variance then we can start to become predictable and make promises on what can be delivered over time. If a team is running at 2500 RPM then I can determine how far that team will travel if that engine powers a car.

But, if we push the engine past a sustainable pace, or have them operate past the redline, then the engine becomes stressed, will wear out more quickly, and likely fail to deliver as expected and certainly become unpredictable.

Fuel for the Engines

Product owner teams represent refineries responsible for providing good fuel. They must understand the business goals and problems to be solved, collaborate with delivery teams to define capabilities to build, and further decompose those into clear backlog items that provide clean burning fuel needed by the engines.

Provide bad fuel – the teams sputter and are unable to run at a consistent RPM. Bad fuel will not allow us to make promises to the market or our customers.

Drilling Locations

I haven’t completely vetted this out in my mind, but when thinking about portfolio management I believe this is where we are making investments on where to drill for crude oil. We increasingly learn more about the potential initiatives, collaborate with the product owner teams, and possibly delivery teams to progressively gain more knowledge so we can make funding or cut decisions about where we will invest.

Wrapping Up

This analogy seems to resonate when I’ve used it over the last few months to describe the responsibilities of delivery teams and product owner teams. Turning crude into clean burning fuel is a big job and really highlights the challenge most organizations have in providing clarity to their delivery teams.

I would love to get your thoughts on how I’m thinking about this.

The post Fueling Delivery Teams appeared first on LeadingAgile.

Categories: Blogs

What’s the Best Conference Talk You’ve Heard?

Rally Agile Blog - Fri, 02/27/2015 - 15:00

The tech industry has long used conferences to share ideas, products, practices, and news. In this era of TED talks, YouTube, SlideShare, and livestreaming, it's easier than ever to be in the audience when thought leaders take the stage.

The best conference talks -- even if they’re virtual -- elicit a reaction that’s visceral: they make you think and act differently. Whether it’s a jarring statistic, or a humorous anecdote, or a charismatic speaking style, something about the best talks stays with you long after the talk has ended.

Ring a bell? That’s the kind of talk we’re after for RallyON 2015. Here are some talks from last year’s RallyON that people still talk about today.

What’s the most intractable, inefficient, and slow-moving organization you can think of? If you said the US government, you’re probably not alone. As we learned in this talk by former Assistant Secretary and CIO of the Department of Veterans Affairs, Roger W. Baker, implementing Agile at the VA had powerful and mind-changing consequences.

  • The department’s success rate for IT programs went from 30% to 83%.
  • The VA returned $373 million to the US Treasury budget.
  • It deployed the Veterans Benefits Management System—a $700 million program that completely replaced a paper-based system—six months ahead of schedule.

It’s rare to get a peek at how large, publicly traded enterprises do things under the hood; it’s even rarer to hear them talk about both what’s working and what’s not. So when Wendi Nagy, Program Director at Comcast, assembled a team (PMO Director Paul McGregor and Agile Coach Janelle Brunke) to share the lessons learned in the company’s Agile transformation, people listened.

  • What they did right: standardizing iteration length and using common user story formats in a single Rally workspace.
  • What they did wrong: a “never say no” culture that resulted in too much WiP.
  • What’s working: instead of delivering in silos, teams demo features to internal and external clients at the end of iterations -- earning them a great reputation for delivering.

You’ve probably heard or seen a conference talk that made you think twice, made you want to share it with everyone you know, or made you change how you do things. What’s the best one in your book? What would you like to hear at RallyON 2015? Submit to our Call for Content and tell us more in the comments below.

Rally Software
Categories: Companies

Gastblog: Ervaringen met Agile en Scrum Certificeringen

Ben Linders - Fri, 02/27/2015 - 11:02
In deze gastblog deelt Erik Philippus van ImprovemenT zijn ervaringen met diverse agile en Scrum certificeringen. Continue reading →
Categories: Blogs

What Is An Agile Team and How Do You Form Them?

Leading Agile - Mike Cottmeyer - Fri, 02/27/2015 - 11:00

An agile team is not just any random group of people. An agile team is not a group of business analysts doing a daily standup to coordinate their work. It’s not a group of developers that meet every other week to do sprint planning. It’s not a project team with folks matrixed across two or more other agile teams.

An agile team is a cross-functional group of people that have everything, and everyone, necessary to produce a working, tested increment of product. These people are dedicated to the team, and as a rule, do not move between or across teams as demand ebbs and flows.

I’m going to suggest that the very definition of an agile team… a cross-functional group of people that have everything, and everyone, necessary to produce a working, tested increment of product… is getting in the way of forming agile teams, mostly because we misunderstand what a product actually is.

In the small, this guidance is clear… it’s the system all the way from user interaction to data and back and all the abilities to deploy and install said product into production. In the large, forming a team like this isn’t usually possible, and often if possible, not advisable.

In the large, a product is actually a sub-system of a larger systems integration.

When you look at a product this way, it is often very possible to create a small cross-functional group of people that has everything, and everyone, necessary to produce a working, tested increment of product.

The idea is that you organize around products or features where you can, and you organize around subsystems where you have shared functionality. We call these collectively business capabilities. Once you have the business capabilities understood, you align the business capabilities with the technical architecture and ultimately the organizational architecture.

The intersection and alignment of business architecture, technical architecture, and organizational architecture is where you form a complete cross-functional group of people that have everything, and everyone, necessary to produce a working, tested increment of their part of the product.

Because your business architecture, technical architecture, and organizational architecture are probably broken, you are going to have dependencies between these teams that are going to have to be managed. For now.

Over time, the job of the transformation initiative is to break these dependencies.

Dependencies are evil and they need to be broken.

The more you manage dependencies the less agile you will be, period.

Over time, as you break these dependencies, you will be able to treat each of these teams as pure play agile teams.

Until you start forming teams that align business capabilities with technical architecture and organizational architecture, and begin the hard work of breaking dependencies… all you can do is go through the motions of Scrum. You will never get the value you are working towards.

I’m telling you guys… the reason you’re doing agile and not feeling very agile is because you don’t have these kinds of teams and you have way too many dependencies.

No amount of daily standup meetings is going to fix this problem.

An agile culture won’t do the hard work for you.

The post What Is An Agile Team and How Do You Form Them? appeared first on LeadingAgile.

Categories: Blogs

Ten Outsourcing Considerations

Bobtuse Bobservations - Bob MacNeal - Fri, 02/27/2015 - 04:07
Software developer testing with JUnitTen outsourcing considerations when choosing a software development team: Are they local?Are they recommended by someone you trust?Are they demonstrably...

Bobtuse can be wildly informative
Categories: Blogs

R/ggplot: Controlling X axis order

Mark Needham - Fri, 02/27/2015 - 02:49

As part of a talk I gave at the Neo4j London meetup earlier this week I wanted to show how you could build a simple chart showing the number of friends that different actors had using the ggplot library.

I started out with the following code:

df = read.csv("/tmp/friends.csv")
top = df %>% head(20)
 
ggplot(aes(x = p.name, y = colleagues), data = top) + 
  geom_bar(fill = "dark blue", stat = "identity")

The friends CSV file is available as a gist if you want to reproduce the chart. This is how the chart renders:

2015 02 27 00 41 08

It’s in a fairly arbitrary order when it would be quite cool if we could get the most popular people to show from left to right.

I had the people’s names in the correct order in the data frame but annoyingly it was then sorting them into alphabetical order. Luckily I came across the by using the scale_x_discrete function which does exactly what I needed.

If we pass in the list of names to that function we get the chart we desire:

ggplot(aes(x = p.name, y = colleagues), data = top) + 
  geom_bar(fill = "dark blue", stat = "identity") + 
  scale_x_discrete(limits= top$p.name)

2015 02 27 00 45 01

Categories: Blogs

Updated: Full-Day Product Owner Simulation

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

The Product Owner Simulation that I shared last summer has some minor updates based on a stronger emphasis on product vision.  In particular, two 5 minute exercises before and after the Product Box exercise help to frame the concept of product vision and make it stronger.

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
Categories: Blogs

The One Immutable Law of Adopting Agile

Leading Agile - Mike Cottmeyer - Thu, 02/26/2015 - 10:00

I have three non-negotiables when it comes to running an agile transformation. If we are unwilling to create clear, well-articulated backlogs… if we are unwilling to form complete cross-functional teams… and if we are unwilling to produce working, tested software on regular intervals… we probably shouldn’t even get started. Without these three pre-conditions it is unlikely that adopting agile practices (or even an agile culture) will make much of a dent in terms of how you put product into market.

That said, the number one thing that gets in the way of creating clear, well-artciulated backlogs, forming complete cross-functional teams, and producing working tested software on regular intervals is dependencies. Let’s just say it… dependencies are evil. Dependencies break agile. You have two choices when faced with a dependency… you can either break it or you can manage it. The more dependencies you choose to manage instead of breaking, the less agile you will be over time.

This might just be the one immutable law of adopting agile.

The post The One Immutable Law of Adopting Agile appeared first on LeadingAgile.

Categories: Blogs

ScrumDay France, Paris, April 2-3 2015

Scrum Expert - Thu, 02/26/2015 - 09:31
ScrumDay France is a two-day conference taking place in Paris. It is focused on all aspects of Scrum with session in French but with keynotes in English. In the agenda of the ScrumDay France you can find topics like “Simple but not simplistic” avec Dave Snowden, “The Scaling Dilemma” by Mary Poppendieck, “Équipes agiles : survivre à la disparition des managers”, “Dérapage contrôlé en toute agilité!”, “Les équipes Produit à l’assaut des silos!”, “Migrez vers le Management 3.0″, “Scrum Shu Ha Ri”, . Web site: http://www.scrumday.fr/ Location for the ScrumDay France conference: Disneyland ...
Categories: Communities

Lean Change Method: Enabling Lean and Agile Transformations at Scale

Jeff Anderson, Lean-Agile Advisory Practice Lead at Deloitte Canada, explains how the Lean Change method helps organizations manage agile transformations at scale through co-creation and validated learning. About This Webinar Watch this webinar recording to learn how to: – Collaboratively design a potential Agile change using a Change Canvas – Build a feedback-rich change plan through […]

The post Lean Change Method: Enabling Lean and Agile Transformations at Scale appeared first on Blog | LeanKit.

Categories: Companies

Why LeadingAgile?

Leading Agile - Mike Cottmeyer - Thu, 02/26/2015 - 03:47

We are working on more video for the site to tell our story. This is the first stab.

The post Why LeadingAgile? appeared first on LeadingAgile.

Categories: Blogs

R: Conditionally updating rows of a data frame

Mark Needham - Thu, 02/26/2015 - 02:45

In a blog post I wrote a couple of days ago about cohort analysis I had to assign a monthNumber to each row in a data frame and started out with the following code:

library(zoo)
library(dplyr)
 
monthNumber = function(cohort, date) {
  cohortAsDate = as.yearmon(cohort)
  dateAsDate = as.yearmon(date)
 
  if(cohortAsDate > dateAsDate) {
    "NA"
  } else {
    paste(round((dateAsDate - cohortAsDate) * 12), sep="")
  }
}
 
cohortAttendance %>% 
  group_by(row_number()) %>% 
  mutate(monthNumber = monthNumber(cohort, date)) %>%
  filter(monthNumber != "NA") %>%
  filter(monthNumber != "0") %>% 
  mutate(monthNumber = as.numeric(monthNumber)) %>% 
  arrange(monthNumber)

If we time this function using system.time we’ll see that it’s not very snappy:

system.time(cohortAttendance %>% 
  group_by(row_number()) %>% 
  mutate(monthNumber = monthNumber(cohort, date)) %>%
  filter(monthNumber != "NA") %>%
  filter(monthNumber != "0") %>% 
  mutate(monthNumber = as.numeric(monthNumber)) %>% 
  arrange(monthNumber))
 
   user  system elapsed 
  1.968   0.019   2.016

The reason for the poor performance is that we process each row of the data table individually due to the call to group_by on the second line. One way we can refactor the code is to use the ifelse which can process multiple rows at a time:

system.time(
cohortAttendance %>% 
  mutate(monthNumber = ifelse(as.yearmon(cohort) > as.yearmon(date), 
                              paste((round(as.yearmon(date) - as.yearmon(cohort))*12), sep=""), 
                              NA)))
   user  system elapsed 
  0.026   0.000   0.026

Antonios suggested another approach which involves first setting every row to ‘NA’ and then selectively updating the appropriate rows. I ended up with the following code:

cohortAttendance$monthNumber = NA
 
cohortAttendance$monthNumber[as.yearmon(cohortAttendance$cohort) > as.yearmon(cohortAttendance$date)] = paste((round(as.yearmon(cohortAttendance$date) - as.yearmon(cohortAttendance$cohort))*12), sep="")

Let’s measure that:

system.time(paste((round(as.yearmon(cohortAttendance$date) - as.yearmon(cohortAttendance$cohort))*12), sep=""))
   user  system elapsed 
  0.013   0.000   0.013

Both approaches are much quicker than my original version although this one seems to be marginally quicker than the ifelse approach.

Note to future Mark: try to avoid grouping by row number – there’s usually a better and faster solution!

Categories: Blogs

Cultural Judo – How to Change Culture Without Changing Culture

Leading Agile - Mike Cottmeyer - Thu, 02/26/2015 - 01:21

There are a bunch of us out there that are super passionate about this notion of agile as a cultural framework… or a value system… or a mindset. If you’ve been following this blog for any length of time, I suspect you’ll know where I stand on this. I think that culture, values, and mindset are important… but they aren’t why we adopt agile. We adopt agile to build better software, software that our customers want to use, and to get better economic outcomes for our companies.

To the extent that culture, values, and mindset lead to those outcomes… great… but culture, values, and mindset are not why we adopt agile. They are a byproduct.

If we allow for a moment that culture, values, and mindset are a necessary precondition for adopting agile… let’s think through what that actually means. Let’s say we have a traditional organization… functionally soloed… tightly coupled legacy architecture… matrixed, project based delivery system… overlapping, intertwined value streams… power struggles between executives… compensation models that reinforce and incentivize around the existing system… and all the cultural toxicity that you might expect comes along with this… what do you do?

Do you come in and give everyone a pep talk on the value of agile? Do you invite them to participate and hope that they all agree and self-organize into a new, rational delivery model? Do you run them through ScrumMaster training and have them bring back a bunch of practices that are incongruent with their existing culture and delivery framework? How do you create safety for people to step out and try new things? What if the team level folks all see the value, but those in power with the most to loose don’t?

I’d suggest that you can’t attack culture by attacking culture. You have to meet the organization where it is today and use it’s own weight against it.

Most people in these kinds of organizations recognize that something is broken and that something needs to be fixed… they just don’t trust everyone around them to necessarily work in their best interest to fix it. Our approach is to use the organizations need for predictability and control to actually create the conditions where agile practices and culture can take hold. We know that agile creates more visibility, more insight into what’s going on, better ability to make and meet commitments than any sequential process.

We have to use agile to get the organization what it needs and to create the conditions for change. We create the conditions for agile by creating the org patterns that enable agility.

When you are promising the organization what it wants now… predictability, quality, early return on investment… and can make the case that all this agile stuff gets them there faster… you can begin the change without even mentioning culture, values, or mindset. Instead, you talk about backlogs, teams, and working tested software delivered on regular intervals. You talk about metrics and planning. You talk about the ability to realize revenue earlier, you talk about creating clean breakpoints where we can change direction, you talk about having greater ability to make and meet commitments.

None of this is incongruent with where we want to go… none of this is incongruent with evolving a healthier culture, living agile values, or adopting an agile mindset… those things just aren’t where we start. We start by adopting an agile system of delivery, a system that delivers the business results your company so desperately needs, while creating the conditions for more agile practices to take root… and a more agile culture to emerge over time. You are never going to change culture by telling everyone they are doing it wrong and need to change.

My belief is that to effectively change culture, you have to create safety… you have to create alignment… you have to create congruence between your desired outcomes and rewards. You have to have a rational system of delivery that allows people to show up for work, to be able to do what they are being asked to do, and really see and feel what it is like to be successful in that new model. In an organization with a highly toxic culture, you have to lead with a point of view and a plan and push the organization to change… I don’t believe pull will work.

I think culture, values, and mindset are important, but I tend to see them as a byproduct of a rational system of delivery… a system of delivery that creates safety for everyone involved… a system of delivery that allows those cultural norms, applied values, and mindset to emerge over time. People ask me all the time how to sell agile to your executives… the answer is to simply stop talking about what we want to accomplish with agile and start aligning agile to the business drivers that are most important to your executives.

Use the organizations weight against it. Sell the organization a way to solve it’s business problems… you’ll get the culture change for free.

The post Cultural Judo – How to Change Culture Without Changing Culture appeared first on LeadingAgile.

Categories: Blogs

SAFe News: LSE Big Picture updates, Preview Schedule and More

Agile Product Owner - Wed, 02/25/2015 - 21:57

Hi Folks,

Many of us have been heads-down with LSE development (and admittedly a bit behind our planned power curve), so we haven’t communicated as frequently as we would like. But here’s a quick update:

  • We’ve received a lot of feedback about the evolution of the SAFe LSE Big Picture, the framework structure and intent, and its potential impact on SAFe 4.0. Long story short: PIs will be PIs in both LSE and SAFe 4.0 (Quantum is dead). Lots of other changes as well, as you can see from the latest revision of the BP, below.
  • The “Preview” version of the LSE framework will go live (publicly facing) in the next week or so. Most articles are in place, though some will only have abstracts initially. All articles, including the abstract-only ones, will be open for public comments through the WordPress comment mechanism. The framework will continue to evolve over the course of this year, with feedback open to the public for the next six months or so. Our plan is to reach V1.0 (all articles complete and revised a few times, certainly some new articles, Guidance, Glossary etc.) later in the year.
  • The first LSE training, “Applied Lean Systems Engineering with SAFe LSE “, a three day course, will be held April 14-16 in Boulder, CO. Space is still available. Register here. Additional sessions are scheduled later in the year, check Scaled Agile Academy for details.  Those later courses will be four day courses, with the fourth day intended for the SAFe Systems Consultant (SSC) certification process. However, that process will begin at the April 2015 class, and attendees that wish for certification will be automatically enrolled in SSC Certification process. We’ll provide some ongoing training, an exam, etc. (Attendees will not have to attend an additional class to become certified.)

And here is the new BP!

SAFe LSE Big Picture (rev 59)

SAFe LSE Big Picture (rev 59)

In other SAFe news:
  • SAFe 4.0 continues in development with an August 2015 release.  Richard Knaster is leading that charge. We’ll sneak preview that BP update shortly.
  • A new video book, Leading SAFe Live Lessons, an in-depth exploration of the principles and practices of the Scaled Agile Framework,  will be published by Pearson in about a month. Based on Leading SAFe, this 7-hr hour video text is my first foray into video books. I think it worked out ok. It will be included in Pearson’s Safari Books On Line series for those who subscribe, put will also be purchasable independently as well.
  • Leading SAFe 9, with a new pedagogy (following the Live Lesson’s Lesson and sub-lesson format), will also be release this summer. A couple of other new courses will also be released this summer.
  • Richard Knaster is working hard on a new book: SAFe Distilled, a 180 page overview of the framework. It’s about half written and will be released sometime towards the end of summer. It will be based on SAFe4.0

That’s it for the moment.

Stay tuned and stay SAFe!

-Dean

 

Categories: Blogs

Knowledge Sharing


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