Skip to content

Feed aggregator

A Light Bulb Moment

Agile Complexification Inverter - Mon, 01/23/2017 - 04:58
A few months ago Michele of Sliger Consulting, Inc. asked about my first Agile Light Bulb moment, I've had a few of them but one that easily came to mind was this one with the Washington State Appellate Clerk court case management systems people back in 2005.

In just two months our newly delivering Scrum team had put into production the "undoable" feature - BAM! - value delivered, trust confirmed, transformation successful.
"My light bulb moment was during the product demo in the Sprint Review Meeting, when the state of Washington Appellate Clerk of Court told me he and the courts had been waiting 20 years for the feature that our team had just delivered. In just two months our newly delivering Scrum team had put into production the "undoable" feature - BAM! - value delivered, trust confirmed, transformation successful. He later sent me the requirement spec for the 20-year-old feature and it read just like our epic story and its children we discovered. Yes, this was a completely different system than the previous retired system - yet it had the same customer needs. We had transitioned from a deadlocked in analysis paralysis development group to a Scrum team in under 3 months, delivering into production every month new features, bug fixes, and tested working software."  -- David Koontz
See other Light Bulb Moments at Sliger Consulting Light Bulb Moments

Have you seen in other collections of Light Bulb Moments?  Please comment below.


Categories: Blogs

Team Experience – A Team of Coaches and Trainers

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

Two weeks ago I joined a temporary team of Scrum Alliance Certified Scrum Trainers and Certified Enterprise Coaches.  It was a fabulous experience and I hope that I will be able to do it again sometime soon.  We worked together to build real valuable results for the rest of the Scrum ecosystem including reference training modules and in-depth website content, feedback for Scrum Alliance programs, and even some fun videos.

Brock Argue was one of the CECs there, and he has written a great summary of how it felt: The Art of Teaming Part 1.  One cool point he makes:

Introductions were friendly and helpful and as we started getting into the work things heated up…. I got frustrated with the direction of the conversation and I grew impatient with the lack of progress we were making. I’m sure other team members were experiencing similar feelings, and as coaches we understand how difficult team formation can be. Imagine how unsettling this is for a team who isn’t aware of these group growth stages; that they’re unavoidable and healthy to experience.

The stages Brock is referring to are the stages of team development as described by Tuckman: Forming, Storming, Norming, and Performing (and sometimes Adjourning is added on).

Thanks to Robin Dymond, Mark Levison who organized the event and Shannon Carter from the Scrum Alliance who supported the event with her personal presence.

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

The post Team Experience – A Team of Coaches and Trainers appeared first on Agile Advice.

Categories: Blogs

Why You Need to Begin Agile at the Program and Not The Team

NetObjectives - Sun, 01/22/2017 - 08:25
I talk to many people who have spent a lot of money and time on training their teams in Agile (typically Scrum) only after a year or so seeing little results.  They say that although their teams are following Agile practices but getting things out the door hasn’t improved dramatically.  This is not the fault of Scrum, but rather the fact that the bottom up approach for transition is flawed. The...

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

Design Patterns Thinking and Architecture at Scale

NetObjectives - Sat, 01/21/2017 - 20:47
I am doing a talk at the Agile Technical Conference called Design Patterns and Architecture at Scale.  It is about the relationship between Design Patterns thinking and architecture at scale.  I thought the basis of the talk would be of interest. People often have difficulty creating and maintaining application architectures.  While test-driven development, automated testing and continuous...

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

Go vs Python: Parsing a JSON response from a HTTP API

Mark Needham - Sat, 01/21/2017 - 12:49

As part of a recommendations with Neo4j talk that I’ve presented a few times over the last year I have a set of scripts that download some data from the meetup.com API.

They’re all written in Python but I thought it’d be a fun exercise to see what they’d look like in Go. My eventual goal is to try and parallelise the API calls.

This is the Python version of the script:

import requests
import os
import json

key =  os.environ['MEETUP_API_KEY']
lat = "51.5072"
lon = "0.1275"

seed_topic = "nosql"
uri = "https://api.meetup.com/2/groups?&topic={0}&lat={1}&lon={2}&key={3}".format(seed_topic, lat, lon, key)

