Skip to content

Feed aggregator

Rally’s Colorado Crew Pushes Pedal Power

Rally Agile Blog - Tue, 07/01/2014 - 18:54

In Boulder, Bike To Work Day (BTWD) is a big deal. At Rally, it’s HUGE. This year, as in years past, we went all-out and we played to win. Here are some highlights.

Supporting Bike-crazy Boulder.

Rally is a proud sponsor of Boulder Walk and Bike Month. Our donation from the Rally For Impact Foundation supports Community Cycles, which organizes a dizzying array of bike-related happenings throughout June. It’s so exciting to see our logo alongside those of so many other local businesses on the BTWD posters around town.

Best in Class -- Again!

For the sixth time in seven years, we placed at the top of our class in the Denver metro area Business Challenge. This year, with 300+ employees in Boulder and Denver, we got bumped up to Class D. But we still snagged first place thanks to our effort index of 5.49, with more than 140 out of 330 employees participating -- an impressive 43 percent! We celebrated with a company-provided lunch for cyclists at our new LoDo Denver office, right across from Union Station, and on the patio at our Boulder headquarters.

Pedal Power.

Throughout June, Boulder and Denver employees who biked and walked to work recorded their number of commutes and mileage each week. Our collective total: 4,407 miles! That’s 86 miles farther than the cycling distance from San Francisco to Washington, D.C. 

Spinning for a Cause.

We wanted to cycle with purpose, so we tallied $2 per person, per commute, and donated the total for each week to a nonprofit organization focused on a biking-related cause. The more people who biked, the more the Rally For Impact Foundation donated. All in all, we gave $1,188 to four nonprofits -- each representing a different geography:

Prizes for Participating.

Each week in June we held a (virtual) raffle to give away three $50 gift cards to employees (who earned tickets into the drawing with every walk or bike commute.) In addition, we gave $100 gift cards to the cyclist with the top mileage and most commutes for the month. Chris Driscol was our top mileage winner with 309 miles, and Cameron Holck won the contest for most commutes by cycling 17 out of 18 work days. Both winners selected Boulder Food Rescue to receive $250 donations in their names from the Rally For Impact Foundation.

Going with the Flow.

Our employee biking community used Rally’s team collaboration tool, Flowdock, to stay in touch about all our Walk and Bike Month events -- especially to track how we were doing in the Business Challenge, who was leading the top mileage and commute days categories, and of course, lunchtime rides.

Thanks to everyone who participated, thanks to Rally for supporting the cause, and congratulations to all our raffle and grand prize winners. We can’t wait to do it all again next year!

Angela Tucci, chief marketing officer, and Christine Hudson, solution manager, decked out in Rally jerseys for Bike To Work Day, rode 38 and 32 miles round trip, respectively.

Bike commuters (including me in the green shirt and blue helmet) ready to head home on Bike To Work Day.

 

More than 100 bikes overflowed Rally’s Boulder headquarters on Bike to Work Day. With plenty of regular bike commuters, Rally offers storage areas and mounted racks inside and outside of the building.

Geri Mitchell-Brown
Categories: Companies

Re-launch of Real Agility Newsletter

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

Hi Everyone!  Berteig Consulting is going to re-launch their monthly newsletter starting this month!  We’re excited about it because, although it is partly due to a legal change around commercial email here in Canada, we are considering this a great opportunity to change the style of our communication with our customers and our colleagues.  Like before, we plan to have a few regular segments:

  1. A message from me, Mishkin Berteig, that shares my personal experiences with Agile, with running an Agile consultancy, and other things that I hope will be interesting.
  2. A “Coaching Corner” article written by one of our coaches, or by a guest author, about how organizations, teams and people can become more Agile.  Topics will range from technical to people-oriented, practical to theoretical, cutting-edge to deeply retrospective.  We hope these articles will become a great resource – and they won’t be cross-posted here on Agile Advice.
  3. A listing of our upcoming training.  We’re excited that in the fall and in the new year we are going to start offering some things besides just ScrumMaster and Product Owner training including training on Agile Coaching, SAFe (and maybe even other enterprise agile frameworks), and topics closely related to Agile such as leadership, communication, etc.
  4. And of course, a “special offers” section that will promote new products or services from us or from close partners that we think will be helpful.

Please subscribe to our Real Agility Newsletter by clicking on the link:

SUBSCRIBE

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

Are You Practicing Agile Accountability Responsibly?

Leading Agile - Mike Cottmeyer - Tue, 07/01/2014 - 13:16

accountability

 

I started out this blog post writing about shared accountability for agile program teams. Accountability is an interesting, large topic that gets skipped over quite often in our agile community. In fact, I found in my writing a realization that we don’t have a great track record for defining it. So here’s my take.

