Skip to content

Feed aggregator

Using blog as a teaching aid

Manage Well - Tathagat Varma - Mon, 02/23/2015 - 15:36
Last year, I started conducting an experiment in my classes. For the class assignment, I asked my students to write a blog post that they would need to share among all class mates. Also, I insisted that the blog post be visible to anyone on the internet. Here's why I did that:
Categories: Blogs

January Recap: Dallas and Southlake Learn about Conflict

DFW Scrum User Group - Mon, 02/23/2015 - 14:27
Conflict. What comes to mind when you think about conflict? Do you view it as a problem to solve? Something to make go away? What if you could welcome conflict as an urge for change? This was the subject of an … Continue reading →
Categories: Communities

XP Day Vietnam, Da Nang and Ha Noi, April 18-19 2015

Scrum Expert - Mon, 02/23/2015 - 11:47
XP Day Vietnam series of two one-day conferences on eXtreme Programming and Agile that will take place in Da Nang and Ha Noi. This event provides a chance for the participants to share their passion on Agile practices, exchange new practical skills, hands-on exercise and extreme experience. XP Day Vietnam 2015 proposes of 3 tracks: Technology & Technique; Introduction & Use Case; Serious Games & Team. The conference will offer high-quality tutorials, activities, workshops, and keynote speeches from experts of Agile Vietnam, Java Communities and other influential software companies around Asia. Web ...
Categories: Communities

Mein persönliches Taskboard: Rettungsleine in komplexen Umfeldern

Scrum 4 You - Mon, 02/23/2015 - 08:30

Als Consultant und ScrumMaster prasseln auf mich jeden Tag Unmengen an Anforderungen ein, die meine Aufmerksamkeit fordern. Ich bin die Schnittstelle zwischen Management und Team, gleichzeitig arbeite ich daran, die Teams voranzubringen und sie beim Erreichen ihrer Ziele zu unterstützen. Meine Kollegen und ich arbeiten an agilen Transitionen und nebenbei sollten wir auch noch das eine oder andere für die eigene Firma erledigen. So komme ich jeden Tag auf einen Katalog von 50 Dingen, die auf mich warten und mir im Kopf herumschwirren. Um bei dieser Menge an Tasks nicht die Übersicht zu verlieren, orientiere ich mich an meinem eigenen Taskboard.

Wenn ich Montag früh um 6.00 am Flughafen Wien sitze und auf meinen Flieger warte, hole ich mein persönliches Notizbuch heraus und erstelle mein Taskboard. Ich orientiere mich dabei immer an den Tasks der letzten Woche, schreibe sie aber jede Woche neu und filtere dabei automatisch Dinge aus, die nicht mehr relevant sind. Anschließend ergänze ich Dinge, die dazugekommen sind und durchforste die Mails der letzten Woche danach, ob mir etwas entgangen ist. Prinzipiell unterteile ich meine Liste in zwei Bereiche: Small Tasks und Big Tasks.

personal_taskboard

Small Tasks soll ich im Laufe der Woche erledigen. Big Tasks hätte ich am liebsten gestern fertig gestellt, aber ich bin mir bewusst, dass diese mit größeren strukturellen Veränderungen verbunden sind und ich nur kleine Schritte in die richtige Richtung gehen kann. Abschließend priorisieren ich nach dem A,B,C Schema:

  • A für wichtig & dringend
  • B für wichtig, aber nicht dringend
  • C für unwichtig & nicht dringend

Die A-Punkte sind meine Leuchttürme, an denen ich mich orientiere. Dabei suche ich Synergiemöglichkeiten, um die B-Punkte mitzunehmen. Bei den C-Punkten bin ich mir bewusst, dass sie wahrscheinlich nicht erfüllt werden können.

Während der Woche lebt diese Liste: Neue Dinge kommen hinzu, erledigte Dinge werden durchgestrichen. Wenn ich das Gefühl habe, den Überblick zu verlieren, reicht ein Blick in meine Liste aus, um wieder zu wissen, was diese Woche wichtig ist. Das Taskboard hat aber noch einen weiteren wunderbaren Nebeneffekt: Am Ende der Woche, wenn ich in meinem Flieger heimwärts sitze und das Gefühl habe, nicht genügend bewegt zu haben, nehme ich mein Taskboard und lasse meinen Blick über die erledigten Tasks schweifen. Dadurch wird mir bewusst, wie viel in der letzten Woche in die gewünschte Richtung gegangen ist. Ein überaus beruhigendes Gefühl, das mich auf ein zufriedenes Wochenende einstimmt.