r = requests.get(uri)
all_topics = [topic["urlkey"]  for result in r.json()["results"] for topic in result["topics"]]

for topic in all_topics:
    print topic

We’re using the requests library to send a request to the meetup API to get the groups which have the topic ‘nosql’ in the London area. We then parse the response and print out the topics.

Now to do the same thing in Go! The first bit of the script is almost identical:

import (
	"fmt"
	"os"
	"net/http"
	"log"
	"time"
)

func handleError(err error) {
	if err != nil {
		fmt.Println(err)
		log.Fatal(err)
	}
}

func main() {
	var httpClient = &http.Client{Timeout: 10 * time.Second}

	seedTopic := "nosql"
	lat := "51.5072"
	lon := "0.1275"
	key := os.Getenv("MEETUP_API_KEY")

	uri := fmt.Sprintf("https://api.meetup.com/2/groups?&topic=%s&lat=%s&lon=%s&key=%s", seedTopic, lat, lon, key)

	response, err := httpClient.Get(uri)
	handleError(err)
	defer response.Body.Close()
	fmt.Println(response)
}

If we run that this is the output we see:

$ go cmd/blog/main.go

&{200 OK 200 HTTP/2.0 2 0 map[X-Meetup-Request-Id:[2d3be3c7-a393-4127-b7aa-076f150499e6] X-Ratelimit-Reset:[10] Cf-Ray:[324093a73f1135d2-LHR] X-Oauth-Scopes:[basic] Etag:["35a941c5ea3df9df4204d8a4a2d60150"] Server:[cloudflare-nginx] Set-Cookie:[__cfduid=d54db475299a62af4bb963039787e2e3d1484894864; expires=Sat, 20-Jan-18 06:47:44 GMT; path=/; domain=.meetup.com; HttpOnly] X-Meetup-Server:[api7] X-Ratelimit-Limit:[30] X-Ratelimit-Remaining:[29] X-Accepted-Oauth-Scopes:[basic] Vary:[Accept-Encoding,User-Agent,Accept-Language] Date:[Fri, 20 Jan 2017 06:47:45 GMT] Content-Type:[application/json;charset=utf-8]] 0xc420442260 -1 [] false true map[] 0xc4200d01e0 0xc4202b2420}

So far so good. Now we need to parse the response that comes back.

Most of the examples that I came across suggest creating a struct with all the fields that you want to extract from the JSON document but that feels a bit over kill for such a simple script.

Instead we can just create maps of (string -> interface{}) and then apply type conversions where appropriate. I ended up with the following code to extract the topics:

import "encoding/json"

var target map[string]interface{}
decoder := json.NewDecoder(response.Body)
decoder.Decode(&target)

for _, rawGroup := range target["results"].([]interface{}) {
    group := rawGroup.(map[string]interface{})
    for _, rawTopic := range group["topics"].([]interface{}) {
        topic := rawTopic.(map[string]interface{})
        fmt.Println(topic["urlkey"])
    }
}

It’s more verbose that the Python version because we have to explicitly type each thing we take out of the map at every stage, but it’s not too bad. This is the full script:

package main

import (
	"fmt"
	"os"
	"net/http"
	"log"
	"time"
	"encoding/json"
)

func handleError(err error) {
	if err != nil {
		fmt.Println(err)
		log.Fatal(err)
	}
}

func main() {
	var httpClient = &http.Client{Timeout: 10 * time.Second}

	seedTopic := "nosql"
	lat := "51.5072"
	lon := "0.1275"
	key := os.Getenv("MEETUP_API_KEY")

	uri := fmt.Sprintf("https://api.meetup.com/2/groups?&topic=%s&lat=%s&lon=%s&key=%s", seedTopic, lat, lon, key)

	response, err := httpClient.Get(uri)
	handleError(err)
	defer response.Body.Close()

	var target map[string]interface{}
	decoder := json.NewDecoder(response.Body)
	decoder.Decode(&target)

	for _, rawGroup := range target["results"].([]interface{}) {
		group := rawGroup.(map[string]interface{})
		for _, rawTopic := range group["topics"].([]interface{}) {
			topic := rawTopic.(map[string]interface{})
			fmt.Println(topic["urlkey"])
		}
	}
}