Caution! I am trying to pair down my mindmap of points to discuss in this blog. Apparently, I am not doing a great job and I’ll own that. The way that I’ll own it is by committing to write to conclusion about:

•What accountability means to me… as you will find here today
•Exactly what it is at scaled levels of a team… to be written
•How to hold someone accountable… to be written

All right, let’s go for an accountability walk.

If I asked you, “What are teams accountable for?” what would your answer be? Go ahead and take a minute. Picture the team in your mind. You may want to write it down to refer back to later.

Would your answer include: make and meet commitments, to break down work effectively, or to have a great design or architecture? Would it be to create revenue or an effective marketing campaign? How about “the teams are working hard”?

Definition – Mine, not by the book

Accountable – adj. – A need to explain to an asking authority the actions or decisions made

And in addition,

Responsible – adj. – The state of mind or being that owns the duty of taking care of something or someone

Clearly there is a relationship to responsibility baked into accountability. The nuances of that relationship are argued over. I am not interested in that argument.

Individual accountability to me ideally matches with individual responsibility. That is, in order to be accountable for something, you will want to be responsible for that very same thing as well. Otherwise, you may only be accountable. Which would be fine, but won’t produce the same results that both will.

I love the way Chris Avery describes his responsibility process. This is a very personal process and a great way to understand your own decision-making as to how to move forward toward taking responsibility. If you can move yourself to a responsible state (and again Dr. Avery’s work is a great reference), then you can hopefully match up your accountability and responsibility.

I had a unique moment lately when I was running a responsibility exercise with a team that I believed were in a shared denial state, which is really common. Here’s what it looked like:

I gave a set of teams an epic that they failed to deliver and asked them to fill in the following sentence on their own and to not show anyone. I also told them that we would rip up the sheets at the end and they would not have to share the information.

“The epic failed because _____”

I gave them the following choices to fill in the blank.

1. They
2. He
3. She
4. It
5. Me
6. You
7. Us
8. The Business

I didn’t survey the audience, yet I made the following point:

If you are looking at your sheet and you see “They, He, She, It, You, or The Business” then you are in a dependent state and not taking responsibility. You have given control to someone else to ensure that you can have a successful outcome. Not a good place because you do not have control of your outcome due to your state of mind.

If you answered “Me” then you are at a state of being responsible for your own actions. In this scenario, you have to get the job done and correct the issue.

If you answered “Us”, then you are at a state of shared responsibility assuming that everyone else that falls under “Us” also answered “Us”.

Later I read the classic, “7 Habits of Highly Effective People” and the idea of dependent, independent, and interdependent relationships resonated the same tone that I was trying to capture. For more info on that, just pick up the book. It’s a great read, if you are ready for it.

My challenge to the group was similar to the books challenge. Basically, if you find yourself dependent, try to move to independent (me), and then consciously try to move to interdependent (us). To do this, you’ll require an inside-out approach. First you take responsibility and become accountable for yourself to yourself. Then you consciously move the group toward a shared responsibility that matches the accountability of the group. You’ll find that everything doesn’t need to be a shared responsibility, but that’s the goal at the macro or team level. Otherwise, you are little more than the sum of your individual parts.

You may indeed find your team impaired by a lack of organizational enablement. Organizational enablement, to me, implies that teams may not be formed in a way that they can control their own destiny. In scrum, for an individual team this looks like the team. They may be getting pulled onto multiple teams, have dependencies, etc. In a scaled environment, that includes program and portfolio teams as well. For instance, the program team may not have the architectural capability to support fast release cycles. Many times I have found that blame has been pushed all the way down to the individual level and the organization lacks the capability to take responsibility. If this is the case, both managers and subordinates in the dependent state can form a learned helplessness where they are unable to move no matter the incentive because they are not taught to do so. More often, in corporate America, I see it manifest as a complaining, learned helplessness. When agile comes in, coaches bring the therapy couch with us. But before we bring the couch, we need to bring the proper structure and governance to enable the helpless and promote a responsible environment. Ultimately, we have always had accountability. Someone always answers to someone else. A clear line of site of the accountability paired with responsibility is a win/win situation for all.

I’ll talk more about what that win/win looks like in the future as we discuss what the pull of accountability and the response of responsibility looks like at the team and scaled team levels. For now, I leave you with the need for any team to address how responsible they are being as it applies to how accountable they are being held. If there is a mismatch. Find it and march toward responsibility together.

The post Are You Practicing Agile Accountability Responsibly? appeared first on LeadingAgile.

Categories: Blogs

Adding A Category List Page To A WordPress Site

