Skip to content

Software Development Blogs: Programming, Software Testing, Agile Project Management

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Feed aggregator

Software Development Linkopedia February 2017

From the Editor of Methods & Tools - 7 hours 35 min ago
Here is our monthly selection of knowledge on programming, software testing and project management. This month you will find some interesting information and opinions about being a better leader and software manager, component teams, UX & Agile, writing less code, handling incidents, preventing Scrum to fail, test automation and lean principles. Text: How to be […]

Neo4j: Analysing a CSV file using LOAD CSV and Cypher

Mark Needham - Sun, 02/19/2017 - 23:39

Last week we ran our first online meetup for several years and I wanted to wanted to analyse the stats that YouTube lets you download for an event.

The file I downloaded looked like this:

$ cat ~/Downloads/youtube_stats_pW9boJoUxO0.csv 
Video IDs:, pW9boJoUxO0, Start time:, Wed Feb 15 08:57:55 2017, End time:, Wed Feb 15 10:03:10 2017
Playbacks, Peak concurrent viewers, Total view time (hours), Average session length (minutes)
348, 112, 97.125, 16.7456896552, 

Country code, AR, AT, BE, BR, BY, CA, CH, CL, CR, CZ, DE, DK, EC, EE, ES, FI, FR, GB, HU, IE, IL, IN, IT, LB, LU, LV, MY, NL, NO, NZ, PK, PL, QA, RO, RS, RU, SE, TR, US, VN, ZA
Playbacks, 2, 2, 1, 14, 1, 10, 2, 1, 1, 1, 27, 1, 1, 1, 3, 1, 25, 54, 1, 4, 6, 8, 1, 1, 1, 1, 1, 23, 1, 1, 1, 1, 1, 1, 2, 6, 22, 1, 114, 1, 1
Peak concurrent viewers, 2, 1, 1, 4, 1, 5, 1, 1, 0, 0, 11, 1, 1, 1, 2, 1, 6, 25, 1, 3, 3, 2, 1, 1, 1, 1, 1, 9, 1, 1, 0, 1, 0, 1, 1, 3, 7, 0, 44, 1, 0
Total view time (hours), 1.075, 0.0166666666667, 0.175, 2.58333333333, 0.00833333333333, 3.01666666667, 0.858333333333, 0.0583333333333, 0.0, 0.0, 8.69166666667, 0.8, 0.0166666666667, 0.0583333333333, 0.966666666667, 0.0166666666667, 4.20833333333, 20.8333333333, 0.00833333333333, 1.39166666667, 1.75, 0.766666666667, 0.00833333333333, 0.15, 0.0333333333333, 1.05833333333, 0.0333333333333, 7.36666666667, 0.0583333333333, 0.916666666667, 0.0, 0.00833333333333, 0.0, 0.00833333333333, 0.4, 1.10833333333, 5.28333333333, 0.0, 32.7333333333, 0.658333333333, 0.0
Average session length (minutes), 32.25, 0.5, 10.5, 11.0714285714, 0.5, 18.1, 25.75, 3.5, 0.0, 0.0, 19.3148148148, 48.0, 1.0, 3.5, 19.3333333333, 1.0, 10.1, 23.1481481481, 0.5, 20.875, 17.5, 5.75, 0.5, 9.0, 2.0, 63.5, 2.0, 19.2173913043, 3.5, 55.0, 0.0, 0.5, 0.0, 0.5, 12.0, 11.0833333333, 14.4090909091, 0.0, 17.2280701754, 39.5, 0.0

I want to look at the country specific stats so the first 4 lines aren’t interesting to me:

$ tail -n+5 youtube_stats_pW9boJoUxO0.csv > youtube.csv

I then put the youtube.csv file into the import directory of Neo4j and wrote the following query to return a row representing each country and its score for each of the metrics:

load csv with headers from "file:///youtube.csv" AS row
WITH [key in keys(row) where key <> "Country code"] AS keys, row, row["Country code"] AS heading
UNWIND keys AS key
RETURN key AS country, heading AS key, row[key] AS value

╒═════════╀═══════════╀═══════╕
β”‚"country"β”‚"key"      β”‚"value"β”‚
β•žβ•β•β•β•β•β•β•β•β•β•ͺ═══════════β•ͺ═══════║
β”‚" SE"    β”‚"Playbacks"β”‚"22"   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€
β”‚" GB"    β”‚"Playbacks"β”‚"54"   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€
β”‚" FR"    β”‚"Playbacks"β”‚"25"   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€
β”‚" RS"    β”‚"Playbacks"β”‚"2"    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€
β”‚" LV"    β”‚"Playbacks"β”‚"1"    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

Now I want to create a node representing each country and create a property for each of the metrics. Since the property names are going to be dynamic I’ll make use of the APOC library which I drop into my plugins directory. I then tweaked the query to create the nodes:

load csv with headers from "https://dl.dropboxusercontent.com/u/14493611/youtube.csv" AS row
WITH [key in keys(row) where key <> "Country code"] AS keys, row, row["Country code"] AS heading
UNWIND keys AS key
WITH key AS country, heading AS key, row[key] AS value
MERGE (c:Country {name: replace(country, " ", "")})
WITH *
CALL apoc.create.setProperty(c, key, toInteger(value))
YIELD node
RETURN COUNT(*)

We can now see which country provided the most viewers:

MATCH (n:Country) 
RETURN n.name, n.Playbacks AS playbacks, n.`Total view time (hours)` AS viewTimeInHours, n.`Peak concurrent viewers` AS peakConcViewers, n.`Average session length (minutes)` AS aveSessionMins
ORDER BY playbacks DESC
LIMIT 10

╒════════╀═══════════╀═════════════════╀═════════════════╀════════════════╕
β”‚"n.name"β”‚"playbacks"β”‚"viewTimeInHours"β”‚"peakConcViewers"β”‚"aveSessionMins"β”‚
β•žβ•β•β•β•β•β•β•β•β•ͺ═══════════β•ͺ═════════════════β•ͺ═════════════════β•ͺ════════════════║
β”‚"US"    β”‚"114"      β”‚"32"             β”‚"44"             β”‚"17"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"GB"    β”‚"54"       β”‚"20"             β”‚"25"             β”‚"23"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"DE"    β”‚"27"       β”‚"8"              β”‚"11"             β”‚"19"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"FR"    β”‚"25"       β”‚"4"              β”‚"6"              β”‚"10"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"NL"    β”‚"23"       β”‚"7"              β”‚"9"              β”‚"19"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"SE"    β”‚"22"       β”‚"5"              β”‚"7"              β”‚"14"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"BR"    β”‚"14"       β”‚"2"              β”‚"4"              β”‚"11"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"CA"    β”‚"10"       β”‚"3"              β”‚"5"              β”‚"18"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"IN"    β”‚"8"        β”‚"0"              β”‚"2"              β”‚"5"             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"IL"    β”‚"6"        β”‚"1"              β”‚"3"              β”‚"17"            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The United States in first unsurprisingly followed by the UK, Germany, and France. We ran the meetup at 5pm UK time so it was a friendly enough time for this side of the globe but not so friendly for Asia or Australia so it’s not too surprising we don’t see anybody from there!

For my last trick I wanted to see the full names of the countries so I downloaded the 2 digit codes for each country along with their full name.

I then updated my graph:

load csv with headers from "file:///countries.csv" AS row
MATCH (c:Country {name: row.Code})
SET c.fullName = row.Name;

Now let’s re-run our query and show the country fullnames instead:

MATCH (n:Country) 
RETURN n.fullName, n.Playbacks AS playbacks, n.`Total view time (hours)` AS viewTimeInHours, n.`Peak concurrent viewers` AS peakConcViewers, n.`Average session length (minutes)` AS aveSessionMins
ORDER BY playbacks DESC
LIMIT 10