Once I’ve got these topics the next step is to make more API calls to get the groups for those topics.

I want to make those API calls in parallel while making sure I don’t exceed the rate limit restrictions on the API and I think I can make use of go routines, channels, and timers to do that. But that’s for another post!

The post Go vs Python: Parsing a JSON response from a HTTP API appeared first on Mark Needham.

Categories: Blogs

Article 3 in SAFe Implementation Roadmap series: Train Executives, Managers, Leaders

Agile Product Owner - Fri, 01/20/2017 - 20:18
Roadmap_article_3Click to enlarge.

As we work through the ‘critical moves’ highlighted in the SAFe Implementation Roadmap, this one—Train Executives, Managers, and Leaders—could arguably be the most important.

We’ve learned from hundreds of SAFe implementations that there are distinct patterns to succeeding, as there are to failing. And that usually has to do with the buy-in, and even more importantly, the full participation of leadership. Their ability to understand and embrace the values and practices of SAFe, and to lead the change, make all the difference.

This article addresses what’s needed to make it through this next critical stage of implementation. It covers:

  • The need to create an effective change coalition
  • How leaders learn, master, and exhibit the Lean-Agile Mindset
  • How leaders learn and apply SAFe Lean-Agile principles in their daily work
  • The more specific responsibilities of SAFe Lean-Agile Leaders, including six activities that leaders can use to improve business outcomes
  • How leaders can continue their learning journey, gaining new knowledge, learning new skills, and making the next moves

Read the full article here. As always, we welcome your thoughts so if you’d like to provide some feedback on this new series of articles, you’re invited to leave your comments here.

Stay SAFe!
—Dean and the Framework team

Categories: Blogs

Our own font!

Growing Agile - Thu, 01/19/2017 - 15:48
Those of you who know us and our products, will know how fond we are of handwritten slides and handouts. But every now and again we need to update or change a slide, and that’s easier to do digitally. For a long time we’ve used Lauren C. Brown as our favoured handwriting font, because it […]
Categories: Companies

Update and a Bonus Recipe for the Docker Recipes eBook Pre-Sale

Derick Bailey - new ThoughtStream - Thu, 01/19/2017 - 14:30

On Monday, January 16th, I launched my Docker Recipes for Node.js Development pre-sale. The goal is to sell 100 copies of the early-access version of the book, as a way of funding further writing and development of the book.

As of writing this on Wednesday evening, January 18th, I’ve sold 85 copies!

I have to say this is selling faster than I expected, so far. But I know it can do better. 

The original goal was to hit the 100 mark before February. It’s 85% of the way – so close to guaranteeing the book will be completed!

As such, I want to offer a new target and a bonus if the book hits that target.

New Goal: 100 Sales Before Monday, January 23rd

That’s the new goal – to sell 100 copies of the pre-release eBook before Monday, January 23rd.

That’s only 15 more copies than what has already been sold.

And that’s all it will take to guarantee continued work on the book, through completion!

But beyond the 100 sales goal for the book, I want to offer a bonus for helping the community hit this new goal.

Bonus Recipe: Speed Up npm install In Your Container

Writing software in a Docker container has a lot of advantages. It allows you to isolate code, dependencies and development tooling from other projects, for example.

Anyone that has done node.js development in Docker knows that there are a few drawbacks, however. Among the frustrations that developers feel is the slowness of running “npm install” in a container that has a mounted volume.

It can take 30+ seconds to install even a few dependencies, such as those that come with a bare-bones install of Express.js.

But, thanks to the advice of a WatchMeCode member, the Docker Recipes eBook is about to get a recipe that shows you how to solve this problem. 

From the first draft of this potential bonus early-release recipe:

This recipe comes from a guest chef and WatchMeCode community member.

When working with a development version of an image, it’s common to have a volume mount from ./ of your project on your local system, pointing to the folder in which the code runs in a container instance. Having this mount allows you to edit code on your machine and have it reflected in the container instantly.

There is one severe annoyance with this, however. File system reads and writes a significantly slower than if they were all happening within your container.

When you’re dealing with a single file being modified, the difference is not really noticeable. With something like npm install, which typically writes hundreds – if not thousands – of files, the difference is significant.