Derick Bailey - new ThoughtStream - Tue, 07/01/2014 - 13:00

Disclaimer: I have no idea what I’m doing when it comes to WordPress development. But I’ve got 4 WordPress blogs (all hosted on DigitalOcean, by the way) and it seems I should know something about this. So every now and then I do something that I think is interesting. This is one of those things. I don’t claim it’s a good idea, but in case it is, I’m telling you how I did it. :)

Cleaning Up A Design

I recently decided to clean up the WatchMeCode.net site. It was cluttered with too many of the typical WordPress things in the sidebars… categories… archives… recent episodes (posts) and more. Frankly all of this content was getting in the way of the site’s purpose: delivering epic quality JavaScript knowledge through screencasts.

So I decided to chop all the side bars out and greatly simplify / clean up the episode pages. I’m glad I did. The end result looks soooooo much better now – super clean.

NewImage

But after doing this cleanup, I realized that I still wanted a way to show all of the episode categories. This makes it easier for people to find more episodes about subjects they are interested in.

Listing Categories On A Page

After a bit of digging around, and asking on twitter, it was suggested that I use the “wp_list_categories” function:

@derickbailey @curtismchale @pippinsplugins – wp_list_categories should do the trick – http://t.co/GeLccs0XFH

— Eric Fuller (@ericpfuller) June 23, 2014


As it turns out, this is exactly what I needed. But I thought I was going to have to build a custom page template and do all kinds of crazy WordPress things that I have no clue about. Then a little bit later, I realized that I don’t need to do this. I can just add a custom short code and have that short code call this function for me! So I did. And here’s that short code registration / function (all in my functions.php file):

With this in place, I added a new page to my site and just typed in the “show_categories” shortcode and BAMN! Done! WatchMeCode.net now has a nice big list of all the categories, and with a bit of CSS styling, I turned it in to a good looking page where it’s pretty easy to find the categories you’re looking for.

NewImage

I also added an “Episode Categories” link to the menu so you can easily get to this page. Done.

On WordPress

I’m definitely liking WordPress for my blogs and and sites, still. Things like this may seem a bit obtuse or strange to people (like me) that usually write their own code for this stuff… but I’m ok with that, since it lets me focus on the task of producing content (screencasts and blog posts) instead of producing the website. 

     Related Stories 
Categories: Blogs

What is an Agile Tester? Slides from my Sri Lanka talk.

Henrik Kniberg's blog - Tue, 07/01/2014 - 11:25

Here are the slides for my talk What is an agile tester from the Colombo Agile Conference in Sri Lanka.

What is an agile tester

Competencies over Roles

 

Agile tester mindset

Categories: Blogs

Agile Manager? What does that mean?

Growing Agile - Tue, 07/01/2014 - 10:00

A tweet yesterday by a client got me to write this post. Here is Maritza’s tweet and a few others we shared.Screenshot 2014 06 18 12.54.41 Agile Manager? What does that mean?

Screenshot 2014 06 18 12.54.55 Agile Manager? What does that mean? Screenshot 2014 06 18 12.55.07 Agile Manager? What does that mean?

 

Over the last few years the term Agile Manager has become quite popular. My fear was that most of it is for people who where Project Managers and now needed the title Manager but in an Agile environment. However Maritza’s tweet made me stop and rethink this. Maritza is a servant leader Agile Manager. As her tweets suggest, she guides from the side and allows her team to learn and grow without the need to micro manage them every step of the way. So I am sure there are many more Agile Managers out their who are also servant leaders. This makes me super happy!

What is a servant leader anyway?

To me this is someone who leads by example. Someone who sees their job as a leader is to grow people to be the best they can be. This means spending time learning a whole bunch of soft skills like influence, communication, feedback, listening. Let me delve a bit more…

Influence

How do you convince people to try something without forcing them? What techniques do you have to influence people who report to you and also to influence those that you report into?

Communication

Do your questions encourage people to think and answer? Or are most of your questions looking for a yes/no? How easy and accessible are you to communicate with? How often do you interact with your team socially?

Feedback

Can you give positive and negative feedback constructively? Is your team able to do this with each other? Does your feedback result in changed behaviour? How open are you to receiving feedback, and do you actively seek it out?

Listening

Do you listen to your team? I don’t mean hear them, I mean actively listen, not just wait to have your say. Do your team listen to each other or just talk at each other?

As a servant leader these are the skills you need to learn and pass on to your team. They are not easy. There are no 3 day courses with certification that make you an expert. These take time and practise and experience. The good news is that you immediately see the difference that being a servant leader brings to your team.

