Skip to content

Feed aggregator

#AgileCrete, Heraklion, Greece, July 28-30 2016

Scrum Expert - Mon, 07/11/2016 - 09:00
The #AgileCrete conference is a three-day event focused on Agile software development that takes place in Heraklion, the main city of the island of Crete in Greece. The aim of the conference is to be a playground where Agile coaches and software development team members could gather to discuss and share ideas about all things Agile and Scrum. The #AgileCrete event follows the open space format for conferences. Open space is a simple methodology for self-organizing conference tracks. It relies on participation by people who have a passion for the topics to be discussed. There is no preplanned list of topics, only time slots and a space in the main meeting room where interested participants propose topics and pick time slots. Web site: http://agilecrete.org/ Location for the #AgileCrete conference: Arina Sand Resort, Kokkini Chani, Heraklion, Crete
Categories: Communities

A Brief History of the Learning Consortium

Scrum Breakfast - Mon, 07/11/2016 - 08:35
The Scrum Alliance has had a bumpy two months, with a total of 4 out of 10 directors resigning and 2 new directors coming on board -- with specialties in Corporate Governance and Ethics(!). Some of the discussions have centered around the Learning Consortium, and apparently ethics and governance are hot topics as well. To help people understand what the Learning Consortium is about, I have attempted to summarize the goals, purpose, history and probable future of the Learning Consortium.

I have known Steve Denning since he started looking for reviewers for what became 'The Leaders Guide to Radical Management'. I attended his Radical Management Gathering in Washington, DC back in 2011, and he and I were among the hosts of the Stoos Gathering in 2012. if there is a common theme to these events, it was about building bridges across compatible schools of thought.
The Story of the Learning ConsortiumIn 2014, Steve -- by then a director at the Scrum Alliance -- was arguing that to transform the world of work, it was necessary to transform the organizations where people work. He wanted to reach the business schools and thought leaders, to get Agility on their radar screens. In November, he launched the idea of the Learning Consortium (LC):
"'We have arrived at a turning point,' says the launch abstract of the Global Peter Drucker Forum 2014. “Either the world will embark on a route towards long-term growth and prosperity, or we will manage our way to economic decline.... While there is a broad consensus emerging on the direction of change, there is less reliable information on the 'how' of making these shifts. What are the opportunities? What are the constraints? How much change is actually happening on the ground? What are the benefits? What are the costs? What are the risks? The Learning Consortium is designed to shed light on these questions."

-- November, 2014 draft of the call for participation Exploring A Learning Consortium For The Creative EconomyThe idea was to identify companies that were systematically facing the challenges that Scrum helps them address, document their cases, and publish the results.

The leadership was provided by the Scrum Alliance, and the three principal organizers were:
  • Steve Denning, a board member of Scrum Alliance
  • Jay Goldstein, Adjunct Professor of Entrepreneurship at McCormick School of Engineering at Northwestern University,
  • Michael Pacanowsky, holder of the Gore-Giovale Chair in Business Innovation at Westminster College in Salt Lake City, Utah
I attempted to recruit some Swiss companies to participate. I did not succeed for reasons that have more to do with local market than the Learning Consortium itself, so my direct involvement was limited to the beginnings. I have however talked to Steve Denning and Jay Goldstein about the progress of the Learning Consortium from time to time over the last year and half or so.

My recollection is that the Scrum Alliance Trainers and Coaches ("TCC") Community did not react strongly to the LC initiative. Perhaps 10% or 20% participated in the webinar. So the LC got started as a board-level initiative without much support (nor AFAIK much resistance) from the TCC Community at the time.

The LC started building the bridge between Agile management and classical management - One aspect was the Scrum Alliance LC webinar series. Quite a number of thought leaders appeared, including Gary Hamel, John Hagel, Rod Collins, Roger Martin and Curt Carlson, as well as CSTs like Joe Justice, Simon Roberts and myself. (Man am I honored to be on the same page with these people!) The series was quite popular: iirc about 4000 people signed up for the webinar I participated in.