To fix this issue, you’ll want to tell your image and container how to handle the node_modules folder, correctly.

But to get this bonus early-release recipe, you’ll need to purchase the pre-release ebook before Monday, January 23rd.

If 100 sales are hit before that date, this bonus recipe will be immediately added to the pre-release version of the book, and it will be delivered straight to your inbox!

Who Should Buy The Pre-Release Book?

There are a lot of reasons to buy the book now, vs later. Not the lease of which is the content already contained in (or about to be released, with the above bonus) in the book.

  • If you’re learning Docker and already have some success running other people’s images and containers…
  • If you’re starting to build your own images and wondering about how to edit code in the container …
  • If you’ve got your code up and running, but don’t know how to debug it or run your favorite build tool within the container …
  • Or if you’re wondering why installing modules through npm, into a container with a mounted volume, is taking so long…

You owe it to yourself to buy the pre-release version of this ebook.

You’ll have instant access to the current pre-relase ebook version.

And the bonus chapter will be yours on Monday, the 23rd, if 100 sales are hit in time.

Additionally, you’ll be a part of the feedback cycles for the continued work on the book. Your input will be used to help guide the direction, make edits, add and edit recipes and more. 

Help this book live up to your standards, and meet your needs.

Buy the pre-sale book, ensure the work is completed, and get the bonus recipe!

The post Update and a Bonus Recipe for the Docker Recipes eBook Pre-Sale appeared first on DerickBailey.com.

Categories: Blogs

Mile High Agile, Denver, USA, May 22-23 2017

Scrum Expert - Thu, 01/19/2017 - 14:00
Mile High Agile is a one-day conference is produced by volunteers from Agile Denver that provides an opportunity to share knowledge and experiences in Agile software development for agile novices, intermediates and experts, technical professionals, team leaders, managers, executives, and organizational change leaders. In the agenda of the Mile High Agile conference, you can find topics like “Creating Program Alignment: The Product Wall Release Planning Workshop”, “The DNA of an Innovative Product Owner”, “Kanban at Scale – This Siemens Healthcare Case Study”, “Tales From the Trenches: Transforming Teams to Kanban and Scrumban”, “STATIK: Systems Thinking Approach to Introducing Kanban”, “You Can’t Manage What You Can’t See”. Web site: http://milehighagile.org/ Location for the Mile High Agile Denver conference: Hyatt Regency Denver at Colorado Convention Center, 650 15th Street, Denver, Colorado 80202 USA
Categories: Communities

ConnectALL 2.6.1 for VersionOne Released

Scrum Expert - Wed, 01/18/2017 - 19:13
Go2Group has released ConnectALL 2.6.1 for VersionOne. The VersionOne adapter in ConnectALL lets you efficiently manage all levels of enterprise agile project management. You can integrate VersionOne projects with other agile tools to enhance collaboration and optimize your agile project management. Each team can work on the application of its choice and all data between agile tools flows bi-directionally. ConnectALL integrates the most popular Application Lifecycle Management tools using a “configuration, not coding” approach. ConnectALL allows integrating VersionOne with ServiceNow, JIRA and HPE ALM. For agile development teams using JIRA and VersionOne, ConnectALL transforms JIRA issues into workitems (defects or stories) in VersionOne. Using this integration, an organization can manage and triage issues reported by customers and promote them to VersionOne for prioritization, estimation, planning, and implementation. When the work is completed in VersionOne, the integration updates JIRA to reflect the resolved status. The testing team identifies a defect in HPE ALM. The defect is replicated to a VersionOne project as a new defect by ConnectALL. As the development team starts to debug, all the updates are synced back to the defect in HPE ALM. Upon completion of development, the defect is resolved.
Categories: Communities

A Pragmatic Introduction to Lean Principles

TV Agile - Wed, 01/18/2017 - 17:14
We all know that Agile is sweeping the project management world. Or is it Lean? Lean Agile? Scrum? Kanban? Scrumagilean, maybe? Jon Terry discusses how these ideas relate to each other. How Lean principles provide the organizational framework to allow Agile to succeed beyond the team level. What the Kanban method really is. Hint: It’s […]
Categories: Blogs