Noch ein Tipp am Ende: Verwenden Sie für das persönliche Taskboard ein klassisches Notizbuch und kein elektronisches Tool. Probieren Sie es einfach eine Woche lang aus und Sie werden die Vorteile des altmodischen Mediums schnell erkennen, sobald Sie eine Grafik bei einem Task hinzufügen wollen.

Categories: Blogs

Kanban Portfolio View

Notes from a Tool User - Mark Levison - Mon, 02/23/2015 - 08:24

Kanban Portfolio view

(Presented as Part 2 in the Scrum Alone is Not Enough series.)

Do you know what projects your Team is working on?

Do you know what the Teams around you are working on? Does everyone in your organization know?

In almost every organization that I visit, the answer is a resounding no. Scrum may have been implemented at the Team level but nothing is being done beyond that. Is there any dark work being done? Is it a high priority?

Without a clear picture, individual Teams and Team members don’t know what the overall priorities are, so they won’t know if a favour that someone asks for is in scope and valuable, or an expensive distraction. As a result, a lot of lower priority work is completed and causes unintentional damage to the project.

Kanban – (a tool to understand and improve flow) to help understand the flow of work at both the Team and organization level. Without a good understanding of flow of work through the organization, we might make a change that is a local improvement but harms the whole

Kanban has three core rules: visualize your work, limit your work in progress, and measure and improve.

1. Visualize your work

Our first goal is to find a way of visualizing your work in a structure that your Team and your peers will understand immediately.

Some examples:

Kanban for portfolio management

kanban board

 

 

Create Your Initial Kanban Wall

Gather enough of your peers and build a consensus overview of your work. Write down all of the steps in your world of work: from the moment an idea comes up, until it can be deployed. You can do this with the formality of value stream map or you can just write down an ordered list of the steps. Since we’re creating a portfolio view, the minutia of what happens inside a single development Team is probably just going to be a distraction.

For the Teams at the “World’s Smallest Online Bookstore”, the list of steps looks like this: Idea -> Idea Accepted -> Product Backlog -> Sprint Backlog -> Done -> Online Help Done -> Deployed -> Translated

Turned into a Kanban wall for two Teams, it might look like this:

SmallestOnlineBookstore_Portfolio

Track the Work

Once the board structure is complete, work with each Team to find out the current state of their work. To keep it simple and high level, consider tracking chunks of work that are ~1 week in size per Team (if you’re doing Story Point estimation, imagine that these items are around a 13, 20, or larger in size). This way everyone can see a high level without getting lost in the minutia of a specific User Story. To identify which Team is working on a given item, either use swimlanes as above, or a separate coloured card/post-it note. Once a week, walk the wall from beginning to end with the Teams and update with the current state of work.

When we get more sophisticated, it often helps to track roughly how many days each work chunk stays in each state.

Visualize Blockages

Now that we’re tracking the flow of work, it will quickly become apparent that there are places in our system where work either piles up or becomes blocked. We need to understand where the work is getting blocked and what is blocking it.

Are our challenges caused by a lack of people able to help at one stage (e.g. Technical Writers for Online Help)? Or issues outside our current span of control (e.g. deployments by a manual security audit by our webhosts)?

Visualizing this can be as simple as putting a tick mark on an item for every day/week it’s stuck, or creating a separate “waiting for” column in all places where these blockages occur. Either way, our goal is to understand where the blockages occur and work with our peers to resolve them.

At the World’s Smallest Online Bookstore it’s apparent that…

SmallestOnlineBookstore_PortfolioBlocked

… we have a lot of work that is getting blocked at the stage of online help. Before we focus on improving the development Teams’ performance (i.e. their ability to build features) in the short term, it would be best if we addressed the systemic issues that are stopping previously completed features from being deployed.

This leads us nicely to the second rule of Kanban: Limit Your Work in Progress. In the next post in this series, we’ll discuss how blockages can be quickly identified and strategies implemented to overcome them, without anyone waiting around unproductive or, just as bad, overwhelmed and stressed out.

 

[1] Dark work is work done on the side privately without being visible to the rest of the Team or company. Sometimes it happens because a developer wants to make something perfect before sharing it. More often, it happens because someone stops by a developer’s desk and says the magic words, “Can you do me a small favour? It won’t take much of your time.”

Categories: Blogs

Introducing Enterprise Services Planning

This year, we're officially introducing Enterprise Services Planning (ESP) as a concept and specifically as a management training curriculum. Later this year, I anticipate the launch of Enterprise Services Planning software tools to support the mechanisms and methods taught in our classes.

What is Enterprise Services Planning (ESP)?