The Learning Consortium also created a group of companies, whose purpose was to share knowledge at the leadership level among companies who were facing the challenges of the Creative Economy. These companies included:
  • agile42
  • Brillio
  • C.H. Robinson International
  • Ericsson
  • Magna International
  • Menlo Innovations
  • Microsoft
  • Riot Games
  • SolutionsIQ
They organized a series of site visits so they could learn from each other. After a year, they held a members-only conference to share results. Due to the sensitive nature of the information they were sharing, they made working agreements about what to share and how to communicate that information beyond the LC. Out of this conference, the principals wrote the concluding paper.

The concluding paper was presented in November, 2015 to the annual Drucker Forum, while the Scrum Alliance was a sponsor of that event. Imagine, the thought leaders of management thinking listen to how Agile was being used to successfully master the challenges of the 21st century! AFAIK this is the first time Agile has been on the radar screen of the thought leaders of management.

BTW - If you haven't read the report, I recommend it. You can download it from the Scrum Alliance (officially) or without going through their registration wall. The paper is "Presented by ScrumAlliance", authored by Steve Denning and two others. It is licensed under the Creative Commons Non-Commercial Share-Alike license. The essential message is that Agility is a mindset. Just applying the tools and processes is not sufficient to give you the results you are looking for.
What is planned?My understanding is that the company visits were very well liked by the participants. The NPS scores were very high and the participants decided to continue. The members have founded a new non-profit organization. The Scrum Alliance is a founding member, is making a significant financial contribution and is represented on the board.

The new LC will participate in the 2016 Drucker Forum (scroll down to "Large-scale Organizational Transformations Enabling Rapid Business Innovation"). Executives from Learning Consortium members will join Steve Denning and management guru Gary Hamel to discuss innovative management practices. (Note how they avoid the "A-word" -- this is speaking the language of business leaders).
My analysis of the situationI don't understand why the Learning Consortium is controversial. The alignment with the Scrum Alliance mission is clear. Surely the Scrum Alliance board has approved this every step of the way, especially given that the Scrum Alliance is a dues-paying member of the new LC and has seats on its board.

The Learning Consortium was and continues to be non-profit. AFAIK Steve Denning has worked and continues to work on a pro-bono basis, i.e. without any financial compensation other than reimbursement of travel expenses. Rumors of people using this to launch their consulting practice seem unfounded.

The mission of the Scrum Alliance is to "transform the world of work." This transformation is first and foremost a change in mindset, not just introducing a set of processes and tools. To be effective and sustainable, the leadership of an organization must adopt the mindset. The Learning Consortium has a plan and a vision for taking that message to the top leaders of business, via the schools and thought leaders who influence that leadership.

I hope the Scrum Alliance and its former board members will resolve their differences quickly, without a long, messy and expensive divorce. The Scrum Alliance is doing great things for the transformation. The Learning Consortium is doing great things for the transformation. Any differences between the people in these organizations should not detract from the more important mission of Transforming the World of Work.


Update: 11.Jul.2016: Added Ericsson, which I had somehow not included. Thanks Erik Schön!
Categories: Blogs

Python: Scraping elements relative to each other with BeautifulSoup

Mark Needham - Mon, 07/11/2016 - 08:01

Last week we hosted a Game of Thrones based intro to Cypher at the Women Who Code London meetup and in preparation had to scrape the wiki to build a dataset.

I’ve built lots of datasets this way and it’s a painless experience as long as the pages make liberal use of CSS classes and/or IDs.

Unfortunately the Game of Thrones wiki doesn’t really do that so I had to find another way to extract the data I wanted – extracting elements based on their position to more prominent elements on the page.

For example, I wanted to extract Arya Stark‘s allegiances which look like this on the page:

2016 07 11 06 45 37

We don’t have a direct route to her allegiances but we do have an indirect path via the h3 element with the text ‘Allegiance’.

The following code gets us the ‘Allegiance’ element:

from bs4 import BeautifulSoup
 