A Step By Step Guide to Agile By Stealth

Scrum Expert - Wed, 01/18/2017 - 16:46
Resistance to change is part of the human condition and overcoming this resistance is part of adopting Agile & Scrum and changing the way delivery teams work together. A large part of the prevailing certified methods are about tackling this problem in a variety of ways. How successful these methods are depends on many things and not least the starting conditions and senior leadership support. Without this kind of safety net creativity is called for and Tony Heap talks here about his experiences with a less head on approach to influencing things. One thing Tony noticed about agile is that it’s difficult to really understand it unless you’ve actually done it. This makes it tricky to *sell* agile – especially to people who are used to a plan-driven (waterfall) approach. In other words pretty much everyone who hasn’t already gone agile. From experience, agile delivery is just too different from waterfall for some folk to jump in head first. It is, however, possible to take people on a journey from waterfall towards agile delivery that doesn’t involve too much of a leap of faith. This presentation describes a step-by-step strategy that can be used with some success. Video producer: http://www.agileyorkshire.org/
Categories: Communities

Manual Test Automation - Part 1

NetObjectives - Wed, 01/18/2017 - 16:42
This 3 part blog post and the title for it is inspired by a colleague who is currently living the manual test automation nightmare on an engagement. He reminded me how common a pattern it is and one that I have seen way too often over various engagements. Based on recent engagements and stories I hear from other colleagues in the industry, it is clear that it will be a trend that will continue...

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

Slack and the Agile Manager’s Role: Be the Slack

Leading Agile - Mike Cottmeyer - Wed, 01/18/2017 - 15:00

In his book “Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency”, Tom DeMarco makes the point that you can’t be creative when you are overworked or overburdened. Stress kills innovation as does busyness. Little slack leads to little time to look around leads to little improvement. To be creative, your mind needs to feel free and unallocated, uncluttered even.

Thankfully, we have a solution.

We have more than one, in fact. Let me first tell you about the solution that this article is not about. You can introduce slack into your organization with regular slack time. There are numerous well known examples of companies that do things like Fed-Ex days, time set aside for self-directed work, not allocated to Prioritized Product Backlog Items. Dan Pink once endorsed this approach. In line with this, I like what Dan has to say about what motivates knowledge workers.

But there’s another solution to the lack of slack that we should entertain first. In fact, you are less likely to use FedEx days if you aren’t first doing the following. To introduce this I must first point out something that Scrum says about managers. Scrum doesn’t say a whole lot about managers, but it does say at least this: mangers must stop assigning tasks. Too bad that many managers get their power and sense of self-worth from this activity. Deciding how to get the work done in Scrum is left up to the self-organizing cross-functional team. The people who can best decide how the work should be done are those closest to the work.

Just to be clear, agile managers should not:

  • make assignments
  • hand out work
  • direct people or tell them what to do
  • make the hiring decision solo
  • SW architecture (in my opinion – debatable)
  • do work
  • be an individual contributor
  • be a hero

Well, gosh, then shat should a manager do? Well, I’ll tell ya. Manage more people. Step in when the team needs help (but not too quickly). Manage risks. Also, you are still an agent of the company, handling legal stuff, signing off on expenditures, etc.

But you could also do something else.
Slack time in the office.

Be the Slack.

Move up to a higher level of value to the organization. Be the slack that has been wrung out of the team. Here are some specific suggestions:

  • Keep an eye on the system, looking for improvements.
  • Use A3 Problem Solving (A3 Thinking).
  • Understand the capacity of the team.
  • Protect the slack; protect capacity that is reserved for classes of work that require a short lead time.
  • Ensure cross-training is happening (not by making assignments, but making the team handle it).
  • Understand the dynamics of the organization.
  • Understand how value is created.
  • Protect the team from interference.
  • Make the organization effective; learn to look at it as a system.
  • Support the team.
  • Clear roadblocks.
  • Provide good facilities; fight the facilities police. (Better: Teach facilities how value is created and how better facilities helps create value.)
  • Provide ample computing infrastructure, sufficient build machines and test machines (People are far more expensive than VMs).
  • Use Derby’s 14 essential questions for managers or the book on this topic she is working on.
  • Read Deming and Goldratt.
  • Watch interpersonal interaction; Watch when one team member pulls back, withdraws in a brainstorm (for example)
  • Help the team hone their craft.
  • Encourage the team to learn TDD and BDD by making room for them to learn (time – remove the schedule pressure while they learn).
  • Think through policies, procedures and reward/review systems and improve them. (What messages do they send?)
  • Understand what motivates knowledge workers (see the previous reference to Pink); Let creating that kind of environment be an imperative.