Kanban is now table stakes for many businesses managing enterprise services delivery. They've learned that introducing Kanban to their management system has improved service delivery with typical results showing 400% increase in delivery rate, drops in lead time from 50% to 90%+, and significant gains in predictability and on-time delivery, or "due date performance." The results are so good organizations like to duplicate it - one workflow after another, one service after another. This raises a challenge. Businesses are ecosystems of interdependent services. Kanban isn't enough on its own. Business struggle with the challenge of managing their portfolios and aligning their activities with their strategy and choosing a strategy that is appropriately aligned with their capability. We see people every day struggle to make decisions and do their jobs with confidence. What should we start next? When do we need to start something to feel confident it will be delivered when we need it? How many activities should we have running in parallel? Do we have capacity to do everything we need to do? If we delay starting something, are we confident the capacity will be available when we need it? How will dependencies affect our ability to deliver?

Enterprise Services Planning Overview

read more

Categories: Companies

Reducing Teamicide with Lightning Bolt shaped Teams

Teamicide is the act of purposefully disbanding a team after they are done with a task or project.  While this may not sound particularly negative at first glance, an organization looses the benefit of achieving team productivity and team cohesion each time they disband a team.  When team’s form, they take time to gel as a team. This is an organizational investment that often isn't realized.
To gain some perspective, let’s take a moment to review Tuckman's model that discusses the gelling process.  Established by Bruce Tuckman in 1965, this model has four sequential phases (e.g., Forming, Storming, Norming, and Performing) that teams go through to effectively function as a unit, know each other's strengths, self-organize around the work, with optimal flow, and reduced impediments.  In relation to teamicide, if a team hasn't yet achieved the performing state, they will have invested in the time and team building effort without actually gaining the benefits of a performing team.   The irony is that while companies focus a lot on return on investment (ROI) in relation to the product, they inadvertently achieve no ROI since they disband teams and not allowing them to achieve performing.  
The next question is, why does management disband teams?  Do they not understand the harm they are doing to their organization when they disband teams?  Do they not respect the benefits of a performing team?  Or maybe they apply a move the team to the work method, when they really should be applying a move work to the team method.  Exploring the “move team to the work” method, this may occur because either there is a “form a team around a project” mindset or there is a belief that teams don’t have all of the skills or disciplines needed to handle the new types of work.   
So how do we solve this problem and gain the most from performing teams?  The first change that must be made is to move to (or experiment with) applying the “move work to the team” method.   This assumes that we have teams that have the skills and disciplines to handle a variety of work.  Therefore, the second change is to invest in building Lightning Bolt shaped teams. These are teams where each team member has a primary skill, a secondary skill, and even a tertiary skill
The shape of a lightening bolt has one spike going deep (primary skill) and at least 2 additional spikes of lessor depth (secondary and tertiary).   The purpose of having various depths of skills is for the team to be able to handle a broad range of work and for team members to be able to step up and fill gaps that other team members may not have or need help with.  Note: some have used the term “T-shaped” teams, but I find that the lightning bolt shape is more apropos to the several spikes of skills and the various depths that are needed.  
To create a lightning bolt shaped team, takes an investment in education.  This takes a commitment to educate each team member in both a secondary and tertiary skill.  As an example, let’s say that a developer has a primary skill of programming code.  As a secondary skill, they can also learn how to build database schemas and as a tertiary skill, they can write unit tests and run test cases.  The long-term benefit is that if the team members can develop additional skills, there is a greater likelihood that a team can work on a much wider range of work and then they can be kept together allowing the organization to gain the benefits of a high performing team.   This can reduce teamicide and increase the organization’s ability to produce more high quality product.
Have you seen teamicide occurring in your organization?  Have you seen the benefit of allowing a team to remain together long enough to become a high performing team?  If so, what level of skills were or are prevalent on the team? 
Categories: Blogs

Enterprise Services Planning Module 4 - Portfolios, Program & Dependencies

Enterprise Services Planning is a new modular 5-day training curriculum for managing modern businesses involving lots of knowledge work and creative services. If your organization contains people who must think and make decisions for their living then Enterprise Services Planning is the management training framework that will transform your business. While ideally taken together as 5 days of intensive emersion, ESP training is offered in 4 modules.

read more

Categories: Companies

Enterprise Services Planning: Module 3 - Project & Capacity Planning

Enterprise Services Planning is a new modular 5-day training curriculum for managing modern businesses involving lots of knowledge work and creative services. If your organization contains people who must think and make decisions for their living then Enterprise Services Planning is the management training framework that will transform your business. While ideally taken together as 5 days of intensive emersion, ESP training is offered in 4 modules.

read more

Categories: Companies

Enterprise Services Planning: Module 2 - Enterprise Services