file_name = "Arya_Stark"
wikia = BeautifulSoup(open("data/wikia/characters/{0}".format(file_name), "r"), "html.parser")
allegiance_element = [tag for tag in wikia.find_all('h3') if tag.text == "Allegiance"]
 
> print allegiance_element
[<h3 class="pi-data-label pi-secondary-font">Allegiance</h3>]

Now we need to work out the relative position of the div containing the houses. It’s inside the same parent div so I thought it’d probably be the next sibling:

next_element = allegiance_element[0].next_sibling
 
> print next_element

Nope. Nothing! Hmmm, wonder why:

> print next_element.name, type(next_element)
None <class 'bs4.element.NavigableString'>

Ah, empty string. Maybe it’s the one after that?

next_element = allegiance_element[0].next_sibling.next_sibling
 
> print next_element.name, type(next_element)
[<a href="/wiki/House_Stark" title="House Stark">House Stark</a>, <br/>, <a href="/wiki/Faceless_Men" title="Faceless Men">Faceless Men</a>, u' (Formerly)']

Hoorah! Afer this it became a case of working out how the text was structure and pulling out what I wanted.

The code I ended up with is on github if you want to recreate it yourself.

Categories: Blogs

Neo4j 3.0 Drivers – Failed to save the server ID and the certificate received from the server

Mark Needham - Mon, 07/11/2016 - 07:21

I’ve been using the Neo4j Java Driver on various local databases over the past week and ran into the following certificate problem a few times:

org.neo4j.driver.v1.exceptions.ClientException: Unable to process request: General SSLEngine problem
	at org.neo4j.driver.internal.connector.socket.SocketClient.start(SocketClient.java:88)
	at org.neo4j.driver.internal.connector.socket.SocketConnection.<init>(SocketConnection.java:63)
	at org.neo4j.driver.internal.connector.socket.SocketConnector.connect(SocketConnector.java:52)
	at org.neo4j.driver.internal.pool.InternalConnectionPool.acquire(InternalConnectionPool.java:113)
	at org.neo4j.driver.internal.InternalDriver.session(InternalDriver.java:53)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
	at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1431)
	at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)
	at sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1214)
	at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1186)
	at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.wrap(TLSSocketChannel.java:270)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.runHandshake(TLSSocketChannel.java:131)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.<init>(TLSSocketChannel.java:95)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.<init>(TLSSocketChannel.java:77)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.<init>(TLSSocketChannel.java:70)
	at org.neo4j.driver.internal.connector.socket.SocketClient$ChannelFactory.create(SocketClient.java:251)
	at org.neo4j.driver.internal.connector.socket.SocketClient.start(SocketClient.java:75)
	... 14 more
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:304)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1497)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
	at sun.security.ssl.Handshaker$1.run(Handshaker.java:919)
	at sun.security.ssl.Handshaker$1.run(Handshaker.java:916)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1369)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.runDelegatedTasks(TLSSocketChannel.java:142)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.unwrap(TLSSocketChannel.java:203)
	at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.runHandshake(TLSSocketChannel.java:127)
	... 19 more
Caused by: java.security.cert.CertificateException: Unable to connect to neo4j at `localhost:10003`, because the certificate the server uses has changed. This is a security feature to protect against man-in-the-middle attacks.
If you trust the certificate the server uses now, simply remove the line that starts with `localhost:10003` in the file `/Users/markneedham/.neo4j/known_hosts`.
The old certificate saved in file is:
-----BEGIN CERTIFICATE-----
7770ee598be69c8537b0e576e62442c84400008ca0d3e3565b379b7cce9a51de
0fd4396251df2e8da50eb1628d44dcbca3fae5c8fb9c0adc29396839c25eb0c8
 
-----END CERTIFICATE-----
The New certificate received is:
-----BEGIN CERTIFICATE-----
01a422739a39625ee95a0547fa99c7e43fbb33c70ff720e5ae4a8408421aa63b
2fe4f5d6094c5fd770ed1ad214dbdc428a6811d0955ed80d48cc67d84067df2c
 