We often coach ScrumMasters to develop these skills, but really these are skills that everyone needs. They are more important than me learning the names of rivers in Africa for geography at school. I wish they were taught at school. And I wish everyone who finds themselves in a position of leadership learns them. Perhaps the first step is realising the need to learn these skills.

Categories: Companies

How combined Lean- and Agile practices will change the world as we know it

Xebia Blog - Tue, 07/01/2014 - 09:50

You might have attended this month at our presentation about eXtreme Manufacturing and the keynote of Nalden last week on XebiCon 2014. There are a few epic takeaways and additions I would like to share with you in this blogpost.

Epic TakeAway #1: The Learn, Unlearn and Relearn Cycle Like Nalden expressed in his inspiring keynote, one of the major things for him to be successful is being able to Learn, Unlearn and Relearn every time again. In my opinion, this will be the key ability for every successful company in the near future.  In fact, this is how nature evolutes: in the end, only the species who are able to adapt to changing circumstances will survive and evolute. This mechanism makes for example, most of the startups fail, but those who will survive, can be extremely disruptive for non-agile organizations.  Best example for this is of course Whatsapp.  Beating up the Telco Industry by almost destroying their whole businessmodel in only a few months. Learn more about disruptive innovation from one of my personal heroes, Harvard Professor Clayton Christensen.

Epic TakeAway #2: Unlearning Waterfall, Relearning Lean & Agile Globally, Waterfall is still the dominant method in companies and universities.  Waterfall has its origins more than 40 years ago. Times have changed. A lot. A new, successful and disruptive product could be there in only a matter of days instead of (many) years. Finally, things are changing. For example, the US Department of Defence has recently embraced Lean and Agile as mandatory practices, especially Scrum. Schools and universities are also more and more adopting the Agile way of working. Later more in this blogpost.

Epic TakeAway #3: Combined Lean- and Agile practices =  XM Lean practices arose in Japan in the 1980’s , mainly in the manufacturing industry, Toyota being the frontrunner here.  Agile practices like Scrum, were first introduced in the 1990’s by Ken Schwaber and Jeff Sutherland, these practices were mainly applied in the IT-industry. Until now, the manufacturing and IT world didn’t really joined forces combining Lean and Agile practices.  Until recently.  The WikiSpeed initiative of Joe Justice proved combining these practices result in a hyper-productive environment, where a 100 Mile/Gallon road legal sportscar could be developed in less than 3 months.  Out of this success eXtreme Manufacturing (XM) arose. Finally, a powerful combination of best practices from the manufacturing- and IT-world came together.

Epic TakeAway #4: Agile Mindset & Education fotoLike Sir Ken Robinson and Dan Pink already described in their famous TED-talks, the way most people are educated and rewarded, is not suitable anymore for modern times and even conflicts with the way we are born.  We learn by "failing", not by preventing it.  Failing in it’s essence should stimulate creativity to do things better next time, not be punished.  On the long run, failing (read: learning!) has more added value than short-term succes, for example by chasing milestones blindly. EduScrum in the Netherlands stimulates schools and universities to apply Scrum in their daily classes in order to stimulate creativity, happiness, self-reliantness and talent. The results of the schools joining these initiative are spectacular: happy students, less dropouts an significantly higher grades. For a prestigious project for the Delft University, Forze, the development of a hydrogen race car, the students are currently being trained and coached to apply Agile and Lean practices.  Also these results are more than promising. The Forze team is happier, more productive and more able to learn faster and better from setbacks.  Actually, they are taking the first steps of being anti-fragile.  Due too an intercession of the Forze team members themselves,  the current support of agile (Xebia) coaches is now planned being extended to the flagship of the Delft University:  the NUON solar team.

The Final Epic TakeAway In my opinion, we reached a tipping point in the way goals should be achieved.  Organizations are massively abandoning Waterfall and embracing Agile practices, like Scrum.  Adding Lean practices like Joe Justice did in his WikiSpeed project, makes Agile and Lean extremely powerful.  Yes, this will even make this world a much better place.  We cannot prevent nature disasters with this, but we can be anti-fragile.  We cannot prevent every epidemic, but we can respond in an XM-fashion on this by developing a vaccin in only days instead of years.  This brings me finally to the missing statement of the current Agile Manifesto:   We should Unlearn and Relearn before we Judge.  Dare to Dream like a little kid again. Unlearn your skepticism.  Companies like Boeing, Lockheed Martin and John Deere already did. Adopting XM speeded up their velocity in some cases with more than 7 times.

Categories: Companies

DFW Scrum – Second Quarter Summary