I contend that we should focus on continuous improvement of process, of people’s skills and knowledge, with a strong focus on empowerment and self-organization. Work on open, honest feedback. You’ll have better results if you do all that and just completely scrap the individual annual review. I love quoting Drucker here: “The average person takes 6 months recovering from a performance review.”

Let me bring it back together by saying you can’t do a good job with this other higher value stuff if you are down in the weeds assigning tasks to people. Delegate more. In fact, delegate everything. Free yourself to be the ultimate in valuable slack.

The post Slack and the Agile Manager’s Role: Be the Slack appeared first on LeadingAgile.

Categories: Blogs

Free the Scrum!

Growing Agile - Wed, 01/18/2017 - 11:55
We believe that anyone should be able to acquire a basic understanding of scrum for free. In fact, we believe it so strongly that we want to start a new movement #FreeTheScrum ! So often in our work as coaches we find teams have never been trained on the basics of Scrum. Sometimes it is considered too expensive. […]
Categories: Companies

What’s New: Analyze Your Data, Your Way with New Options for Advanced Reporting

We’re delighted to announce that we’ve expanded our Advanced Reporting capabilities so that you can easily analyze...

The post What’s New: Analyze Your Data, Your Way with New Options for Advanced Reporting appeared first on Blog | LeanKit.

Categories: Companies

“When Will This Software Project Ever Be Done?”

Leading Answers - Mike Griffiths - Tue, 01/17/2017 - 21:00
Does this question sound familiar? If you get asked it regularly then you may be part of the mainstream transformation from software projects to products. It’s coming and it's going to turn many roles, certifications and in some cases entire... Mike Griffiths
Categories: Blogs

Time Theft: How Hidden and Unplanned Work Commit the Perfect Crime

In this webinar, Dominica DeGrandis, Director of Training and Coaching at LeanKit, shares her experience helping teams put conditions in place that enable hidden and unplanned work to be seen and measured.

The post Time Theft: How Hidden and Unplanned Work Commit the Perfect Crime appeared first on Blog | LeanKit.

Categories: Companies

Writing a book - Secure by Design

Dear Junior
I'm sorry for not writing to you for quite some time. But, you see, I have been working on a book together with my two colleagues and friends Daniel Deogun and Daniel Sawano. Late this summer we decided to try to write down our collective experiences and insights in design and security as a book. We are far from finished, but by now the first few chapters are released from the publisher Manning as part of their "Manning Early Access Program" (MEAP).
The book is named Secure by Design and our main message is how good design and good code can help developers avoid security problems. We have found that lots of security vulnerabilities are due to bugs that could have been avoided if the design of the code had been different. 




You as well as I know that it is a lot easier to think about "good design" when developing features, that it is to think "security" at the same time.
Of course not all good design lead to avoiding security vulnerabilities. So we have gathered our experience on what design-tricks that are most effective in giving security as a side-effect. It's probably no big surprise to you that Domain-Driven Security is an important part of this, but there are many other parts as well.
We still have a lot of material to cover. But, what we have started with things that are close to the code, such as building Domain Primitives, how to structure validation, immutability etc. I guess you will find several of these ideas familiar, as we have discussed them earlier - but there are also some new insights I have not yet had the time to write to you about. Well, not to mention all the ideas from Daniel and Daniel which you and I haven't had possibility to reflect on earlier.
In the later parts there will be more material on integration, security benefits from cloud thinking. We also want to share our ideas around architecture such as security concerns for microservice architecture or how to handle legacy codebases.
We will continue to write during the spring and early summer. Hopefully we will see the book in print sometime during the fall this year.
Yours
   Dan
PS The early-access was released last night; you can check the book at https://www.manning.com/books/secure-by-design
Categories: Blogs

Knowledge Sharing


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