-----END CERTIFICATE-----
 
	at org.neo4j.driver.internal.connector.socket.TrustOnFirstUseTrustManager.checkServerTrusted(TrustOnFirstUseTrustManager.java:153)
	at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:936)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1484)
	... 28 more

I got a bit lazy and just nuked the file it mentions in the error message – /Users/markneedham/.neo4j/known_hosts – which led to this error the next time I call the driver in my application:

Failed to save the server ID and the certificate received from the server to file /Users/markneedham/.neo4j/known_hosts.
Server ID: localhost:10003
Received cert:
-----BEGIN CERTIFICATE-----
933c7ec5d6a1b876bd186dc6d05b04478ae771262f07d26a4d7d2e6b7f71054c
3e6b7c172474493b7fe93170d940b9cc3544661c7966632361649f2fda7c66be
 
-----END CERTIFICATE-----

I recreated the file with no content and tried again and it worked fine. Alternatively we can choose to turn off encryption when working with local databases and avoid the issue:

Config config = Config.build().withEncryptionLevel( Config.EncryptionLevel.NONE ).toConfig();
 
try ( Driver driver = GraphDatabase.driver( "bolt://localhost:7687", config );
      Session session = driver.session() )
{
   // use the driver
}
Categories: Blogs

10 Statements You’ll Hear In a Maturing Agile Team

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

players-playing

A maturing agile team functions quite differently than any other team environment. Here are 10 examples of statements you’ll hear in a developing agile team.

 

  1. “Change is to be expected. Change is welcomed and embraced.”
  2. “Your work is already fantastic but the team is growing. How can we support you in developing the skills to adapt to our advancing team?”
  3. “You need to change. So do we all. What can we put in place as an organization to support this advancement?”
  4. “Let’s do an experiment. It might be right or it might be wrong but we won’t know until we try, learn, reflect.”
  5. “No one is to blame.”
  6. “Sure. We have all made mistakes but pointing them out gets us nowhere. We can say instead, ‘I am learning how to do… ‘such and such’ in a more effective way,’ and move forward confidently.”
  7. “Let’s talk about this with the whole team.”
  8. “Let’s take a vote.”
  9. “Let’s keep doing our work as we sort this out. Maturing teams mature when individuals keep doing their positive work.”
  10. “You have a choice about what work you do, when and how.”

Scott Ambler writes more on Agile teams in his article Roles on Agile Teams: From Small to Large Teams and elaborates on how “generalizing specialists” are the key to successful cross-functional teams. He writes, ” Generalizing specialists are the sweet spot between the two extremes of specialists, people who know a lot about a narrow domain, and generalists who know a little about a wide range of topics.”

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

The post 10 Statements You’ll Hear In a Maturing Agile Team appeared first on Agile Advice.

Categories: Blogs

Links for 2016-07-09 [del.icio.us]

Zachariah Young - Sun, 07/10/2016 - 09:00
Categories: Blogs

Agile2016 is Coming!

Agile Tools - Sun, 07/10/2016 - 07:19

hands-people-woman-meeting-large

“This is where the Agile tribes meet.”

Agile2016 is swiftly approaching. I’ll be there in Atlanta doing a couple of talks this year. If you are going to be there you should definitely come check them out:

The Self-experimentation workshop is something that I originally developed a few years ago for XP2013. It is very hands-on, each attendee contributing their own experience to the workshop. To date it has been very popular. Some attendees have described it as one of the most invigorating talks they have ever attended. That’s pretty high praise – it’s probably my all-time favorite workshop.

If you are interested in getting a bit of a sneak preview of what this self experimentation stuff is all about, you can check out the experiments that I have run on the onestandardman blog. There is also background material here and here.

On the impediments front, there is a lot of material that you will find right here in this blog. For example there is this, and this and this. And then of course there is The Little Book of Impediments. There will be copies of the book at the bookstore for purchase at the conference. Catch me and I’ll be happy to sign one.

There will also be an Agile Management Conference meetup that will be held in the Open Jam area (time & date at the conference is TBD – check the Open Jam Board) so please join us for that if you are interested.


Filed under: Agile, impediment Tagged: Agile Management Conference, Agile2016, Impediments, Self-experimentation
Categories: Blogs