DFW Scrum User Group - Tue, 07/01/2014 - 05:01
Here’s a recap of our meetings for the quarter: April: Definition of Done, Chris Murman Many companies practicing agile talk about the definition of done, but how many teams adhere to it on a sprint-by-sprint basis? Expectations that are either unmet, … Continue reading →
Categories: Communities

What is Capacity in software development? - The #NoEstimates journey

Software Development Today - Vasco Duarte - Tue, 07/01/2014 - 05:00

I hear this a lot in the #NoEstimates discussion: you must estimate to know what you can deliver for a certain price, time or effort.

Actually, you don’t. There’s a different way to look at your organization and your project. Organizations and projects have an inherent capacity, that capacity is a result of many different variables - not all can be predicted. Although you can add more people to a team, you don’t actually know what the impact of that addition will be until you have some data. Estimating the impact is not going to help you, if we are to believe the track record of the software industry.

So, for me the recipe to avoid estimates is very simple: Just do it, measure it and react. Inspect and adapt - not a very new idea, but still not applied enough.

Let’s make it practical. How many of these stories or features is my team or project going to deliver in the next month? Before you can answer that question, you must find out how many stories or features your team or project has delivered in the past.

Look at this example.

How many stories is this team going to deliver in the next 10 sprints? The answer to this question is the concept of capacity (aka Process Capability). Every team, project or organization has an inherent capacity. Your job is to learn what that capacity is and limit the work to capacity! (Credit to Mary Poppendieck (PDF, slide 15) for this quote).

Why is limiting work to capacity important? That’s a topic for another post, but suffice it to say that adding more work than the available capacity, causes many stressful moments and sleepless nights; while having less work than capacity might get you and a few more people fired.

My advice is this: learn what the capacity of your project or team is. Only then you will be able to deliver reliably, and with quality the software you are expected to deliver.

How to determine capacity?

Determining the capacity of capability of a team, organization or project is relatively simple. Here's how

  • 1- Collect the data you have already:
    • If using timeboxes, collect the stories or features delivered(*) in each timebox
    • If using Kanban/flow, collect the stories or features delivered(*) in each week or period of 2 weeks depending on the length of the release/project
  • 2- Plot a graph with the number of stories delivered for the past N iterations, to determine if your System of Development (slideshare) is stable
  • 3- Determine the process capability by calculating the upper (average + 1*sigma) and the lower limits(average - 1*sigma) of variability

At this point you know what your team, organization or process is likely to deliver in the future. However, the capacity can change over time. This means you should regularly review the data you have and determine (see slideshare above) if you should update the capacity limits as in step 3 above.

(*): by "delivered" I mean something similar to what Scrum calls "Done". Something that is ready to go into production, even if the actual production release is done later. In my language delivered means: it has been tested and accepted in a production-like environment.

Note for the statisticians in the audience: Yes, I know that I am assuming a normal distribution of delivered items per unit of time. And yes, I know that the Weibull distribution is a more likely candidate. That's ok, this is an approximation that has value, i.e. gives us enough information to make decisions.

You can receive exclusive content (not available on the blog) on the topic of #NoEstimates, just subscribe to the #NoEstimates mailing list below. As a bonus you will get my #NoEstimates whitepaper, where I review the background and reasons for using #NoEstimates #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; } /* Add your own MailChimp form style overrides in your site stylesheet or in this style block. We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */ Subscribe to our mailing list* indicates required Email Address * First Name Last Name

Picture credit: John Hammink, follow him on twitter

Categories: Blogs

R: Aggregate by different functions and join results into one data frame

Mark Needham - Tue, 07/01/2014 - 00:47

In continuing my analysis of the London Neo4j meetup group using R I wanted to see which days of the week we organise meetups and how many people RSVP affirmatively by the day.

I started out with this query which returns each event and the number of ‘yes’ RSVPS:

library(Rneo4j)
timestampToDate <- function(x) as.POSIXct(x / 1000, origin="1970-01-01")
 
query = "MATCH (g:Group {name: \"Neo4j - London User Group\"})-[:HOSTED_EVENT]->(event)<-[:TO]-({response: 'yes'})<-[:RSVPD]-()
         WHERE (event.time + event.utc_offset) < timestamp()
         RETURN event.time + event.utc_offset AS eventTime, COUNT(*) AS rsvps"
events = cypher(graph, query)
events$datetime <- timestampToDate(events$eventTime)
      eventTime rsvps            datetime
1  1.314815e+12     3 2011-08-31 19:30:00
2  1.337798e+12    13 2012-05-23 19:30:00
3  1.383070e+12    29 2013-10-29 18:00:00
4  1.362474e+12     5 2013-03-05 09:00:00
5  1.369852e+12    66 2013-05-29 19:30:00
6  1.385572e+12    67 2013-11-27 17:00:00
7  1.392142e+12    35 2014-02-11 18:00:00
8  1.364321e+12    23 2013-03-26 18:00:00
9  1.372183e+12    22 2013-06-25 19:00:00
10 1.401300e+12    60 2014-05-28 19:00:00