Enterprise Services Planning is a new modular 5-day training curriculum for managing modern businesses involving lots of knowledge work and creative services. If your organization contains people who must think and make decisions for their living then Enterprise Services Planning is the management training framework that will transform your business. While ideally taken together as 5 days of intensive emersion, ESP training is offered in 4 modules.

read more

Categories: Companies

Enterprise Services Planning: Module 1 - Portfolio Management

Enterprise Services Planning is a new modular 5-day training curriculum for managing modern businesses involving lots of knowledge work and creative services. If your organization contains people who must think and make decisions for their living then Enterprise Services Planning is the management training framework that will transform your business. While ideally taken together as 5 days of intensive emersion, ESP training is offered in 4 modules.

read more

Categories: Companies

The Engaging Value of Risk

Evolving Excellence - Sun, 02/22/2015 - 23:53

By Kevin Meyer

Humans tend to abhor chaos, and love to invoke rules to supposedly create order. We like rules because they make us feel protected, aligned, and perhaps operating on a fair playing field.

At the same time we dislike rules because they can protect us to the point of being smothering, align us to the point of being constraining, and fair to the point of being unfair. Regardless of perspective, there are an increasing number of them - thousands per year.  Most folks don't blink an eye.

What are we doing to ourselves as a society? As organizations? Or individually as humans and leaders? Stay tuned...

Years ago I visited Italy and was surprised at the traffic. There are very few traffic signals in Italy. The town of Naples, with a million people, has about three. Signage is basically ignored. Miniature cars, and the rare larger sedan or SUV, rush all over the place intermingling with Vespas, buses and trucks. Sorrento, Rome, Florence... all roughly the same. This seems like pure mayhem and insanity to visitors from the U.S. with our highly disciplined traffic control... until you start to realize something:

Traffic flows continuously, everywhere.  It may appear slower, but without the batch stop-go-stop of mindless obedience to signaled intersections, often waiting for no cross traffic, there is actually more flow.  Batch vs. continuous flow?

Ahh... but it can't be as safe, right? Wrong. Statistics show that Italy has a motor vehicle accident rate that is 30% better than the United States.

There's actually some science behind the chaos - and some towns that are exploiting the science - as this Salon article description.

In fact, the chaos associated with traffic in developing countries is becoming all the rage among a new wave of traffic engineers in mainland Europe and, more recently, in the United Kingdom. It's called "second generation" traffic calming, a combination of traffic engineering and urban design that also draws heavily on the fields of behavioral psychology and -- of all subjects -- evolutionary biology. Rejecting the idea of separating people from vehicular traffic, it's a concept that privileges multiplicity over homogeneity, disorder over order, and intrigue over certainty.

"One of the characteristics of a shared environment is that it appears chaotic, it appears very complex, and it demands a strong level of having your wits about you," says U.K. traffic and urban design consultant Ben Hamilton-Baillie, speaking from his home in Bristol. "The history of traffic engineering is the effort to rationalize what appeared to be chaos," he says. "Today, we have a better understanding that chaos can be productive."

And another from Der Spiegel with a story on how seven European cities are participating in an experiment to remove all traffic signs. Not just signs, but parking meters, lights, sidewalks, and even the painted lines on streets.

Drivers [in regulated areas with many signals] find themselves enclosed by a corset of prescriptions, so that they develop a kind of tunnel vision: They're constantly in search of their own advantage, and their good manners go out the window.

The new traffic model's advocates believe the only way out of this vicious circle is to give drivers more liberty and encourage them to take responsibility for themselves.

Chaos can be productive, liberty creates responsibility. Last year I wrote about how some enlightened companies are applying this concept to their own internal rules.

[At Neflix] there is no vacation policy, and the travel and expense policy is literally five words: "Act in Netflix's best interests." Netflix believes high performance people people should be free to make decisions, and those decisions need to be grounded in context.

In the world of Netflix, flexibility is more important long term than efficiency. To inhibit the chaos that too much flexibility in a large organization can create, hire (and keep) only high performance people. High performance people make great decisions, which are better than rote rules.

Gemba Academy has adopted a similar Culture Code, where we have a simple General Policy: use good judgment.

Our friend Brad Power posted a piece in Harvard Business Review titled Drive Performance by Focusing on Routine Decisions that hits at a similar concept. Instead of creating rule-bound defined processes, improve the quality of the decision points. He illustrates the idea with an example those of us in the manufacturing world have all experienced: the potential maelstrom of materials control.

These two stories highlight the advantages of focusing process improvement on “diamonds and arrows” — i.e., making better decisions. Project leaders who focus exclusively on the “boxes and arrows” of workflow action improvement will often find themselves caught up fixing yesterday’s operations and systems issues.

Now we may have more psychobiological understanding on why this is the case. And it comes from some interesting experiments with school playgrounds in New Zealand.