R: Sentiment analysis of morning pages

Mark Needham - Sat, 07/09/2016 - 08:36

A couple of months ago I came across a cool blog post by Julia Silge where she runs a sentiment analysis algorithm over her tweet stream to see how her tweet sentiment has varied over time.

I wanted to give it a try but couldn’t figure out how to get a dump of my tweets so I decided to try it out on the text from my morning pages writing which I’ve been experimenting with for a few months.

Here’s an explanation of morning pages if you haven’t come across it before:

Morning Pages are three pages of longhand, stream of consciousness writing, done first thing in the morning.

*There is no wrong way to do Morning Pages* – they are not high art.

They are not even “writing.” They are about anything and everything that crosses your mind– and they are for your eyes only.

Morning Pages provoke, clarify, comfort, cajole, prioritize and synchronize the day at hand. Do not over-think Morning Pages: just put three pages of anything on the page…and then do three more pages tomorrow.

Most of my writing is complete gibberish but I thought it’d be fun to see how my mood changes over time and see if it identifies any peaks or troughs in sentiment that I could then look into further.

I’ve got one file per day so we’ll start by building a data frame containing the text, one row per day:

library(syuzhet)
library(lubridate)
library(ggplot2)
library(scales)
library(reshape2)
library(dplyr)
 
root="/path/to/files"
files = list.files(root)
 
df = data.frame(file = files, stringsAsFactors=FALSE)
df$fullPath = paste(root, df$file, sep = "/")
df$text = sapply(df$fullPath, get_text_as_string)

We end up with a data frame with 3 fields:

> names(df)
 
[1] "file"     "fullPath" "text"

Next we’ll run the sentiment analysis function – syuzhet#get_nrc_sentiment – over the data frame and get a score for each type of sentiment for each entry:

get_nrc_sentiment(df$text) %>% head()
 
  anger anticipation disgust fear joy sadness surprise trust negative positive
1     7           14       5    7   8       6        6    12       14       27
2    11           12       2   13   9      10        4    11       22       24
3     6           12       3    8   7       7        5    13       16       21
4     5           17       4    7  10       6        7    13       16       37
5     4           13       3    7   7       9        5    14       16       25
6     7           11       5    7   8       8        6    15       16       26

Now we’ll merge these columns into our original data frame:

df = cbind(df, get_nrc_sentiment(df$text))
df$date = ymd(sapply(df$file, function(file) unlist(strsplit(file, "[.]"))[1]))
df %>% select(-text, -fullPath, -file) %>% head()
 
  anger anticipation disgust fear joy sadness surprise trust negative positive       date
1     7           14       5    7   8       6        6    12       14       27 2016-01-02
2    11           12       2   13   9      10        4    11       22       24 2016-01-03
3     6           12       3    8   7       7        5    13       16       21 2016-01-04
4     5           17       4    7  10       6        7    13       16       37 2016-01-05
5     4           13       3    7   7       9        5    14       16       25 2016-01-06
6     7           11       5    7   8       8        6    15       16       26 2016-01-07

Finally we can build some ‘sentiment over time’ charts like Julia has in her post:

posnegtime <- df %>% 
  group_by(date = cut(date, breaks="1 week")) %>%
  summarise(negative = mean(negative), positive = mean(positive)) %>% 
  melt
 
names(posnegtime) <- c("date", "sentiment", "meanvalue")
posnegtime$sentiment = factor(posnegtime$sentiment,levels(posnegtime$sentiment)[c(2,1)])
 
ggplot(data = posnegtime, aes(x = as.Date(date), y = meanvalue, group = sentiment)) +
  geom_line(size = 2.5, alpha = 0.7, aes(color = sentiment)) +
  geom_point(size = 0.5) +
  ylim(0, NA) + 
  scale_colour_manual(values = c("springgreen4", "firebrick3")) +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  scale_x_date(breaks = date_breaks("1 month"), labels = date_format("%b %Y")) +
  ylab("Average sentiment score") + 
  ggtitle("Sentiment Over Time")