I wanted to get a data frame which had these columns:

Day of Week | RSVPs | Number of Events

Getting the number of events for a given day was quite easy as I could use the groupBy function I wrote last time:

groupBy = function(dates, format) {
  dd = aggregate(dates, by=list(format(dates, format)), function(x) length(x))
  colnames(dd) = c("key", "count")
  dd
}
 
> groupBy(events$datetime, "%A")
        key count
1  Thursday     9
2   Tuesday    24
3 Wednesday    35

The next step is to get the sum of RSVPs by the day which we can get with the following code:

dd = aggregate(events$rsvps, by=list(format(events$datetime, "%A")), FUN=sum)
colnames(dd) = c("key", "count")

The difference between this and our previous use of the aggregate function is that we’re passing in the number of RSVPs for each event and then grouping by the day and summing up the values for each day rather than counting how many occurrences there are.

If we evaluate ‘dd’ we get the following:

> dd
        key count
1  Thursday   194
2   Tuesday   740
3 Wednesday  1467

We now have two data tables with a very similar shape and it turns out there’s a function called merge which makes it very easy to convert these two data frames into a single one:

x = merge(groupBy(events$datetime, "%A"), dd, by = "key")
colnames(x) = c("day", "events", "rsvps")
> x
        day events rsvps
1  Thursday      9   194
2   Tuesday     24   740
3 Wednesday     35  1467

We could now choose to order our new data frame by number of events descending:

> x[order(-x$events),]
        day events rsvps
3 Wednesday     35  1467
2   Tuesday     24   740
1  Thursday      9   194

We might also add an extra column to calculate the average number of RSVPs per day:

> x$rsvpsPerEvent = x$rsvps / x$events
> x
        day events rsvps rsvpsPerEvent
1  Thursday      9   194      21.55556
2   Tuesday     24   740      30.83333
3 Wednesday     35  1467      41.91429

I’m still getting the hang of it but already it seems like the combination of R and Neo4j allows us to quickly get insights into our data and I’ve barely scratched the surface!

Categories: Blogs

R: Order by data frame column and take top 10 rows

Mark Needham - Mon, 06/30/2014 - 23:44

I’ve been doing some ad-hoc analysis of the Neo4j London meetup group using R and Neo4j and having worked out how to group by certain keys the next step was to order the rows of the data frame.

I wanted to drill into the days on which people join the group and see whether they join it at a specific time of day. My feeling was that most people would join on a Monday morning.

The first step was to run the query using RNeo4j and then group by day and hour:

library(Rneo4j)
 
query = "MATCH (:Person)-[:HAS_MEETUP_PROFILE]->()-[:HAS_MEMBERSHIP]->(membership)-[:OF_GROUP]->(g:Group {name: \"Neo4j - London User Group\"})
         RETURN membership.joined AS joinDate"
 
timestampToDate <- function(x) as.POSIXct(x / 1000, origin="1970-01-01")
 
meetupMembers = cypher(graph, query)
meetupMembers$joined <- timestampToDate(meetupMembers$joinDate)
 
groupBy = function(dates, format) {
  dd = aggregate(dates, by= list(format(dates, format)), function(x) length(x))
  colnames(dd) = c("key", "count")
  dd
}
 
byDayTime = groupBy(meetupMembers$joined, "%A %H:00")

This returned quite a few rows so we’ll just display a subset of them:

> byDayTime[12:25,]
            key count
12 Friday 14:00    12
13 Friday 15:00     8
14 Friday 16:00    11
15 Friday 17:00    10
16 Friday 18:00     3
17 Friday 19:00     1
18 Friday 20:00     3
19 Friday 21:00     4
20 Friday 22:00     7
21 Friday 23:00     2
22 Monday 00:00     3
23 Monday 01:00     1
24 Monday 03:00     1
25 Monday 05:00     3

The next step was to order by the ‘count’ column which wasn’t too difficult:

> byDayTime[order(byDayTime$count),][1:10,]
              key count
2    Friday 03:00     1
3    Friday 04:00     1
4    Friday 05:00     1
5    Friday 07:00     1
17   Friday 19:00     1
23   Monday 01:00     1
24   Monday 03:00     1
46 Saturday 03:00     1
66   Sunday 06:00     1
67   Sunday 07:00     1

If we run the order function on its own we’ll see that it returns the order in which the current rows in the data frame should appear:

> order(byDayTime$count)
  [1]   2   3   4   5  17  23  24  46  66  67 109 128 129   1  21  44  47  48  81  86  87  88 108 130  16  18  22  25  45  53  64  71  75 107  19  26  49  51  55  56  58  59  61
 [44]  65  68  77  79  85 106 110 143  50  52  54  82  84 101 127 146  27  57  60  62  63  69  70  73  99 103 126 145   6  20  76  83  89 105 122 131 144   7  13  40  43  72  80
 [87] 102  39  78 100 132 147  15  94 121 123 142  14  42  74 104 137 140  12  38  92  93 111 124   8   9  11  90  96 125 139  10  32  34  36  95  97  98  28 135 136  33  35 112
[130] 113 116 134  91 141  41 115 120 133  37 119 138  31 117 118  30 114  29

The first 4 rows in our sorted data frame will be rows 2-5 from the initial data frame, which are:

           key count
2 Friday 03:00     1
3 Friday 04:00     1
4 Friday 05:00     1
5 Friday 07:00     1

So that makes sense! In our case we want to sort in descending order which we can do by prefixing the sorting variable with a minus sign:

> byDayTime[order(-byDayTime$count),][1:10,]
                key count
29     Monday 09:00    34
30     Monday 10:00    28
114   Tuesday 11:00    28
31     Monday 11:00    27
117   Tuesday 14:00    27
118   Tuesday 15:00    27
138 Wednesday 14:00    23
119   Tuesday 16:00    22
37     Monday 17:00    21
115   Tuesday 12:00    20

As expected Monday morning makes a strong showing although Tuesday afternoon is also popular which is unexpected. We’ll need to do some more investigation to figure out what’s going on there.

Categories: Blogs

Performance Testing in Agile Contexts

TV Agile - Mon, 06/30/2014 - 23:05
Performance Testing has long been conducted as a single experiment against a fully complete and assembled system. Architecture, software, hardware, networks, data states, and workload models are all combined to try and create the most “accurate” simulation possible to produce test results predictive of production experience. Performance testing with this approach can be helpful for […]
Categories: Blogs

New Content: Continuous Integration

Agile Product Owner - Mon, 06/30/2014 - 22:11

For those following SAFe, you are aware that the next release will occur on July 28, 2014. Many of the upcoming changes focus on the expanded portfolio level, as we have described through this recent series of blog posts. This is because we are seeing SAFe applied in larger and larger contexts, and we are seeing new patterns of effective lean-agile portfolio management emerge. (As we learn new things, we record them. As we understand these things, we create better pictures!)

But we’ve been working on the Teams and Program areas as well, because if the teams aren’t agile, nobody is. You can see some of these changes implied in the expanded Code Quality section below. (We described Test-First earlier). We’ve just completed some guidance on Continuous Integration, so we’ve posted here, in SAFe 2.5 guidance, as well.

SAFe 3.0 team with Continuous Integration highlighted.

SAFe 3.0 team with Continuous Integration highlighted.

A special thanks to the Lean Samurai, Inbar Oren, who contributed much of this content.

Categories: Blogs

Hansoft Expands Financing to $10 million with Hasso Plattner Ventures

DevAgile.com - Mon, 06/30/2014 - 19:44
Hansoft, with its eponymous tool for team collaboration and management in Agile software development today announced it has partnered with venture capital firm Hasso Plattner Ventures to further accelerate growth worldwide.
Categories: Communities

Hansoft Gets $10 million Financing

Scrum Expert - Mon, 06/30/2014 - 19:41
Hansoft, vendor of a tool for team collaboration and management in Agile software development today announced it has partnered with venture capital firm Hasso Plattner Ventures to further accelerate growth worldwide. Hansoft is used for development of products and services by the most demanding teams in industries such as Electronics, Aerospace, Space, Game Development, and Telecom. These are companies who need to accelerate time to market, while improving overall productivity and quality, and Hansoft helps them achieve this by enabling better practices for boosting innovation and scaling Agile software and hardware ...
Categories: Communities

So you’re going to be a ScrumMaster?

Agile Management Blog - VersionOne - Mon, 06/30/2014 - 17:58

Team“Well I am a PM now but they are making me a Scrum Master.” I have heard that statement countless times. Some PMs are happy about the new challenge, some aren’t and some just want to keep making those Benjamins. I have to admit even though being an embedded software engineer by trade the ScrumMaster role is my favorite role on a Scrum team. When asked what is a ScrumMaster I always respond with a servant leader and Agile champion for your team. Yes there are more details but I think simple is the best approach sometimes.