Ripping up the playground rulebook is having incredible effects on children at an Auckland school.

Chaos may reign at Swanson Primary School with children climbing trees, riding skateboards and playing bullrush during playtime, but surprisingly the students don't cause bedlam, the principal says. The school is actually seeing a drop in bullying, serious injuries and vandalism, while concentration levels in class are increasing.

"When you look at our playground it looks chaotic. From an adult's perspective, it looks like kids might get hurt, but they don't."

Swanson School signed up to the study by AUT and Otago University just over two years ago, with the aim of encouraging active play. However, the school took the experiment a step further by abandoning the rules completely, much to the horror of some teachers at the time, he said.

I bet there was some horror, but what are the results?

When the university study wrapped up at the end of last year the school and researchers were amazed by the results.

Mudslides, skateboarding, bullrush and tree climbing kept the children so occupied the school no longer needed a timeout area or as many teachers on patrol. Instead of a playground, children used their imagination to play in a "loose parts pit" which contained junk such as wood, tyres and an old fire hose.

"The kids were motivated, busy and engaged. It was expected the children would be more active, but researchers were amazed by all the behavioural pay-offs.

Schofield urged other schools to embrace risk-taking. "It's a no brainer. As far as implementation, it's a zero-cost game in most cases. All you are doing is abandoning rules," he said.

"All you are doing is abandoning rules." If only it was that easy.

Society's obsession with protecting children ignores the benefits of risk-taking, he said.

Children develop the frontal lobe of their brain when taking risks, meaning they work out consequences. "You can't teach them that. They have to learn risk on their own terms. It doesn't develop by watching TV, they have to get out there."

Risk creates engagement, and engagement creates understanding - be it of the environment, consequences of actions, or simply new concepts. Understanding creates high performance decisionmaking.

Whether it's in the chaos of traffic, the corporate offices of Netflix, or on the playground.

So what about all those rules? In the quest for structure, equality, and serenity, what are we doing to ourselves? And the next generation? Instead, how can we leverage chaos and risk to improve engagement?

Categories: Blogs

Link: Short Article About Pair Programming

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

Pair Programming Economics by Olaf Lewitz describes three activities in programming: typing, problem-solving and reading code. How does pair programming help? By making the balance between those three activities better.

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

Top Ten Agile Dangers

Agile In A Flash - Sun, 02/22/2015 - 21:25

Categories: Blogs

R/dplyr: Extracting data frame column value for filtering with %in%

Mark Needham - Sun, 02/22/2015 - 10:58

I’ve been playing around with dplyr over the weekend and wanted to extract the values from a data frame column to use in a later filtering step.

I had a data frame:

library(dplyr)
df = data.frame(userId = c(1,2,3,4,5), score = c(2,3,4,5,5))

And wanted to extract the userIds of those people who have a score greater than 3. I started with:

highScoringPeople = df %>% filter(score > 3) %>% select(userId)
> highScoringPeople
  userId
1      3
2      4
3      5

And then filtered the data frame expecting to get back those 3 people:

> df %>% filter(userId %in% highScoringPeople)
[1] userId score 
<0 rows> (or 0-length row.names)

No rows! I created vector with the numbers 3-5 to make sure that worked:

> df %>% filter(userId %in% c(3,4,5))
  userId score
1      3     4
2      4     5
3      5     5

That works as expected so highScoringPeople obviously isn’t in the right format to facilitate an ‘in lookup’. Let’s explore:

> str(c(3,4,5))
 num [1:3] 3 4 5
 
> str(highScoringPeople)
'data.frame':	3 obs. of  1 variable:
 $ userId: num  3 4 5

Now it’s even more obvious why it doesn’t work – highScoringPeople is still a data frame when we need it to be a vector/list.

One way to fix this is to extract the userIds using the $ syntax instead of the select function:

highScoringPeople = (df %>% filter(score > 3))$userId
 
> str(highScoringPeople)
 num [1:3] 3 4 5
 
> df %>% filter(userId %in% highScoringPeople)
  userId score
1      3     4
2      4     5
3      5     5

Or if we want to do the column selection using dplyr we can extract the values for the column like this:

highScoringPeople = (df %>% filter(score > 3) %>% select(userId))[[1]]
 
> str(highScoringPeople)
 num [1:3] 3 4 5

Not so difficult after all.

Categories: Blogs

The Great Motivational Quotes Revamped

J.D. Meier's Blog - Sun, 02/22/2015 - 05:16

When you need to make things happen, motivational quotes can help you dig deep and get going.

I put together a very comprehensive collection of the world’s best motivational quotes a while back.

It was time for a refresh.  Here it is:

Motivational Quotes – The Great Motivational Quotes Collection

Imagine motivational wisdom of the ages and modern sages right at your fingertips all on one page.   I included motivational quotes from Bruce Lee, Tony Robbins, Winston Churchill, Waldo Emerson, Jim Rohn, and more.

See if you can find at least three motivational quotes that you can take with you on the road of life, to help you deal with setbacks and challenges, and to unleash your inner-awesome.

Getting Started with Motivational Quotes

I’ll start you off.   If you don’t already have these in your personal motivational quotes collection, here are a few that I draw from often:

“If you’re going through hell, keep going.” — Winston Churchill

“When it’s time to die, let us not discover that we have never lived.” -Henry David Thoreau

“Don’t ask yourself what the world needs, ask yourself what makes you come alive. And then go do that. Because what the world needs is people who have come alive.”— Howard Thurman

How’s that for a starter set?

Build Better Motivational Thought Habits

You can train your brain with motivational mantras.     Our thoughts are habits.   If you want to build better thought habits, then feed on some of the best motivational quotes of all time.

“An ounce of action is worth a ton of theory.” – Ralph Waldo Emerson

“Positive thinking won’t let you do anything but it will let you do everything better than negative thinking will.” -– Zig Ziglar

“The only person you are destined to become is the person you decide to be.” – Ralph Waldo Emerson

If you train yourself well, you won’t entirely eliminate motivational setbacks, but you’ll be able to defeat procrastination, and you’ll be able to bounce back faster when you find yourself in a slump.   Motivation is a skill you can build, and it will serve you well, in work and life.

You Create Your Future

The most important motivational concept to hold on to is the idea that you create your future.  Or, as Wayne Dyer puts it:

“Go for it now. The future is promised to no one.”

So go for the bold, and get your game face on.

If you need some help kick-starting your fire, stroll through the motivational quotes a few times until something really sinks in or clicks for you.  Life’s better with the right words, and there are just the right words already out there, just waiting to be found.

Enjoy and take your time sifting through the Motivational Quotes – The Great Motivational Quotes Collection.

Also, if you have a favorite motivational quote that I don’t have listed, let me know.

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 Personal Development Quotes Collection Revamped

The Great Productivity Quotes Collection Revamped

Categories: Blogs

The Great Inspirational Quotes Collection Revamped

J.D. Meier's Blog - Sat, 02/21/2015 - 20:59

I think of inspiration simply as “breathe life into.”

Whether you're shipping code, designing the next big thing, or simply making things happen, inspirational quotes can help keep you going.

In the spirit of helping people find their Eye of the Tiger or get their mojo on, I’ve put together a hand-crafted collection of the ultimate inspirational quotes:

The Inspirational Quotes Collection

If you’ve seen my collection of inspirational quotes before, it’s completely revamped.   It should be much easier to browse all of the inspirational quotes now so you can see some old familiar quotes that you may have heard of long ago, as well as many inspirational quotes, you have never heard of before.

Dive in, explore the collection of inspirational quotes, and see if you can find at least three inspirational quotes that breathe new life into your moment, your day, your work, or anything you do.

The Power of Inspirational Quotes

Inspirational quotes can help us move mountains.   The right inspirational words and ideas can help us boldly go where we have not gone before, as well as conquer our fears and soar to new heights.

Or, the right inspirational quote can simply help us roar a little louder inside, when we need it most.

Life isn’t always a bowl of cherries.  And work can be an incredible challenge.    And sometimes, even our best laid plans, go up in flames.

So having a repertoire of inspirational quotes and inspiring mantras at your mental fingertips can help you roll with the punches and keep going.

One of the most important inspirational ideas I learned early on goes like this:

Whatever doesn’t kill you makes you stronger.

It helped me turn trials into triumphs, and eventually learn to take on big challenges as a way to grow.

Another inspirational idea that really helped me find my way forward is by Ralph Waldo Emerson, and, it goes like this:

“Do not follow where the path may lead. Go, instead, where there is no path and leave a trail.”

Whenever I went on a new journey, down an unfamiliar path, it helped remind me that I don’t always need a trail, and that many times, it’s about blazing my own trail.

The power of inspirational quotes is their power to light a fire inside and fan the flames until we go and blaze our trail that leaves our self, and others, in awe.

What Lies Within Us

Perhaps, the greatest inspirational quote of all time is another amazing quote by Emerson:

“What lies behind us and what lies before us are tiny matters compared to what lies within us.”

It’s an awe-inspiring reminder to not only do what makes us come alive, but to realize our potential and unleash what we are capable of.

It’s Better to Burn Out, then Fade Away

So many inspirational quotes remind us that life is short and that we have to go for it.   But maybe George Bernard Shaw said it best:

“I want to be all used up when I die.”

One quote that I think about often is by Seth Godin:

“Life is like skiing.  Just like skiing, the goal is not to get to the bottom of the hill. It’s to have a bunch of good runs before the sun sets.”

It’s all about making the journey worth it.

When It’s Over

What do you do when it’s over.  It all depends.   Dr. Seuss has an interesting twist:

“Don’t cry because it’s over. Smile because it happened.”

But the one that I find has true wisdom is from Dave Weinbaum:

“The secret to a rich life is to have more beginnings than endings.”

Here’s to new many more beginnings in your life.

Enjoy and be sure to explore The Inspirational Quotes Collection to soar or roar in your own personal way.

You Might Also Like

The Great Happiness Quotes Collection Revamped

The Great Leadership Quotes Collection Revamped

The Great Love Quotes Collection Revamped

The Great Personal Development Quotes Collection Revamped

The Great Productivity Quotes Collection Revamped

Categories: Blogs

Python/scikit-learn: Detecting which sentences in a transcript contain a speaker

Mark Needham - Sat, 02/21/2015 - 00:42

Over the past couple of months I’ve been playing around with How I met your mother transcripts and the most recent thing I’ve been working on is how to extract the speaker for a particular sentence.

This initially seemed like a really simple problem as most of the initial sentences I looked at weere structured like this:

<speaker>: <sentence>

If there were all in that format then we could write a simple regular expression and then move on but unfortunately they aren’t. We could probably write a more complex regex to pull out the speaker but I thought it’d be fun to see if I could train a model to work it out instead.

The approach I’ve taken is derived from an example in the NLTK book.

The first problem with this approach was that I didn’t have any labelled data to work with so I wrote a little web application that made it easy for me to train chunks of sentences at a time:

2015 02 20 00 44 38

I stored the trained words in a JSON file. Each entry looks like this:

import json
with open("data/import/trained_sentences.json", "r") as json_file:
    json_data = json.load(json_file)
 
>>> json_data[0]
{u'words': [{u'word': u'You', u'speaker': False}, {u'word': u'ca', u'speaker': False}, {u'word': u"n't", u'speaker': False}, {u'word': u'be', u'speaker': False}, {u'word': u'friends', u'speaker': False}, {u'word': u'with', u'speaker': False}, {u'word': u'Robin', u'speaker': False}, {u'word': u'.', u'speaker': False}]}
 
>>> json_data[1]
{u'words': [{u'word': u'Robin', u'speaker': True}, {u'word': u':', u'speaker': False}, {u'word': u'Well', u'speaker': False}, {u'word': u'...', u'speaker': False}, {u'word': u'it', u'speaker': False}, {u'word': u"'s", u'speaker': False}, {u'word': u'a', u'speaker': False}, {u'word': u'bit', u'speaker': False}, {u'word': u'early', u'speaker': False}, {u'word': u'...', u'speaker': False}, {u'word': u'but', u'speaker': False}, {u'word': u'...', u'speaker': False}, {u'word': u'of', u'speaker': False}, {u'word': u'course', u'speaker': False}, {u'word': u',', u'speaker': False}, {u'word': u'I', u'speaker': False}, {u'word': u'might', u'speaker': False}, {u'word': u'consider', u'speaker': False}, {u'word': u'...', u'speaker': False}, {u'word': u'I', u'speaker': False}, {u'word': u'moved', u'speaker': False}, {u'word': u'here', u'speaker': False}, {u'word': u',', u'speaker': False}, {u'word': u'let', u'speaker': False}, {u'word': u'me', u'speaker': False}, {u'word': u'think', u'speaker': False}, {u'word': u'.', u'speaker': False}]}

Each word in the sentence is represented by a JSON object which also indicates if that word was a speaker in the sentence.

Feature selection

Now that I’ve got some trained data to work with I needed to choose which features I’d use to train my model.

One of the most obvious indicators that a word is the speaker in the sentence is that the next word is ‘:’ so ‘next word’ can be a feature. I also went with ‘previous word’ and the word itself for my first cut.

This is the function I wrote to convert a word in a sentence into a set of features:

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

Let’s try a couple of examples:

import nltk
 
>>> pos_features(nltk.word_tokenize("Robin: Hi Ted, how are you?"), 0)
{'prev-word': '<START>', 'word': 'Robin', 'next-word': ':'}
 
>>> pos_features(nltk.word_tokenize("Robin: Hi Ted, how are you?"), 5)
{'prev-word': ',', 'word': 'how', 'next-word': 'are'}

Now let’s run that function over our full set of labelled data:

with open("data/import/trained_sentences.json", "r") as json_file:
    json_data = json.load(json_file)
 
tagged_sents = []
for sentence in json_data:
    tagged_sents.append([(word["word"], word["speaker"]) for word in sentence["words"]])
 
featuresets = []
for tagged_sent in tagged_sents:
    untagged_sent = nltk.tag.untag(tagged_sent)
    for i, (word, tag) in enumerate(tagged_sent):
        featuresets.append( (pos_features(untagged_sent, i), tag) )

Here’s a sample of the contents of featuresets:

>>> featuresets[:5]
[({'prev-word': '<START>', 'word': u'You', 'next-word': u'ca'}, False), ({'prev-word': u'You', 'word': u'ca', 'next-word': u"n't"}, False), ({'prev-word': u'ca', 'word': u"n't", 'next-word': u'be'}, False), ({'prev-word': u"n't", 'word': u'be', 'next-word': u'friends'}, False), ({'prev-word': u'be', 'word': u'friends', 'next-word': u'with'}, False)]

It’s nearly time to train our model, but first we need to split out labelled data into training and test sets so we can see how well our model performs on data it hasn’t seen before. sci-kit learn has a function that does this for us:

from sklearn.cross_validation import train_test_split
train_data,test_data = train_test_split(featuresets, test_size=0.20, train_size=0.80)
 
>>> len(train_data)
9480
 
>>> len(test_data)
2370

Now let’s train our model. I decided to try out Naive Bayes and Decision tree models to see how they got on:

>>> classifier = nltk.NaiveBayesClassifier.train(train_data)
>>> print nltk.classify.accuracy(classifier, test_data)
0.977215189873
 
>>> classifier = nltk.DecisionTreeClassifier.train(train_data)
>>> print nltk.classify.accuracy(classifier, test_data)
0.997046413502

It looks like both are doing a good job here with the decision tree doing slightly better. One thing to keep in mind is that most of the sentences we’ve trained at in the form ‘:‘ and we can get those correct with a simple regex so we should expect the accuracy to be very high.

If we explore the internals of the decision tree we’ll see that it’s massively overfitting which makes sense given our small training data set and the repetitiveness of the data:

>>> print(classifier.pseudocode(depth=2))
if next-word == u'!': return False
if next-word == u'$': return False
...
if next-word == u"'s": return False
if next-word == u"'ve": return False
if next-word == u'(':
  if word == u'!': return False
  ...
if next-word == u'*': return False
if next-word == u'*****': return False
if next-word == u',':
  if word == u"''": return False
  ...
if next-word == u'--': return False
if next-word == u'.': return False
if next-word == u'...':
  ...
  if word == u'who': return False
  if word == u'you': return False
if next-word == u'/i': return False
if next-word == u'1': return True
...
if next-word == u':':
  if prev-word == u"'s": return True
  if prev-word == u',': return False
  if prev-word == u'...': return False
  if prev-word == u'2030': return True
  if prev-word == '<START>': return True
  if prev-word == u'?': return False
...
if next-word == u'\u266a\u266a': return False

One update I may make to the features is to include the part of speech of the word rather than its actual value to see if that makes the model a bit more general. Another option is to train a bunch of decision trees against a subset of the data and build an ensemble/random forest of those trees.

Once I’ve got a working ‘speaker detector’ I want to then go and work out who the likely speaker is for the sentences which don’t contain a speaker. The plan is to calculate the word distributions of the speakers from sentences I do have and then calculate the probability that they spoke the unlabelled sentences.

This might not work perfectly as there could be new characters in those episodes but hopefully we can come up with something decent.

The full code for this example is on github if you want to have a play with it.

Any suggestions for improvements are always welcome in the comments.

Categories: Blogs

When Did Agile Become a Social Movement?

Leading Agile - Mike Cottmeyer - Fri, 02/20/2015 - 17:50

Occasionally on my personal Facebook page, I like to post controversial topics and see if we can get a civil conversation going around difficult issues. Civility can sometimes be difficult, but it is really interesting to hear different points of view and learn more about why people believe what they believe. In that spirit, I want to ask you guys a question…

Has agile become a social movement? If so, when did it happen? If so, why do you think it happened?

It seems to me back in the day, agile was about getting product into market faster… it was about working with customers to make sure we were building the stuff they really wanted… it was about craftsmanship and quality and excellence. There is a part of me that feels like some of us have taken things like self-organization, empowerment, and collaboration to an illogical extreme. Potentially to the detriment of some of our other goals.

I’m curious if this is just me or if anyone else feels this way. Please share your thoughts.

The post When Did Agile Become a Social Movement? appeared first on LeadingAgile.

Categories: Blogs

Knowledge Sharing


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