2016 07 05 06 47 12

So overall it seems like my writing displays more positive sentiment than negative which is nice to know. The chart shows a rolling one week average and there isn’t a single week where there’s more negative sentiment than positive.

I thought it’d be fun to drill into the highest negative and positive days to see what was going on there:

> df %>% filter(negative == max(negative)) %>% select(date)
 
        date
1 2016-03-19
 
> df %>% filter(positive == max(positive)) %>% select(date)
 
        date
1 2016-01-05
2 2016-06-20

On the 19th March I was really frustrated because my boiler had broken down and I had to buy a new one – I’d completely forgotten how annoyed I was, so thanks sentiment analysis for reminding me!

I couldn’t find anything particularly positive on the 5th January or 20th June. The 5th January was the day after my birthday so perhaps I was happy about that but I couldn’t see any particular evidence that was the case.

Playing around with the get_nrc_sentiment function it does seem to identify positive sentiment when I wouldn’t say there is any. For example here’s some example sentences from my writing today:

> get_nrc_sentiment("There was one section that I didn't quite understand so will have another go at reading that.")
 
  anger anticipation disgust fear joy sadness surprise trust negative positive
1     0            0       0    0   0       0        0     0        0        1
> get_nrc_sentiment("Bit of a delay in starting my writing for the day...for some reason was feeling wheezy again.")
 
  anger anticipation disgust fear joy sadness surprise trust negative positive
1     2            1       2    2   1       2        1     1        2        2

I don’t think there’s any positive sentiment in either of those sentences but the function claims 3 bits of positive sentiment! It would be interesting to see if I fare any better with Stanford’s sentiment extraction tool which you can use with syuzhet but requires a bit of setup first.

I’ll give that a try next but in terms of getting an overview of my mood I thought I might get a better picture if I looked for the difference between positive and negative sentiment rather than absolute values.

The following code does the trick:

difftime <- df %>% 
  group_by(date = cut(date, breaks="1 week")) %>%
  summarise(diff = mean(positive) - mean(negative))
 
ggplot(data = difftime, aes(x = as.Date(date), y = diff)) +
  geom_line(size = 2.5, alpha = 0.7) +
  geom_point(size = 0.5) +
  ylim(0, NA) + 
  scale_colour_manual(values = c("springgreen4", "firebrick3")) +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  scale_x_date(breaks = date_breaks("1 month"), labels = date_format("%b %Y")) +
  ylab("Average sentiment difference score") + 
  ggtitle("Sentiment Over Time")
2016 07 09 07 05 34

This one identifies peak happiness in mid January/February. We can find the peak day for this measure as well:

> df %>% mutate(diff = positive - negative) %>% filter(diff == max(diff)) %>% select(date)
 
        date
1 2016-02-25

Or if we want to see the individual scores:

> df %>% mutate(diff = positive - negative) %>% filter(diff == max(diff)) %>% select(-text, -file, -fullPath)
 
  anger anticipation disgust fear joy sadness surprise trust negative positive       date diff
1     0           11       2    3   7       1        6     6        3       31 2016-02-25   28

After reading through the entry for this day I’m wondering if the individual pieces of sentiment might be more interesting than the positive/negative score.

On the 25th February I was:

  • quite excited about reading a distributed systems book I’d just bought (I know?!)
  • thinking about how to apply the tag clustering technique to meetup topics
  • preparing my submission to PyData London and thinking about what was gonna go in it
  • thinking about the soak testing we were about to start doing on our project

Each of those is a type of anticipation so it makes sense that this day scores highly. I looked through some other days which specifically rank highly for anticipation and couldn’t figure out what I was anticipating so even this is a bit hit and miss!

I have a few avenues to explore further but if you have any other ideas for what I can try next let me know in the comments.

Categories: Blogs

Connecting AWS CloudWatch Alarms to Pager Duty with Terraform

I have a small item to share from the trenches today: connecting AWS Cloudwatch alarms to Pager Duty using Terraform. No back story here… just a simple “here’s how you connect these two up.”

Enjoy!