╒════════════════╀═══════════╀═════════════════╀═════════════════╀════════════════╕
β”‚"n.fullName"    β”‚"playbacks"β”‚"viewTimeInHours"β”‚"peakConcViewers"β”‚"aveSessionMins"β”‚
β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•ͺ═══════════β•ͺ═════════════════β•ͺ═════════════════β•ͺ════════════════║
β”‚"United States" β”‚"114"      β”‚"32"             β”‚"44"             β”‚"17"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"United Kingdom"β”‚"54"       β”‚"20"             β”‚"25"             β”‚"23"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"Germany"       β”‚"27"       β”‚"8"              β”‚"11"             β”‚"19"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"France"        β”‚"25"       β”‚"4"              β”‚"6"              β”‚"10"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"Netherlands"   β”‚"23"       β”‚"7"              β”‚"9"              β”‚"19"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"Sweden"        β”‚"22"       β”‚"5"              β”‚"7"              β”‚"14"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"Brazil"        β”‚"14"       β”‚"2"              β”‚"4"              β”‚"11"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"Canada"        β”‚"10"       β”‚"3"              β”‚"5"              β”‚"18"            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"India"         β”‚"8"        β”‚"0"              β”‚"2"              β”‚"5"             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚"Israel"        β”‚"6"        β”‚"1"              β”‚"3"              β”‚"17"            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

And that’s the end of my analysis with no relationships in sight!

The post Neo4j: Analysing a CSV file using LOAD CSV and Cypher appeared first on Mark Needham.

Categories: Programming

SPaMCAST 431- Andrew Neitlich, Leadership is Core a Requirement

SPaMCAST Logo

http://www.spamcast.net

Listen Now
Subscribe on iTunes
Check out the podcast on Google Play Music

The Software Process and Measurement Cast 431 features our interview with Β Andrew Neitlich on leadership. Β We discussed whether leadership can be learned and if tech leadership is different than other kinds of leadership. Β Leadership is a core requirement for making all teams, Agile or not, effective!

Andrew’s bio:

Andrew Neitlich is the founder and director of the Center for Executive Coaching (http://centerforexecutivecoaching.com), a leader in training and certifying executive and leadership coaches. He also leads his own executive coaching practice, with an emphasis on working technical leaders that sometimes get frustrated with engaging their teams and having more impact when they communicate. Andrew is the author of Coach!, Elegant Leadership, and Guerrilla Marketing for a Bulletproof Career. He received his MBA from Harvard Business School, and lives in Sarasota, Florida.

Re-Read Saturday News

This week we tackle Chapter 4 in Carol Dweck’s Mindset: The New Psychology of Success (buy your copy and read along). Β In Chapter 4, Dweck hits a home run by reflecting on how mindsets translate into action in the sports arena (thus the sports allusions). Β Sports stories are one the most used metaphors in a business environment. Β I bet that you can’t you to go to two meetings in any corporate environment without hearing a project likened to the exploits of sports teams or athletes. This an easy metaphor theme because most everyone has been exposed to some form of sports or at least a story about sports before they take a job. In Chapter 4, Dr. Dweck, scores (I can’t help myself) by using the exploits of athletes and sports teams to further illustrate the differences and impact mindsets deliver.

Every week we discuss a chapter then consider the implications of what we have β€œread” from the point of view of someone pursuing an organizational transformation and also how to use the material when coaching teams. Β 

Remember to buy a copy of Carol Dweck’s Mindset and read along!

Visit the Software Process and Measurement Cast blog to participate in this and previous re-reads.

Feedback on SPaMCAST 428 with Mark Bojeun. Β Dan Β Stafford wrote to Mark and said, β€œ Great talk Mark, insightful as ever. Β Open and honest communication is such an important tenet.” Β Β (Listen Now)

Do you have thoughts and comments you would like to share? Β Email us at spamcastinfo@gmail.com

Next SPaMCAST

In the Software Process and Measurement Cast, we will feature an essay on the impact of leadership types on adopting and sustaining Agile. Β Leadership style has a direct impact on an organization’s ability to adopt and sustain Agile. Β Some leadership styles are more supportive and others evoke more of a Β response that is epitomized by locking feral cats and dogs in a room (nobody wins).

We will also have columns from Jeremy Berriault,Β who brings his QA Corner to the cast. Β Visit Jeremy’s new blog at https://jberria.wordpress.com/ Β Next, we will have a column from The Software Sensei, Kim Pries. Reach out to Kim on LinkedIn. Last, but not least, Jon M Quigley brings his column, the Alpha and Omega of Product Development, to the cast. Β One of the places you can find Jon is at Value Transformation LLC.

Shameless Ad for my book!

Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: β€œThis book will prove that software projects should not be a tedious process, for you or your team.” Support SPaMCAST by buying the book here. Available in English and Chinese.

 


Categories: Process Management

SPaMCAST 431- Andrew Neitlich, Leadership is Core a Requirement

Software Process and Measurement Cast - Sun, 02/19/2017 - 23:00

The Software Process and Measurement Cast 431 features our interview with Β Andrew Neitlich on leadership. Β We discussed whether leadership can be learned and if tech leadership is different than other kinds of leadership. Β Leadership is a core requirement for making all teams, Agile or not, effective!

Andrew’s bio:

Andrew Neitlich is the founder and director of the Center for Executive Coaching (http://centerforexecutivecoaching.com), a leader in training and certifying executive and leadership coaches. He also leads his own executive coaching practice, with an emphasis on working technical leaders that sometimes get frustrated with engaging their teams and having more impact when they communicate. Andrew is the author of Coach!, Elegant Leadership, and Guerrilla Marketing for a Bulletproof Career. He received his MBA from Harvard Business School, and lives in Sarasota, Florida.

Re-Read Saturday News

This week we tackle Chapter 4 in Carol Dweck’s Mindset: The New Psychology of Success (buy your copy and read along). Β In Chapter 4, Dweck hits a home run by reflecting on how mindsets translate into action in the sports arena (thus the sports allusions). Β Sports stories are one the most used metaphors in a business environment. Β I bet that you can’t you to go to two meetings in any corporate environment without hearing a project likened to the exploits of sports teams or athletes. This an easy metaphor theme because most everyone has been exposed to some form of sports or at least a story about sports before they take a job. In Chapter 4, Dr. Dweck, scores (I can't help myself) by using the exploits of athletes and sports teams to further illustrate the differences and impact mindsets deliver.

Every week we discuss a chapter then consider the implications of what we have β€œread” from the point of view of someone pursuing an organizational transformation and also how to use the material when coaching teams. Β 

Remember to buy a copy of Carol Dweck’s Mindset and read along!

Visit the Software Process and Measurement Cast blog to participate in this and previous re-reads.

Feedback on SPaMCAST 428 with Mark Bojeun. Β Dan Β Stafford wrote to Mark and said, β€œ Great talk Mark, insightful as ever. Β Open and honest communication is such an important tenet.” Β Β (Listen Now)

Do you have thoughts and comments you would like to share? Β Email us at spamcastinfo@gmail.com

Next SPaMCAST

In the Software Process and Measurement Cast, we will feature an essay on the impact of leadership types on adopting and sustaining Agile. Β Leadership style has a direct impact on an organization’s ability to adopt and sustain Agile. Β Some leadership styles are more supportive and others evoke more of a Β response that is epitomized by locking feral cats and dogs in a room (nobody wins).

We will also have columns from Jeremy Berriault,Β who brings his QA Corner to the cast. Β Visit Jeremy's new blog at https://jberria.wordpress.com/ Β Next, we will have a column from The Software Sensei, Kim Pries. Reach out to Kim on LinkedIn. Last, but not least, Jon M Quigley brings his column, the Alpha and Omega of Product Development, to the cast. Β One of the places you can find Jon is at Value Transformation LLC.

Shameless Ad for my book!

Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: β€œThis book will prove that software projects should not be a tedious process, for you or your team.” Support SPaMCAST by buying the book here. Available in English and Chinese.

Β 

Categories: Process Management

Stuff The Internet Says On Scalability For February 17th, 2017

Hey, it's HighScalability time:

 

Gorgeous satellite images of a thawing Greenland (NASA).
If you like this sort of Stuff then please support me on Patreon.
  • 1 cubic millimeter: computer with deep-Learning; 1,600: data on nearby stars; 40M: users for largest Parse app; 58x: Tensorflow 1.0 speedup on 64 gpus; 46%: ecommerce controlled by Amazon; 60%: IT growth in public cloud; 200 TB: one tv episode; 

  • Quotable Quotes:
    • @krishnan: Serverless will not be around in 5 years. It will be AI coding AI coding Ai....... Serverless or not doesn't matter #RunForrestRun
    • user5994461: Amazon: Create usual services and sell them. Google: Make unique products that push the boundaries of what was previously thought possible. Amazon: Don't care about inefficiencies and usage. Inefficiencies can be handled by charging more to the clients, usage doesn't matter because the users are mostly the clients and they don't feel their pain. Google: Had to make all their core technologies efficient, performant, scalable and maintainable or they couldn't sustain their business.
    • Hans Rosling: To me, the impressive thing is that people succeed at all.
    • @littleidea: Google Spanner didn't beat CAP, just mitigated the hell out of P
    • @jordw: Cloud Spanner is a very well-engineered CP database that is also very good at being available.
    • Cade Metz: The AI Threat Isn’t Skynet. It’s the End of the Middle Class
    • hosh: Four years ago, I determined that while development work might seem to be near the top of the food chain, there will at some point where my work will be replaced by AIs.
    • mi100hael:  I found Go's "simplicity" to be limiting and frustrating when it came to building production applications. Things like the weird split between functions returning errors but occasionally panicking, lack of inheritance, and poor dependency management through github links make Go a poor choice for applications within a business setting. 
    • @NathanTippy: New #Java web server clearing 1 million HTTP requests per second on 4 core box.  Can run in < 100MB of memory.
    • @kellabyte: It doesn’t matter what the founder or developer of a database tells you. It’s about the true peopeties it guarantees.
    • @swardley: Private cloud starting to drop, public cloud a three horse race - AWS 1st, MSFT 2nd, GooG 3rd ... sensible stuff 
    • @ollekullberg: Kullberg's law: when we increase the size of a microservice we increase the benefit of static typing for this microservice.
    • @swardley: ... it's not lack of engineering capability or finance or market or marketing or branding, the real story of cloud is executive failure.
    • katied: Trophic cascade is a process that starts at the top of a food chain and works its way to the bottom of it. So, even though as predators wolves survive by taking life, they also have the ability to create it.
    • @swardley: Cloud wars in IaaS - oh, please. War was well over in 2012, yes there will be price cuts as constraints are reduced but there is no battle.
    • @HenryR: 1. CAP has always said only one thing: that there is always a particular network failure that forces you to give up either C or A. 2. It has nothing at all to do with how likely that failure mode is. The failure is system-specific. 
    • throwawaydbfif: The movement from ownership to renting on the web is absolutely terrifying to me. Within the span of a few years we've gone from owning our technology to renting it out from a big players for monthly fees that we cannot completely predict or control.
    • computerex: People use cloud computing because it already is massively impractical to run your own servers. Hardware is hard to run and scale on your own and experiences economies of scale. This principle is seen everywhere and can hardly be viewed as something controversial. 
    • stuckagain: You did not ever own your own globally consistent, massively scalable, replicated database. The fact that you can now rent one by the hour is strictly an improvement for you, if you need that kind of thing
    • tedd4u: Aurora is very cool but won't help you much after you vertically scale your master and still need more write capacity. With Cloud Spanner you get horizontal write scalability out of the box. Critical difference.
    • @koivimik: REST != CRUD via HTTP #microXchg @olivergierke
    • Linus: It's almost boring how well our process works. All the really stressful times for me have been about process. They haven't been about code. When code doesn't work, that can actually be exciting ... Process problems are a pain in the ass. You never, ever want to have process problems ... That's when people start getting really angry at each other.
    • @littleidea: Almost every task run under Borg contains a built-in HTTP server that publishes information about the health of the task...
    • W. Daniel Hillis: For Richard [Feynman], figuring out these problems was a kind of a game. He always started by asking very basic questions like, “What is the simplest example?” or “How can you tell if the answer is right?” He asked questions until he reduced the problem to some essential puzzle that he thought he would be able to solve.
    • @ewolff: "Every hackathon uses Lambda. They build really complicated, production-ready systems in 12h" @adrianco at @microXchg
    • Daniel Bryant: The term "microservices" itself will probably disappear in the future, but the new architectural style of functional decomposition is here to stay.
    • @rbranson: The NoSQL movement might be a disappointment, but emerging from the rubble is the log-based (i.e. Kafka) model that actually works.
    • Chip Overclock: Surprisingly, GPS satellites actually know nothing about position. What they know about is time.
    • @codinghorror: I look at my old blog posts and think... there was a time when I believed 24GB was a lot of RAM
    • vidarh: Depending on your workloads, DO servers can come out cheaper or more expensive than AWS, but bandwidth at DO is so much cheaper than AWS that for bandwidth intensive stuff I can't serve entirely out of Europe (where Hetzner is vastly cheaper than DO again), DO is often a much cheaper alternative. Sometimes we use it as a cost-cutting do-it-yourself CDN in front of AWS for clients that insist on S3 for storage (and again where we can't just cache everything in Europe for latency reasons). For bandwidth heavy applications, you can pay for significant numbers of Droplets from the AWS bandwidth savings alone.
    • lobster_johnson: we use Google Container Engine (hosted Kubernetes), with Salt for the non-GKE VMs. This is needed because K8s is not mature enough to host all the things. In particular, stateful sets are still in beta. 
    • anonymous: The overall impact [algorithms] will be utopia or the end of the human race; there is no middle ground foreseeable. I suspect utopia given that we have survived at least one existential crisis (nuclear) in the past and that our track record toward peace, although slow, is solid.
    • keenio: In conclusion, the TCO is probably significantly lower for Kinesis. So is the risk. And in most projects, risk-adjusted TCO should be the final arbiter.
    • Adem Efe Gencer: the weekly [Bitcoin] mining power of a single miner has never exceeded the 30% of the overall mining power in 2016. Morever, in the second half of the year, the highest mining power has consistently been under the 20% range.
    • David Rosenthal: The security downside of Postel's Law is even more fundamental. The law requires the receiver to accept, and do something sensible with, malformed input. Doing something sensible will almost certainly provide an attacker with the opportunity to make the receiver do something bad.
    • douche: That's pretty much the way it has always been. You can go back at least to the Civil War and find politics has had more to do with procurement than performance of the weapon systems in question.
    • Jonathan Suen: While the brain and the Internet clearly operate using very different mechanisms, both use simple local rules that give rise to global stability. I was initially surprised that biological neural networks utilized the same algorithms as their engineered counterparts, but, as we learned, the requirements for efficiency, robustness, and simplicity are common to both living organisms and the networks we have built.
    • Bruce Johnson: Code reviews set the tone for the entire company that everything we do should be open to scrutiny from others, and that such scrutiny should be a welcome part of your workflow rather than viewed as threatening.
    • codingmyway: I think some miners are against any increase because it will lower fees. Without a blocksize limit fees tend to zero, which is fine while there is the block reward but they still want to milk the congestion fees. To say they are pro segwit or pro unlimited is bluffing. They are pro status quo and congestion and high fees.
    • edejong: Many engineers I have worked with like to throw around terms like: "CQRS", "Event sourcing", "no schema's", "document-based storage", "denormalize everything" and more. However, when pushed, I often see that they lack a basic understanding of DBMSes, and fill up this gap by basically running away from it. For 95% of the jobs, a simple, non-replicated (but backed-up) DBMS will do just fine.
    • adamu__: If China were to shut down bitcoin mining, my understanding is that the worst case scenario is much more dire. The network only adjusts the 'difficulty' relative to current network hash power every 2,016 blocks. Depending on the severity of the overall hash power reduction, new block discovery might slow down significantly. This would also delay a recalculation of the new difficulty accommodating the reduction in hash power. The network could be severely throttled for weeks.
    • boulos: Slightly off-topic, but EC2 doesn't really scale independently if you compare it to GCE. We let you combine 24 vcpus with 39 GB of RAM, 3 partitions of Local SSD and a few GPUs, all independently (though the ratio of RAM to vcpu is currently bounded between .9 and 6.5).
    • Veratyr: Personally, I settled with colocation. I pay $60/mo + $2k one-off for the initial hardware + say $150/5y/4TB HDD, which, for 80TB of storage over 5y comes out to a total of ~$88/mo, or $0.001/GBmo. 

  • Now this is object oriented programming. New software for increasingly flexible factory processes: new software that allows each individual component to tell the machine what has to be done. By breaking away from central production planning, factories can achieve unprecedented agility and flexibility... Everything would go much faster if production and the requisite machines were not rigidly set by a control program, but if every component itself knew the best way for it to be moved quickly through the process chain. 

  • Relax. Videos from TensorFlow Dev Summit 2017 are now available. Also, Learn TensorFlow and deep learning, without a Ph.D. Also also, Deep Learning book.

  • Google is Introducing Cloud Spanner: a global database service for mission-critical applications. It will be interesting to see if Spanner, as a unique hard to duplicate feature, becomes a Google Cloud differentiator. Will it make the delta between the clouds significant enough that developers choose Google? Quizlet, already running on GCP, really likes Spanner, but it's not a drop in replacement for MySQL. Like with NoSQL there's special care and feeding to make it work, but that's the sacrifice high QPS requires. Performance: "Cloud Spanner queries have higher latency at low throughputs compared with a virtual machine running MySQL. Spanner's scalability, however, means that a high-capacity cluster can easily handle workloads that stretch our MySQL infrastructure." And p90s are consistently lower than 50 ms. Cost: "For very small or low-throughput databases Cloud Spanner is overkill [min ~$8,000/yr]...Cloud Spanner comparable or slightly cheaper based on the performance in our testing."  With Spanner hitting the market maybe that will help CockroachDB? Some older articles: Spanner - It's About Programmers Building Apps Using SQL Semantics At NoSQL ScaleGoogle Spanner's Most Surprising Revelation: NoSQL Is Out And NewSQL Is InF1 And Spanner Holistically ComparedHow Google Invented An Amazing Datacenter Network Only They Could Create

Don't miss all that the Internet has to say on Scalability, click below and become eventually consistent with all scalability knowledge (which means this post has many more items to read so please keep on reading)...

Categories: Architecture

Mindset: The New Psychology of Success: Re-Read Week 4, Chapter 4 – Sports: The Mindset of a Champion

Mindset Book Cover

Today we rush into Chapter 4 in Carol Dweck’s Mindset: The New Psychology of Success (buy your copy and read along). Β In Chapter 4, Dweck hits a home run by reflecting on how mindsets translate into action in the sports arena (thus the sports allusions). Β Sports stories are one the most used metaphors in a business environment. Β I bet that you can’t you to go to two meetings in any corporate environment without hearing a project likened to the exploits of sports teams or athletes. This an easy metaphor theme because most everyone has been exposed to some form of sports or at least a story about sports before they take a job. In Chapter 4, Dr. Dweck, scores (I can’t help myself) by using the exploits of athletes and sports teams to further illustrate the differences and impact mindsets deliver.

Chapter 4 begins with the story of Billy Beane. Mr. Beane was a baseball player that was drafted and came through the minor leagues being viewed as a β€œnatural” (someone that has all the talent in the world and will be a star). Β Unfortunately, at the time, he had a fixed mindset, and when completion got tough he was not able to deal with the fact talent alone would not carry him forward. Β The realization that he had to shift his mindset later led to the concepts discussed in the book and movie, Moneyball. Β The statistical analysis Beane helped pioneer focused on identifying players with attributes, including many of the attributes we would recognize as a growth mindset, rather than raw talent.Β 

Chapter 4 goes on to highlight a wide range of other legendary athletes that illustrate that hard work and discipline are very powerful tools. All of the highlighted athletes became legends not just because they had awesome natural talent, but also because their mindset allowed them to see to benefit from learning from setbacks and hard work. It might be possible to make the argument that someone with a growth mindset can’t help learning from their experiences. Β Something it took Billy Beane a long time to learn. Β The top line takeaway of this chapter is that success is rarely just a reflection of ability.

An important reflection in the chapter is that humans seem to have a natural bias toward the belief that great athletes (and by extension other forms of genius) shouldn’t require effort to become the top of their field. This flies (another sports’ metaphor) in the face of the evidence that most β€œnaturals” have only gotten to the top through discipline and learning from setbacks. Β Dweck provides several examples ranging from Babe Ruth, Maury Wills, Michael Jordan, Tiger Woods, and Wilma Rudolph. A quote from Malcolm Gladwell is used to drive the point home, β€œPeople prize natural endowment over earned ability.”

Adversity is a feedback mechanism. Β One of the descriptions of the behavior of Agile teams is that they pursue feedback (sometimes called running toward feedback) so that the team can learn how to change its behavior to deliver more value and customer satisfaction. Without a mindset that seeks feedback from even minor adversities, when you hit a major roadblock you may not be able to deal with it.

A person’s character (related to effort and discipline) is at least a partial reflection of the mindset the person has adopted. Β The examples provided by Dr. Dweck in this chapter illustrate how the two mindsets help shape character. Β Over and over, athletes with growth mindsets are better atΒ dealing with adversity because they see setbacks as a tool to learn. In scenarios where top athletes don’t have a growth mindset, Dweck provides examples of how their inability to deal with negative feedback leads to failure. Β Two athletes used to highlight the problems of fixed mindset were Pedro Martinez (baseball pitcher who imploded in playoffs against the New York Yankees) and John McEnroe (just one tantrum from YouTube). Β While both athletes had their moment in the sun, I think we could ask just how good could they be if they had a growth mindset. Dweck contrasts the character of these two athletes with the character of Pete Sampras. Β When asked how he could rally back to win after being at match point and down two sets (men’s championship tennis is typically the best of 5 sets) indicated he used adversity he faced overcome to remind himself about what possible and what he was capable of achieving. Β With champions, when the going gets tough the tough get going. The examples in the book cherry pick, the most easily recognizableΒ stars however even if mindsets don’t explain all variance in performance, mindset explain a large proportion. Β 

In this chapter the point that how we deal with feedback and whether we seek out feedback loops is a predictor of eventual success. Β People with a fixed mindset eschew feedback and view setbacks as being victimized by outside sources. Β When you are a victim it easy to decide that you do not need to take responsibility for your ability and control of your motivation.

Chapter 4 – From a Coach’s Perspective

Transforming a group or organization requires understanding the overall cultural mindset of the organization being changed. Β Organizations often have a bias towards one mindset or the other. Β For example, very early in my career, I worked for a firm that manufactured and sold junior ready to wear. At the time the organization had become the largest firm in the world in its category. They had achieved over a decade of phenomenal year-over-year sales increases. I recently found a transcript from one of their major sales meetings as things began to stagnate (they later collapsed). Β It was amazing to see the evidence of how the firm rejected feedback from clients and successes described with β€œI” words rather than words that were inclusive of the whole team needed to deliver value to the clients and customers. Β Words are an indicator of mindset both at an individual level and at an organizational level. Β As you consider a path for a transformation, listen to how is performance is described in the organization. If these conversations don’t happen in the natural course of an assessment, illicit stories about performance and projects. Β The words that are used will give you a strong indication of mindset. Β For example, does the word β€œI” get used or the word β€œwe” when describing a project? Β Do people describe their identity though outcomes or effort (If I win I’ll be somebodyΒ if I lose I’ll be nobody)?

Identifying mindsets can be an important change management tool. Β Change leaders can use mindsets toΒ filter people whoΒ can be trailblazers and/or early adopters for the concepts being put forward in the transformation.

At the team level, listening is also applicable. Β Use techniques like storytelling to elicit the markers of mindset. Β I use this technique occasionally in retrospectives or when asked to help a team deal with behaviors that are impacting a project. Β In the short term having a grasp on someone’s mindset is useful for knowing how to relate to the person and how they will react in certain situations. For a leader knowing a person’s mindset can be used to help a team member to accept the work that fits their temperament. Β In the longer run, knowing which mindset a person emulates can help a coach to provide mentoring and training that can shift that mindset (if needed).

Previous Entries of the re-read of Mindset:

 


Categories: Process Management

Debug TensorFlow Models with tfdbg

Google Code Blog - Fri, 02/17/2017 - 23:32
Posted by Shanqing Cai, Software Engineer, Tools and Infrastructure.

We are excited to share TensorFlow Debugger (tfdbg), a tool that makes debugging of machine learning models (ML) in TensorFlow easier.
TensorFlow, Google's open-source ML library, is based on dataflow graphs. A typical TensorFlow ML program consists of two separate stages:
  1. Setting up the ML model as a dataflow graph by using the library's Python API,
  2. Training or performing inference on the graph by using the Session.run()method.
If errors and bugs occur during the second stage (i.e., the TensorFlow runtime), they are difficult to debug.

To understand why that is the case, note that to standard Python debuggers, the Session.run() call is effectively a single statement and does not exposes the running graph's internal structure (nodes and their connections) and state (output arrays or tensors of the nodes). Lower-level debuggers such as gdb cannot organize stack frames and variable values in a way relevant to TensorFlow graph operations. A specialized runtime debugger has been among the most frequently raised feature requests from TensorFlow users.

tfdbg addresses this runtime debugging need. Let's see tfdbg in action with a short snippet of code that sets up and runs a simple TensorFlow graph to fit a simple linear equation through gradient descent.

import numpy as np
import tensorflow as tf
import tensorflow.python.debug as tf_debug
xs = np.linspace(-0.5, 0.49, 100)
x = tf.placeholder(tf.float32, shape=[None], name="x")
y = tf.placeholder(tf.float32, shape=[None], name="y")
k = tf.Variable([0.0], name="k")
y_hat = tf.multiply(k, x, name="y_hat")
sse = tf.reduce_sum((y - y_hat) * (y - y_hat), name="sse")
train_op = tf.train.GradientDescentOptimizer(learning_rate=0.02).minimize(sse)

sess = tf.Session()
sess.run(tf.global_variables_initializer())

sess = tf_debug.LocalCLIDebugWrapperSession(sess)
for _ in range(10):
sess.run(train_op, feed_dict={x: xs, y: 42 * xs})

As the highlighted line in this example shows, the session object is wrapped as a class for debugging (LocalCLIDebugWrapperSession), so the calling the run() method will launch the command-line interface (CLI) of tfdbg. Using mouse clicks or commands, you can proceed through the successive run calls, inspect the graph's nodes and their attributes, visualize the complete history of the execution of all relevant nodes in the graph through the list of intermediate tensors. By using the invoke_stepper command, you can let the Session.run() call execute in the "stepper mode", in which you can step to nodes of your choice, observe and modify their outputs, followed by further stepping actions, in a way analogous to debugging procedural languages (e.g., in gdb or pdb).

A class of frequently encountered issue in developing TensorFlow ML models is the appearance of bad numerical values (infinities and NaNs) due to overflow, division by zero, log of zero, etc. In large TensorFlow graphs, finding the source of such nodes can be tedious and time-consuming. With the help of tfdbg CLI and its conditional breakpoint support, you can quickly identify the culprit node. The video below demonstrates how to debug infinity/NaN issues in a neural network with tfdbg:

A screencast of the TensorFlow Debugger in action, from this tutorial.

Compared with alternative debugging options such as Print Ops, tfdbg requires fewer lines of code change, provides more comprehensive coverage of the graphs, and offers a more interactive debugging experience. It will speed up your model development and debugging workflows. It offers additional features such as offline debugging of dumped tensors from server environments and integration with tf.contrib.learn. To get started, please visit this documentation. This research paperlays out the design of tfdbg in greater detail.

The minimum required TensorFlow version for tfdbgis 0.12.1. To report bugs, please open issues on TensorFlow's GitHub Issues Page. For general usage help, please post questions on StackOverflow using the tag tensorflow.
Acknowledgements
This project would not be possible without the help and feedback from members of the Google TensorFlow Core/API Team and the Applied Machine Intelligence Team.





Categories: Programming

Quote of the Day

Herding Cats - Glen Alleman - Fri, 02/17/2017 - 22:58

The real world is fraught with risk.
Forecasting with empirical data - the #NoEstimates approach to estimating - ignores this fact. In the NE version ofΒ forecasting there is no place for uncertainty, which is why No Estimates advocates assert Forecasting is not estimating. In this version of Estimating without calling it Estimating,Β the past behaviour represents the future behaviour, with not adjustments for reducible and irreducible uncertainties that create risk to the project's success.
When we try to plan, knowing we cannot predict the future precisely, the mismatch between the planning and the real world, creates confusion. This confusion creates biases and distortions, resulting in padded estimates and undue optimism as well as misuse and even dysfunction ofΒ the management in the presence of uncertainty.
There needs to be an approach to planning and forecasting that is connected with reality, an approach that acknowledges uncertainty from the beginning and continues toΒ manage in the presence of that uncertanty throughout the life of the project.
This approach mandates estimating all our work that not de minimis. This work is driven by uncertainty - reducible and irreducible.
This uncertainty creates risk and Risk Management is How Adults Manage Projects - Tim Lister.

Practical Risk Assessment for Project Management, Stephen Grey, Wiley Series in Software Engineering Practice, 1995. Nothing has changed since these words. We still live, operate, and manageΒ in the presence of uncertainty. Here's how we manage in our software intensive system of systems domain. Your domain may be different, but the principles of managing in the presence of uncertainty are the same.

Here's the now familiarΒ briefingΒ for how we management in the presence of uncertainty in our Software Intensive System of Systems domain.

Managing in the presence of uncertainty from Glen Alleman

Β 

Related articles The Flaw of Empirical Data Used to Make Decisions About the Future The Flaw of Averages and Not Estimating Herding Cats: Decision Making On Software Development Projects Monte Carlo Simulation of Project Performance
Categories: Project Management

Decision Making On Software Development Projects

Herding Cats - Glen Alleman - Fri, 02/17/2017 - 21:38

Decision Making on Software Development Projects
Is Both Simple and Complex at the Same Time

All projects operate in the presence of uncertainty.

Real-world decision making is performed under uncertainty.

Decision makers must make decisions which best incorporate these uncertainties.

These uncertainties come in two forms – reducible (I can do something about it) and irreducible (I can't do anything about it).

Irreducible (Aleatory) uncertainty is the natural variability of the processes and technology on the project. These are stochastic, they may be nonstationary, and are due to chance from the underlying statistical distributions.

Aleatory uncertainties are modeled as random variables described by statistical distributions Β (Triangle is a common one when the actual distribution is not known)Β 
In aleatory uncertainty, decision makers make assumptions about the distribution's descriptive statistics - the Mean and Variance are needed along with the Most Likely (Mode) at a minimum. The shape of the curve is needed as well.

Irreducible uncertainty can only be dealt with margin. Cost margin, schedule margin, technical margin.

Reducible (Epistemic) uncertainty is subjective, with the subjectivity coming fromΒ lack of knowledge.

ThisΒ lack of knowledge comes from the probabilistic nondeterministic behavior of the system or the environment.

Reducible uncertainty is addressed with redundancy, experiments, prototypes, models, measures, empiricalΒ data to reveal knowledge about the underlying probabilities of the process.

All Uncertainty Creates Risk.

Reducible risk requires estimating the probability distribution of the occurrence.

Irreducible risk requires estimating the statistical distributionΒ of the naturally occurring processes.

Risk Management is How Adults Manage projects – Tim Lister.

Risk management requires estimating.

Adult management of projects requires estimating.

Not Estimating means not managing as an Adult.

  1. Β β€œTreatment of aleatory and epistemic uncertainty in performance assessments for complex systems,”J. C. Helton and D. E. Burmaster, Reliability Engineering and System Safety, vol. 54, no. 2-3, pp. 91–94, 1996.
  2. β€œUncertainty quantification using evidence theory,” W. L. Oberkampf, in Proceedings from the Advanced Simulation & Computing Workshop, Albuquerque, NM, USA, 2005.
  3. β€œTreatment of uncertainty in performance assessments for complex systems,”J. C. Helton, Risk Analysis, vol. 14, no. 4, pp. 483–511, 1994.
  4. S. N. Rai, D. Krewski, and S. Bartlett, β€œA general framework for the analysis of uncertainty and variability in risk assessment,” Human and Ecological Risk Assessment, vol. 2, no. 4, pp. 972–989, 1996.
  5. β€œUnderstanding uncertainty,”W. D. Rowe, Risk Analysis, vol. 14, no. 5, pp. 743–750, 1994.
  6. Possibility Theory: An Approach to Computerized Processing of Uncertainty, D. Dubois and H. Prade, Plenum Press, New York, NY, USA, 1988.
  7. β€œJudgment under uncertainty: heuristics and biases,”A. Tversky and D. Kahneman, Science, vol. 185, no. 4157, pp. 1124–1131, 1974.
  8. Methods for representing uncertainty.Β A literature review, Enrico Zio and Nicola Pedroni,Β Foundation for an Industrial Safety Culture, Toulouse, France
  9. Estimating Software-Intensive Systems, Richard Stutzke, Addison Wesley
Related articles Making Decisions in the Presence of Uncertainty Managing in the Presence of Uncertainty Herding Cats: Cone of Uncertainty - Part Cinq (Updated) Herding Cats: Managing Uncertainty, Risk, Threat, and Opportunity Some More Background on Probability, Needed for Estimating Estimating is Risk Management IT Risk Management Risk Management is How Adults Manage Projects
Categories: Project Management

Quote of the Day

Herding Cats - Glen Alleman - Fri, 02/17/2017 - 21:32

People behave the way they are managed
- A Wise old Navy Captain as told by LCMDR NicholasΒ Pisano

Categories: Project Management

Tips for building high-quality and accessible financial services apps

Android Developers Blog - Fri, 02/17/2017 - 17:41
Posted by Joel Newman & Ashraf Hassan, Strategic Partnerships, Finance, Google Play

Millions of people around the globe have limited or no access to basic financial services to enable them to manage their day-to-day finances. Mobile technology can help bridge this gap by connecting historically underserved consumers with high-quality tools to help them improve their financial health.

Often faced with an uncertain regulatory environment and/or a highly fragmented financial marketplace, many developers struggle with building great app experiences while also navigating this complex financial space. That's why we recently worked with CFSI, the authority on consumer financial health, to create the FinTech App Development Compass, a six-step guide for building high quality mobile apps to make financial services more accessible on Google Play.

Below, we're sharing six tips to consider when building a financial services app. For more, read the complete FinTech App Development Compass.

Tip 1: Know Your User
Understand who your consumer is and what difference your product can make in their day-to-day life. What are their financial needs? How can your product improve their financial health? How does your product fit within the context of their financial lives?

Tip 2: Focus on Access
Responsibly expand access to your product. Consider how your product can fit seamlessly into your users' routines. Consider your users' circumstances, including that English may not be their first language and that they may be using older devices with limited data plans.

Tip 3: Establish and Maintain Trust
Trust is at a premium in the financial space. Make sure you are developing mutually beneficial financial solutions that deliver clear and consistent value. Similarly, make sure you are using the latest security tools available from the Android platform to secure your users' data.

Tip 4: Test and Iterate
Before releasing any product to the public, make sure it has been thoroughly tested. From a financial perspective, be sure to measure the actual impact of your product on users over time. From a technological perspective, be sure to leverage Google Play alpha and beta channels for distributing apps before their public release.
Tip 5: Drive Positive User Behavior
Drive positive consumer behavior through smart design and communication. Leverage the Android platform tools like Material Design and notifications to steer users toward positive action or take financial action at appropriate times.

Tip 6: Recognize the Value of Mutual Success
Remember that the best business models are win-win: If your users' financial health improves, your company profits. Consider embedding financial impact and technological tracking capabilities within your platform from the beginning.

For additional information, refer to the CFSI Compass Principles and get the Playbook for Developers app to stay up-to-date with more features and best practices that will help you grow a successful business on Google Play.

How useful did you find this blogpost? β˜… β˜… β˜… β˜… β˜…                                                                               
Categories: Programming

And the winners of the Google Play Indie Games Contest in Europe are...

Android Developers Blog - Fri, 02/17/2017 - 17:37
Posted by Matteo Vallone, Google Play Games Business Development

Today, at Saatchi Gallery in London, we hosted the final event of the first Google Play Indie Games Contest in Europe. The 20 finalists, selected from nearly 1000 submissions, came from 12 countries to showcase their games to an excited room of gamers, industry experts and press. Selected based on the votes of the attendees and the Google Play team, the Top 10 pitched in front of a jury of industry experts who chose the top winners.



Stay tuned for more pictures and a video of the event.

Without further ado, join us in congratulating the winners!

Winner & Unity prize winner:

Reigns, by Nerial, from the United Kingdom
You are the King. For each decision, you only have two choices. Survive the exercise of power and the craziness of your advisors... as long as you can.
Runners up:

The Battle of Polytopia, by Midjiwan AB, from Sweden
A turn based strategic adventure. It's a game about ruling the world, fighting evil AI tribes, discovering new lands and mastering new technologies. Causality, by Loju, from the United Kingdom
A puzzle about manipulating time, altering the sequence of events and changing the outcome of each level to help a group of astronauts find a route to safety.

The other top games selected by the event attendees and the Google Play team are:

Blind Drive, by Lo-Fi People, from Israel
You're driving blindfolded as a mysterious voice gives you suicidal commands on the phone. Survive on-rushing vehicles using only your hearing to guide you. Gladiabots, by GFX47, from France
A competitive tactical game in which you design the AI of your robot squad. Use your own strategy, refine it online and fight for the top of the leaderboard. Happy Hop: Kawaii Jump, by Platonic Games, from Spain
This isn't just an original one-tap endless hopper, it's also the cutest one. Ever wondered what's in the end of the rainbow? That would be Happy Hop. Lost in Harmony, by Digixart Entertainment, from France
Experience music in a new way with the combination of rhythmic tapping and choreographic runner to go through two memorable journeys with Kaito and M.I.R.A.I. Paper Wings, by Fil Games, from Turkey
A fast-paced arcade game which puts you in control of an origami bird. Avoid the hazards and collect the falling coins to keep your paper bird alive. Pinout, by Mediocre, from Sweden
A breathtaking pinball arcade experience: race against time in a continuous journey through this canyon of pulsating lights and throbbing retro wave beats. Rusty Lake: Roots, by Rusty Lake, from Netherlands
James Vanderboom's life drastically changes when he plants a special seed in the garden. Expand your bloodline by unlocking portraits in the tree of life.


Check out the prizes The prizes of this contest were designed to help the winners showcase their art and grow their business on Android and Google Play, including:
  • YouTube influencer campaigns worth up to 100,000 EUR
  • Premium placements on Google Play
  • Tickets to Google I/O 2017 and other top industry events
  • Promotions on our channels
  • Special prizes for the best Unity game
  • And more!
What’s next? The week is not over just yet for Indie games developers. Tomorrow we are hosting the Indie Games Workshop for all indie games developers from across EMEA in the new Google office in Kings Cross.
It’s been really inspiring to see the enthusiasm around this inaugural edition, and the quality and creativity of the indie games developed across the eligible European countries. We are looking forward to bringing a new edition of the contest to you in late 2017.
How useful did you find this blogpost? β˜… β˜… β˜… β˜… β˜…                                                                               
Categories: Programming

The 8 Leading Attributes of Trust, Leadership’s Most Important Tool

26303029941_b4376df9c4_k

Leaders require trustΒ between them and those they lead to be effective. Trust is not a simple attribute like hair color. Β Trust is a synthesis of several attributes. None of the attributes that impact trust are fixed at birth. As humans, we learn the attributes that generate trust based on the environments we are exposed to and hone them based on effort and importance we place on these characteristics. The 8 most important characteristics that shape trust in software development and Agile environments are:

  1. Competence – Trust is difficult in scenarios where there areΒ significant mismatches in the combination of skills and experiences each individual brings to an endeavor. I recently observed a team in which a new, highly trained but inexperienced tester joined a Scrum team. There was not trust until the person had gained experience by interacting with the team for several sprints.
  2. Truthfulness – Trustworthy leaders will know and share the truth. Β Deception, even when ‘harmless’ or even beneficial, will reduce the credibility of every statement going forward.
  3. Act as they think – Words, feelings, and beliefs match actions of the leader. Β A popular adage is that if a leader β€œis going to talk the talk, they’ve got to walk the walk” in order to be trusted.Β 
  4. Integrity – Trustworthy leaders take responsibility for their actions and work and make sure that the work of other is attributed correctly. Β A leader with integrity will link themselves to a set of moral and ethical principles that are known to the team and organization.
  5. Reliability – Trustworthy leaders say what they will do and do what they say they will do. Β A corollary is that trustworthy leaders also do what they say they will do when they say they will do it.
  6. Loyalty – Trustworthy leaders are loyal to their people and organization (but not stupidly loyal). Β All too often untrustworthy leaders will throw someone under the bus when issues are exposed or talk negatively about someone when they are not present. Β Showing loyalty towards others is a prerequisite for receiving trust from others.
  7. Accountability – Leaders build trust by recognizing, admitting and accepting responsibility for their own mistakes.
  8. Just – A trustworthy leader is just to those on their team and with those outside their team. The actions of a just leader are predictable and measured rather than erraticΒ and extreme.Β 

There are other attributes of trust; however, in a collaborative software development environment using Agile, these are often the most important contributors to trust in a leader. Β A point that is often missed when discussing Agile or other decentralized frameworks is that leadership is dynamic. Therefore trust is important for anyone that might take up the mantle of leadership to foster. Β I often recommend carving out time in retrospectives to examine trust to ensure that building trust is not seen as something that happens naturally or in random team building exercises.

 


Categories: Process Management

Fifty Great Project Management Blogs

Herding Cats - Glen Alleman - Thu, 02/16/2017 - 19:06

Screen Shot 2017-02-16 at 11.03.57 AMOn Line PM Course has listed the 50 Greatest Project Management Blogs in alphabetical order

Categories: Project Management

Announcing TensorFlow 1.0

Google Code Blog - Wed, 02/15/2017 - 20:43
Posted By: Amy McDonald Sandjideh, Technical Program Manager, TensorFlow

In just its first year, TensorFlow has helped researchers, engineers, artists, students, and many others make progress with everything from language translation to early detection of skin cancer and preventing blindness in diabetics. We're excited to see people using TensorFlow in over 6000 open-source repositories online.


Today, as part of the first annual TensorFlow Developer Summit, hosted in Mountain View and livestreamed around the world, we're announcing TensorFlow 1.0:


It's faster: TensorFlow 1.0 is incredibly fast! XLA lays the groundwork for even more performance improvements in the future, and tensorflow.org now includes tips & tricksfor tuning your models to achieve maximum speed. We'll soon publish updated implementations of several popular models to show how to take full advantage of TensorFlow 1.0 - including a 7.3x speedup on 8 GPUs for Inception v3 and 58x speedup for distributed Inception v3 training on 64 GPUs!


It's more flexible: TensorFlow 1.0 introduces a high-level API for TensorFlow, with tf.layers, tf.metrics, and tf.losses modules. We've also announced the inclusion of a new tf.keras module that provides full compatibility with Keras, another popular high-level neural networks library.


It's more production-ready than ever: TensorFlow 1.0 promises Python API stability (details here), making it easier to pick up new features without worrying about breaking your existing code.

Other highlights from TensorFlow 1.0:

  • Python APIs have been changed to resemble NumPy more closely. For this and other backwards-incompatible changes made to support API stability going forward, please use our handy migration guide and conversion script.
  • Experimental APIs for Javaand Go
  • Higher-level API modules tf.layers, tf.metrics, and tf.losses - brought over from tf.contrib.learnafter incorporating skflowand TF Slim
  • Experimental release of XLA, a domain-specific compiler for TensorFlow graphs, that targets CPUs and GPUs. XLA is rapidly evolving - expect to see more progress in upcoming releases.
  • Introduction of the TensorFlow Debugger (tfdbg), a command-line interface and API for debugging live TensorFlow programs.
  • New Android demos for object detection and localization, and camera-based image stylization.
  • Installation improvements: Python 3 docker images have been added, and TensorFlow's pip packages are now PyPI compliant. This means TensorFlow can now be installed with a simple invocation of pip install tensorflow.

We're thrilled to see the pace of development in the TensorFlow community around the world. To hear more about TensorFlow 1.0 and how it's being used, you can watch the TensorFlow Developer Summit talks on YouTube, covering recent updates from higher-level APIs to TensorFlow on mobile to our new XLA compiler, as well as the exciting ways that TensorFlow is being used:



Click herefor a link to the livestream and video playlist (individual talks will be posted online later in the day).


The TensorFlow ecosystem continues to grow with new techniques like Foldfor dynamic batching and tools like the Embedding Projector along with updatesto our existing tools like TensorFlow Serving. We're incredibly grateful to the community of contributors, educators, and researchers who have made advances in deep learning available to everyone. We look forward to working with you on forums like GitHub issues, Stack Overflow, @TensorFlow, the discuss@tensorflow.orggroup, and at future events.



Categories: Programming

Serverless Architectures

From the Editor of Methods & Tools - Wed, 02/15/2017 - 13:46
Serverless architectures have been touted as the next evolution of cloud-hosted software. Indeed, the promise of resiliency and scalability without the need for infrastructure management sounds too good to be true! But what exactly does a serverless architecture look like? And what are the trade-offs to weigh up when considering using one on your next […]

Impact of Six Additional Leadership Styles on Adopting and Sustaining Agile

Leadership Styles

Leadership Styles

Leadership style has a direct impact on an organization’s ability to adopt and sustain Agile. Β Some leadership styles are more supportive and others evoke more of response that is epitomized by locking feral cats and dogs in a room (nobody wins). In a previous entry we reviewed four common leadership styles;Β six additional styles include:

Laissez-Faire Leadership

A laissez-faire leader isΒ hands-off and allows group members to make the decisions. The leader using this form of leadership will monitor what is being done and will communicate with the team on a regular basis. For this form of leadership to work team members need to be experienced, have discipline and be self-starters. Mature Agile teams can exist under laissez-faire leaders; however immature Agile teams will not receive sufficient leadership and control.

People-Oriented Leadership or Relations-Oriented Leadership

People/Relationship-oriented leadership is focused on organizing, supporting and developing the people on the leader’s team. The focus on the needs of the team is generally supportive of Agile practices. If thisΒ form of leadership is taken to extreme it can cause the leader and team to lose focus on the team’s goals.

Servant Leadership

The servant leader works to empower and serve the people s/he leads. Empowerment on an Agile team is removing impediments and coaching the team so it performs to its capability using Agile practices. Servant leadership is considered the most supportive of implementing and fostering Agile teams. Β As we have noted there are downsides to servant leadership; however, most problems with servant leadership stem an over focus or mismatch of goals or conflict of vision. If these excesses are controlled servant leadership is an excellent match for Agile.

Task-Oriented Leadership

Task-oriented leaders focus on one thing: getting the job done. Β This form of leadership can be perceived as autocratic. Β Task-oriented leaders define work, roles and then assign the work. All of the versions of Agile that embrace the principles in the Agile Manifesto are structured around the premise that the team is motivated and can self-organize to address the work they have committed to delivering. Β Task-oriented leadership is at odds with Agile principles. When this form of leadership is prevalent, Agile will have a tough time taking root in this environment, even though this form of leadership can be useful in extreme emergencies.

Transactional Leadership

Transactional leadership is built on the premise that team members agree to obey their leader totally when they take a job. Bonded, indentured servitude comes to mind when considering this form of leadership. For this fealty, team members are paid. Β During my high school years, I worked in a department store warehouse. Β I observed the foremen using this type of leadership β€œon” most of my fellow workers. As the high school kid, I tended to be treated differently floating between the two groups. This type of leadership caused both sides act out against the other. This form of leadership will stifle Agile and rarely has any long-term value.Β 

Transformational Leadership

A transformation leader inspires his (or her) team based on a shared vision of the future. This type of leader communicates (early and often) and they lead with enthusiasm, even though they tend to delegate responsibility throughout the team. Β This form of leadership provides vision and then supports that vision by empowers others around them. This form of leadership is perfect for establishing Agile but in the long run is difficult to sustain the same levels of passion for a single transactional event.

There is no single perfect leadership style. Β Often different leadership styles are used depending on context. Β Highly Agile organizations often mix servant leadership styles with transformational. Β The transformational style being used to tackle major changes within the organization while the day-to-day leadership style is more akin to servant leadership. Β Even organizations with highly participative leadership styles may adopt more autocratic task-leadership styles in periods of great crisis in which consensus would take too long to develop. What is different from less mature or less participative organizations is that you very quickly retreat from this style when the crisis passes and they generally don’t feel good about the event. In order to get a sense how styles shift, ask a few people in that organization to tell you a story about the last crisis the team was involved in and then listen to the answer. Β The stories that are told about major events are often very enlightening.

As a reminder, a comparison of the ten leadership styles review is shown above.Β The styles with the most filled in Harvey Balls are typically the most conducive to adopting and staying Agile.

The prevalent leadership style of an organization can impact both the ability to adopt Agile and then the ability to sustain Agile. Β Autocratic, task-oriented and transactional leadership styles are as close to anti-Agile as can be. Β While Agile might exist in protected pockets in organizations that these styles are prevalent they will not prosper. Instead, consider adopting kanban or Scrumban without the Agile principles in these environments and then slowly sell change by exposing bottlenecks and constraints. Β Β 

 


Categories: Process Management

SE-Radio Episode 282: Donny Nadolny on Debugging Distributed Systems

Donny Nadolny of PagerDuty joins Robert Blumen to tell the story of debugging an issue that PagerDuty encountered when they set up a Zookeeper cluster that spanned across two geographically separated datacenters in different regions.Β  The debugging process took them through multiple levels of the stack starting with their application, the implementation of the Zookeeper […]
Categories: Programming

Hey, Join My New Project!

NOOP.NL - Jurgen Appelo - Tue, 02/14/2017 - 20:24

I am going to challenge you.

I want to see you do things you’ve never done before. I want you to learn, experiment, fail beautifully, and then try again. And I want to see you make progress in areas that few people in the world have explored.

I am talking about my new project.
You are welcome to join.

Why are you checking your Facebook or Twitter streams multiple times per day? Is it because you were sent to a social media workshop by your manager? Or because these companies are smartly targeting your intrinsic motivators?

What has caused millions of people to start running, exercising, and monitoring their calorie intakes? Was there a government campaign promoting healthier lifestyles? Or is it because thousands of apps, smartphones and wearables have made it a lot more fun?

What convinced me to switch from taxis to ridesharing, from radio stations to streaming music, and from workstations to tablets and notebooks? Is it because it’s part of someone else’s change program? Or because I wanted a more convenient work-life?

I’m sure you get my point.

People don’t change because they’re told to change. People change because smart companies make them want to change. It usually involves techniques borrowed from gamification, behavioral economics, and habitualization.

Consider a fitness tracker, for example. I run three times per week because the metrics of the fitness tracker on my smartphone have gamified the exercises so that I’m competing against myself. By showing me statistics, and comparing those with others, the tracker uses “nudges” borrowed from behavioral economics to influence my behaviors further. And by reinforcing the good behaviors with various triggers and rewards, the app has turned my regular exercises into habits.

Games, nudges, and habits.
That’s how people change.

We now live in a time where manuals, workshops, promotion campaigns, and change programs are not sufficient anymore to achieve organizational change. To really understand and influence people, we can now use smartphones, wearables, big data, artificial intelligence, and a healthy dose of applied psychology and sociology.

Do you find that fascinating?
Let’s try and improve organizations in a more modern way.

JOIN ME

The post Hey, Join My New Project! appeared first on NOOP.NL.

Categories: Project Management

Sponsored Post: Aerospike, GoCardless, Auth0, InnoGames, Contentful, Stream, Scalyr, VividCortex, MemSQL, InMemory.Net, Zohocorp

Who's Hiring?
  • GoCardless is building the payments network for the internet. We’re looking for DevOps Engineers to help scale our infrastructure so that the thousands of businesses using our service across Europe can take payments. You will be part of a small team that sets the direction of the GoCardless core stack. You will think through all the moving pieces and issues that can arise, and collaborate with every other team to drive engineering efforts in the company. Please apply here.

  • InnoGames is looking for Site Reliability Engineers. Do you not only want to play games, but help building them? Join InnoGames in Hamburg, one of the worldwide leading developers and publishers of online games. You are the kind of person who leaves systems in a better state than they were before. You want to hack on our internal tools based on django/python, as well as improving the stability of our 5000+ Debian VMs. Orchestration with Puppet is your passion and you would rather automate stuff than touch it twice. Relational Database Management Systems aren't a black hole for you? Then apply here!

  • Contentful is looking for a JavaScript BackEnd Engineer to join our team in their mission of getting new users - professional developers - started on our platform within the shortest time possible. We are a fun and diverse family of over 100 people from 35 nations with offices in Berlin and San Francisco, backed by top VCs (Benchmark, Trinity, Balderton, Point Nine), growing at an amazing pace. We are working on a content management developer platform that enables web and mobile developers to manage, integrate, and deliver digital content to any kind of device or service that can connect to an API. See job description.
Fun and Informative Events
  • DBTA Roundtable Webinar: Fast Data: The Key Ingredients to Real-Time Success. Thursday February 23, 2017 | 11:00 AM Pacific Time. Join Stephen Faig, Research Director Unisphere Research and DBTA, as he hosts a roundtable discussion covering new technologies that are coming to the forefront to facilitate real-time analytics, including in-memory platforms, self-service BI tools and all-flash storage arrays. Brian Bulkowski, CTO and Co-Founder of Aerospike, will be speaking along with presenters from Attunity and Hazelcast. Learn more and register.

  • Your event here!
Cool Products and Services
  • Auth0 is the easiest way to add secure authentication to any app/website. With 40+ SDKs for most languages and frameworks (PHP, Java, .NET, Angular, Node, etc), you can integrate social, 2FA, SSO, and passwordless login in minutes. Sign up for a free 22 day trial. No credit card required. Get Started Now.

  • Build, scale and personalize your news feeds and activity streams with getstream.io. Try the API now in this 5 minute interactive tutorial. Stream is free up to 3 million feed updates so it's easy to get started. Client libraries are available for Node, Ruby, Python, PHP, Go, Java and .NET. Stream is currently also hiring Devops and Python/Go developers in Amsterdam. More than 400 companies rely on Stream for their production feed infrastructure, this includes apps with 30 million users. With your help we'd like to ad a few zeros to that number. Check out the job opening on AngelList.

  • Scalyr is a lightning-fast log management and operational data platform.  It's a tool (actually, multiple tools) that your entire team will love.  Get visibility into your production issues without juggling multiple tabs and different services -- all of your logs, server metrics and alerts are in your browser and at your fingertips. .  Loved and used by teams at Codecademy, ReturnPath, Grab, and InsideSales. Learn more today or see why Scalyr is a great alternative to Splunk.

  • InMemory.Net provides a Dot Net native in memory database for analysing large amounts of data. It runs natively on .Net, and provides a native .Net, COM & ODBC apis for integration. It also has an easy to use language for importing data, and supports standard SQL for querying data. http://InMemory.Net

  • VividCortex is a SaaS database monitoring product that provides the best way for organizations to improve their database performance, efficiency, and uptime. Currently supporting MySQL, PostgreSQL, Redis, MongoDB, and Amazon Aurora database types, it's a secure, cloud-hosted platform that eliminates businesses' most critical visibility gap. VividCortex uses patented algorithms to analyze and surface relevant insights, so users can proactively fix future performance problems before they impact customers.

  • MemSQL provides a distributed in-memory database for high value data. It's designed to handle extreme data ingest and store the data for real-time, streaming and historical analysis using SQL. MemSQL also cost effectively supports both application and ad-hoc queries concurrently across all data. Start a free 30 day trial here: http://www.memsql.com/

  • ManageEngine Applications Manager : Monitor physical, virtual and Cloud Applications.

  • www.site24x7.com : Monitor End User Experience from a global monitoring network. 

If any of these items interest you there's a full description of each sponsor below...

Categories: Architecture