I thought it might be a nice time to talk about some of the qualities that a great PM has and how those look in an Agile environment. PMs tend to get a bad wrap from the Agile world so lets clear the air. I just so happen to have a fiancee that is a PM for a large company. She tries to give me a gantt chart for the week and I hand her story cards daily at breakfast. I asked her to take a survey of her peers which consisted of development, product management and other PMs. They came up with five qualities a PM has, here they are in no particular order.

Issue / Risk Assessment
Issue Resolution
Listening Skills
Manage Expectations of the Business
Process Oriented
On the topic of issue/risk assessment I can help your stress level by letting you know that issue assessment and risk assessment take different routes. Issue assessment gets the chance to happen everyday in team’s standup meeting. Of course if this is urgent it may be brought to your attention sooner. Risk assessment is happening all the time by way of the entire team. Is the sprint going to be completed, what stories might be slipping and what can we do as a team to deal with that.

Issue resolution is a key quality that will carry over. As a ScrumMaster you should do everything in your power to resolve issues or impediments for the team. This not only keeps the team adding value all the time it also builds their trust in you as the ScrumMaster. Issue resolution also requires a good listening skill.

Listening is a skill or quality that I think everyone is challenged with in life. Listening before you speak, listening before you start to think of your response etc. ScrumMasters have to fine tune this skill, even when it makes things uncomfortable at times. Some ScrumMasters tried to lead the team too often with words. I am a fan of posing the question and then letting the silence get uncomfortable enough that someone from the team answers. Which breaks the ice and conversation begins to flow. This also starts the baby step path to the team becoming more and more self organized.

Our next quality, managing expectations of the business, which is easier now! You get to manage it two weeks at a time or however long your sprints are. You will work with product owner to sprint plan and release plan if you are making use of that planning method. Better yet, let’s remove manage and add rank. Ranking is what a product owner is doing with the pieces of the value the business is looking for. Your job as a ScrumMaster may be to help the product owner provide details necessary to get the conversation and collaboration going! Those specs are you are used are gone and I challenge you to ensure the story doesn’t turn into a spec.

Being process oriented is good thing since you have new processes to learn. Scrum as a concept isn’t hard to understand but mastering it can take quite some time. That being said a Scrum team can take a year or more to fully mature. A good ScrumMaster is more than a certification, not to knock them. You will have times when you have to figure out the best way to passively guide the team towards better Agile values. You have to truly believe that what you are saying has value and can be successful.

So I go back to my definition, a servant leader and Agile champion. Live everyday for those around you and remember the values that Agile stands for. Go have fun with the rest of the pigs! (Search for it) I’m sure I didn’t paint rainbows and unicorns for the PMs out there reading this. I can assure you the ScrumMaster role will be one of the most challenging and enjoyable roles you’ve ever played on a team.

Categories: Companies

Five links on Agile Planning

Most of the dependencies that cross-discipline teams can’t handle can be addressed in release planning.

@ClintonKeith

henrik.signature

 

 

 

I don’t claim these articles to be the best on this subject, but I have enjoyed reading them and they have made my knowledge grow. I recommend you to have a look if you are interested in the subject. Happy reading!

Follow me on twitter @hlarsson for more links on a daily basis. You may also subscribe to weekly newsletter of my links. Thanks to writers of these articles and Kirill Klimov for collecting the agile quotes: http://agilequote.info/. Please follow @agilequote for more quotes.


Categories: Blogs

Fun Retrospectives

Scrum Expert - Mon, 06/30/2014 - 15:54
If you are following an Agile approach to project management like Scrum, you should have adopted a continuous improvement practice. Retrospectives are the name of the meeting when the Scrum team makes a pause to think on how to improve its current. Fun Retrospectives is a book that should help you to animate these meetings.The material of this book can however be applied to many types of team project meetings like kick-off meetings or risk management meetings. The book discusses the following types of activities that you can use for ...
Categories: Communities

LAST Conference, Melbourne, Australia, July 11 2014

Scrum Expert - Mon, 06/30/2014 - 15:20
The LAST conference is a one-day conference about Lean, Agile, Systems Thinking that takes place in Melbourne, Australia. It is a event for practitioners that encourages participation and interaction via talks, workshops and activities. In the agenda up you can find topics like “Soft Skills for Software”, “My take on SAFe”, “How we delivered more with Test Coverage Mondays, No Meeting Tuesdays and Innovation Fridays”, “Scaling Agile”, “Solving Agile-at-Scale issues on an even larger scale: Crowd sourced!” or “Goodbye Requirements, Hello Hypotheses”. Web site: http://www.lastconference.com/ Location for the 2014 conference: Swinburne University of ...
Categories: Communities

Knowledge Sharing


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