Categories: Blogs

Quit the Percentage Game: Make Focus Your Focus

“Anne, I want you to spend 40% of your time on Project Narwhal, 40% on Project Jackelope,...

The post Quit the Percentage Game: Make Focus Your Focus appeared first on Blog | LeanKit.

Categories: Companies

Personal Design Thinking

I'm currently reading the book Design the Life You Love by Ayse Birsel. The book takes a look at Design Thinking and applying it to your own life. It is based on the success that the author has had as a product designer.
The book takes you through a four-step process; Deconstruction, Point of View, Reconstruction, and Expression. She uses examples from her own design career to help illustrate the steps of the process. 
In the Deconstruction phase, there are exercises to break your life down into some of its pieces. For example, in one exercise you start with the number of areas including family, work, friends, and hobbies and break those down into more meaning for you. It's really just a mind map that you're trying to create. 
The section on Point of View is meant to help you try to look at things differently. For example, she talks about how Steve Jobs looked at a rice cooker with a magnetic power cord and thought that would be a great idea for a laptop. The idea is taking something in one context and moving it to another context. 
Reconstruction is taking the pieces that have been identified and put them back together in a different way. 
Finally, Expression is about how you externalize this effort. There are some different ideas including vision letters and vision maps. 

This really is a workbook that you want to spend time on every day to go through the exercises. I would not recommend getting the book in an electronic format, it is much more practical to have the physical book that you can draw in as you go through the exercise. There are some exercises that involve drawing, mind mapping, etc and throughout the activities, you want to go back and review earlier work. 
I'm working through the last section, so I don't know how it will all turn out, but I have had some valuable insights. The book is laid out logically and it does get you to think. 
In closing, there is a quote from Ralph Caplan, author of By Design;
When it comes to life,
There is no such thing as design
There is only redesign
Categories: Blogs

It’s All Or Nothing … Right?

Derick Bailey - new ThoughtStream - Fri, 07/08/2016 - 15:47

We, as software developers and people in general, share a romanticized mythology of the “all or nothing”, diving in head-first, method of learning or doing something new.

But is the all-or-nothing mentality the right way to look at things?

Can we re-build an existing software project, from scratch, in a new technology?

Will this effort to completely rip out a large and complicated framework, from this system, be successful if we just push through and do it?

Our culture and society have convinced us this is the way to go. But does it really work?

Categories: Blogs

Call for Speakers for the Gatineau Ottawa Agile Tour 2016

Agile Ottawa - Fri, 07/08/2016 - 04:48
The 2016 Gatineau Ottawa Agile Tour event’s organizing committee is working hard to prepare the upcoming conference on November 21st. We’re inviting anyone with Agile experience to propose a session for the conference. The submission proposal deadline is July 15th, … Continue reading →
Categories: Communities

Scrum Retrospectives With Cathy Simpson

Agile Learning Labs - Thu, 07/07/2016 - 23:33

Our own Cathy Simpson talks about how to do an agile retrospective with your scrum team in this video. The 5-step retrospective agenda she talks about comes from the book Agile Retrospectives: Making Good Teams Great.

Categories: Companies

AutoMapper 5.0 Released

Jimmy Bogard - Thu, 07/07/2016 - 17:42

Release notes:

Today I pushed out AutoMapper 5.0.1, the culmination of about 9 months of work from myself and many others to build a better, faster AutoMapper. Technically I pushed out a 5.0.0 package last week, but it turns out that almost nobody really pulls down beta packages to submit bugs so this package fixes the bugs reported from the 5.0.0 drop :)

The last 4.x release introduced an instance-based configuration model for AutoMapper, and with 5.0, we’re able to take advantage of that model to focus on speed. So how much faster? In our benchmarks, 20-50x faster. Compared to hand-rolled mappings, we’re still around 8-10x slower, mostly because we’re taking care of null references, providing diagnostics, good exception messages and more.

To get there, we’ve converted the runtime mappings to a single compiled expression, making it as blazing fast as we can. There’s still some micro-optimizations possible, which we’ll look at for the next dot release, but the gains so far have been substantial. Since compiled expressions give you zero stack trace if there’s a problem, we made sure to preserve all of the great diagnostic/error information to figure out how things went awry.

We’ve also expanded many of the configuration options, and tightened the focus. Originally, AutoMapper would do things like keep track of every single mapped object during mapping, which made mapping insanely slow. Instead, we’re putting the controls back into the developer’s hands of exactly when to use what feature, and our expression builder builds the exact mapping plan based on how you’ve configured your mappings.

This did mean some breaking changes to the API, so to help ease the transition, I’ve included a 5.0 upgrade guide in the wiki.

Enjoy!

Categories: Blogs

Link: Self-Driving Cars and Code Test Coverage

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

Mike Caspar has another thought provoking article, this one about self-driving cars and code test coverage.

Personally, I don’t want to let a vehicle drive me where the developers have been pressured (or the developers have decided on their own) to write code without tests…. I am just thinking about my future and I don’t want this topic to come up when it’s far too late for myself, family or friends.

Dear reader: if you have anyone connected to the auto industry and self-driving vehicles, please share Mike’s blog post!

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

The post Link: Self-Driving Cars and Code Test Coverage appeared first on Agile Advice.

Categories: Blogs

All languages bundle for Valuable Agile Retrospectives

Ben Linders - Thu, 07/07/2016 - 16:00

Valuable agile retrospectives - all languages bundleThe successful book Getting Value out of Agile Retrospectives has been translated in many languages. The leanpub bundle Valuable Agile Retrospectives – All Languages contains all language editions, you can get 9 books for the reduced price of $24,99 (excluding VAT).

People from all over the world approach us for translating our book into their native language. We love to work together with local agile communities and agile practitioners to make our book available in their local language.


advertisement:

Retrospectives Exercises Toolbox - Design your own valuable Retrospectives

The normal price for the 9 books is $89,91, together these books are now available for the price of $24,99, a discount of more that 70%. When you buy the bundle you will get all translations that are released in the future for free. With this bundle you will always have the latest version of our book in every language.

Our mission is to help many teams all around the world to get more value out of agile retrospectives.

At this moment out book is available in these languages on leanpub:
[Nederlands]  [Español]  [Francais]  [Japanese]  [Italiano]  [Chinese]  [русский]  [Polish]

You can buy all local language editions of Getting Value out of Agile Retrospectives at Amazon.com (and all other Amazon shops), LeanpubiTunesSmashwordsLuluBarnes & NobleKoboScribd, Oyster and Blio. Paperback editions can be bought in my webshop and on bol.com and Managementbook.nl.

Categories: Blogs

Tips to get your talk proposal accepted

Growing Agile - Thu, 07/07/2016 - 09:46
We believe that you learn best by teaching. So if you are learning, consider giving a talk at a conference and see how this boosts your learning! The part most people struggle with is the initial proposal. So here are our tops tips for proposals. Pay attention to the format the conference organisers want the […]
Categories: Companies

The New Scrum Guide: The 5 Scrum Values

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

Ken Schwaber and Jeff Sutherland have just announced the new version of the Scrum Guide!  The only change is the addition of two paragraphs about the five Scrum values:

When the values of commitment, courage, focus, openness and respect are embodied and lived by the Scrum Team, the Scrum pillars of transparency, inspection, and adaptation come to life and builds trust for everyone. The Scrum Team members learn and explore those values as they work with the Scrum events, roles and artifacts.

Successful use of Scrum depends on people becoming more proficient in living these five values. People personally commit to achieving the goals of the Scrum Team. The Scrum Team members have courage to do the right thing and work on tough problems. Everyone focuses on the work of the Sprint and the goals of the Scrum Team. The Scrum Team and its stakeholders agree to be open about all the work and the challenges with performing the work. Scrum Team members respect each other to be capable, independent people.

The Scrum Guide is the sole and official definition of Scrum.

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

The post The New Scrum Guide: The 5 Scrum Values appeared first on Agile Advice.

Categories: Blogs

Knowledge Sharing


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