Skip to content

Feed aggregator

Looking for an Agile Developer

Scrum Breakfast - Tue, 05/24/2016 - 17:53
As Product Owner for the Scrum Breakfast Club, I want an Agile software developer,  At the Scrum Breakfast Club, our goal is to enable people and companies to become Agile. We need some software to help us make that happen. How do you find an Agile Developer?

When I have looked for a development partner in the past, I have always started what skills, passion and personality am I looking for. Here is what we hope to find for this project:

  •  We need to be able communicate in English. (I have tried working through an interpreter, but I have not found it to work well).
  • Our basic flow is Scrum and we do short sprints. We are not dogmatic, but we want to produce working software at least once per week. I would like you to know what Agile is about before we start.
  • As Product Owner, I care about quality and robustness. I would like someone who is into TDD, BDD or one of their cousins. 
  • Interest in the work (which is mostly about the plumbing right now!). The main goal is to complete the integration of our member management and event management components with the payment and accounting systems. This will make all of our stakeholders happy, especially me since I am doing this manually now! So we are looking at making WordPress plugins and other glue. This part of the project is not about sleek design, it's about rock-solid infrastructure.
  • Happy to work in a virtual team. Our team is based in locations from Europe to South East Asia. We use Skype, Hangout, Trello, and various cloud services. 
  • Happy with workloads of varying intensity. We have a clear project now, so you'll be pretty busy. I expect we are looking at a one to two month engagement. After that, we'll see. Maybe there will be phases where we are just in maintenance mode. We do expect a long life for our project and would like to come back to you when we need your skills again!
  • We would like someone is independent or in a small partnership. Someone who has control over their own time. You'll be dealing with Principals, and we'd like to deal with a Principal too.
  • Last but not least, we are looking for good chemistry. We want work to be fun!
Does this resonate with you? Would you like to be collaborate with an Agile team?
How to contact usIf you want to impress us, tweet a screen shot of your latest daily build or other evidence that you know what you're talking about! Just include @peterstev and @bindzus and #SBCDEV in the tweet, and we'll reach out to you!
Categories: Blogs

When is Agile Wrong for You?

Johanna Rothman - Tue, 05/24/2016 - 16:04

People often ask me, “When is agile  right or not right for a project?” I’ve said before that if the team wants to go agile, that’s great. If the team doesn’t, don’t use agile.

That answer is insufficient. In addition to the team, we need management to not create a bad environment for agile. You might not have a great environment to start. But a bad environment? That’s a horror show.

I had a coaching conversation recently. My client has a typical problem. He sees multiple ways to accomplish the work. He’s taking ideas from agile and lean, and smashing them together to create a project approach that works for them, at their company. It’s not quite agile. And, that’s the sticking point.

His management wants to “go agile.” They have no idea what that means.They think agile is a way to get more good stuff faster with less cost. It’s possible that with agile approaches, they can achieve that as a by-product. To be honest, any approach that stops people from waiting for phases to finish will help. That’s not necessarily agile.

The management team does know about one of the well-known approaches. They want everyone to go through that training. My client doesn’t think this will work. He has a number of concerns:

  • Management wants to control how people work at the project level. Management wants to define the iteration duration, what the standup questions will be, who will be on which team, and what the teams will do. (That’s enough right there, but there’s more. They are geographically dispersed across the globe. Going with an out-of-the-box solution does not make sense.)
  • Management wants to use team measurements for personal compensation. Specifically, they want to use personal velocity as a way to compensate people. (This is stupid, dangerous and wrong.)
  • Every manager my client has spoken with thinks that he or she does not need to change. Only the tech people need to change. (They could not be more mistaken.)

If you work in an agile organization, you know the problems with these assumptions.

Teams manage their own work: their intake is via the Product Owner. They decide how to work, flowing work through the team. Hopefully, the team focuses on their throughput, not who does what.

Remember, Velocity is Not Acceleration. When managers abuse velocity and use it to measure the team members (not even the entire team!), they create schedule games and a toxic team environment. At best, a manager’s abuse of velocity leads to people taking shortcuts and incurring technical debt. At worse, it destroys teamwork.

Managers can create the environment in which people can succeed. Especially in agile and lean, managers do not have to “incent” people, or push people to do well. People will do a good job because they get feedback often and they want to. When managers attempt to manipulate an environment to deliver more with less work (what they think agile is), I’m not sure if anyone can succeed.

I asked my client if the managers understood what agile might mean for them, as managers. He was sure the managers had no idea.

I suggested that trying agile in this environment would give agile a bad name in the organization. I suggested these alternatives:

  • Ask about the three questions that might help the managers articulate their goals. See Define Your Agile Success.
  • Do a simulation with management to have them feel what agile is like.
  • Explain the system of agile and how the ideas that management have is not helpful.
  • Request a reasonable environment for a short-ish timebox (I was thinking about a month, maybe two months) to show management that their ideas are not the only ideas that could work. I suggested a number of measures my client could suggest to his management.

Don’t start agile in a toxic environment. It’s not worth it. Agile is wrong for you. Remember that Agile is Not a Silver Bullet and Agile is Not for Everyone.

Remember, agile is a cultural change, not merely a project management framework. Instead of agile, consider using all the ideas of agile to show steady progress and decide how to influence your managers.

Instead of agile, consider using all the ideas of agile ( for example, teamwork to deliver small chunks of value) to show steady progress and decide how to influence your managers. Don’t ask teams to be collaborative when management wants to stay command-and-control.

Categories: Blogs

Consistency is the Key When Scaling Agile

Agile Management Blog - VersionOne - Tue, 05/24/2016 - 14:30

consistency-is-key-when-scaling-agile-800x328

detourWake up, get dressed, go to work, go to lunch, go home, etc., etc., etc.  Each of these decisions is made over and over again in what might be called a routine.  As part of this sequence, work is done whether simple or complex and the outcome is typically valuable.

What happens when this “routine” is changed for some un-anticipated reason causing a detour?  Was there a problem or not?  Was the end result less value created?  Festinger coined the term “Cognitive dissonance to describe inconsistencies in our understanding which can cause stress”.  If this identified inconsistency can cause anxiety leading to failure, could it be that consistency will have the opposite effect and lead to success?

According to  VersionOne’s 10th annual State of Agile Report, 43% of the respondents rated consistency the most important success factor when scaling agile, followed by implementation of a common tool across teams (40%), and agile consultants or trainers (40%) were cited as the top three tips for successfully scaling agile.

Top 5 Tips for Success with Scaling Agile

What is it?

Consistency Defined – agreement or harmony of parts or features to one another or a whole.  We know there are many parts to our lives, some of which are complicated and others can be classified as simple.  An executive in a company might have as part of their daily routine dropping their kids at school and then spending the rest of the day re-structuring companies in which they serve.  This combination of decisions can get convoluted quickly if there is not a certain “agreement or harmony” of the parts that make up the day.

music-250x156In this small case, a traffic problem can cause the corporate world to be delayed in a strategic decision. These are the decisions that need more time, research, and analysis as seen through a bigger lens.  Consistency in the simple decisions allow for more time to be spent on the complex ideas and solutions.

Agile software development values keeping things as simple as possible.  One of the Agile Manifesto’s principles is “Simplicity–the art of maximizing the amount of work not done–is essential”.  Things like people, process, terminology, events, and locations can all contribute to a complex work environment.  As more decision points are added to any project, complexity increases.  Scaling agile contributes directly into this increasing cognitive map and can lead to a less harmonic result.

Why is it important?

When people are added to teams, there is a need for existing members to take time out of the regular schedule for assimilation into the workflow.  This typically involves sharing of information, team culture, and idiosyncrasies associated with this group seen or unseen.  The routine is changed.

With scaling, teams are being added to teams creating many more points of reference, collaboration, and potential confusion.  Consistency is important because confusion creeps in which produces change and can lead to chaos.  The chaos factor will hold back teams from delivering on a regular basis.

peopleRobinson and Rose stated, “Often, in the tension of a chaotic stage, team members simply start doing things to burn off the emotional energy.  The difficulty with this is that the activity is often not well-thought-out and can actually have nothing to do with the actions that they need to take to be successful.”

Similarly, changes in process, can have the same effect.  Like a detour on the way to the office, a small change can signal a disruption in success.  Following well-known and mature processes can facilitate the ability to keep moving forward.  A common cadence will help settle the dust of simple questions like when and where, so the complex issues are allocated more time and effort.

Bell and Raiffa posited, “Many of the central issues of our time are questions of how we use limited information and limited computational capacity to deal with enormous problems whose shape we barely grasp.”

With this limitation already acknowledged, how can we increase consistency?

How do we do it?

Brief analysis of the ceremonies a group does can shed light into what is “consistent” and what might need to change. Start with the people because this affects everything else.  I know of one company that has set a Service Level Agreement (SLA) on contracted teams to support consistency so their Bounce Rate stays small.  People naturally form routines and look for simple answers.  Self-organization can help to surface inconsistencies and supports faster acceptance of change.  Also, look at the process, culture, terminology, and location as indicators for or against consistency.

consistency is keyGetting to agreement or harmony can take agile teams some time; however evidence shows that consistency will enhance success.

Find out more by downloading the 10th annual State of Agile Report and reviewing archives of past reports.

Sources:
Decision Making: Its Logic and Practice
By Byron M. Roth, John D. Mullen

Teams for a New Generation: A Facilitator’s Field Guide
By Greg Robinson, Mark Rose

Decision Making: Descriptive, Normative, and Prescriptive Interactions
By David E. Bell, Howard Raiffa

State of Agile is a trademark of VersionOne Inc.

The post Consistency is the Key When Scaling Agile appeared first on The Agile Management Blog.

Categories: Companies

Agile in a Bag, London, UK, June 10 2016

Scrum Expert - Tue, 05/24/2016 - 11:00
Agile in a Bag is a one-day conference that takes place in London. It proposes workshops to help you understand how Agile works and interesting presentations explaining Scrum ideas. It is also a great place to network with fellow Agile practitioners in London. In the agenda of Agile in a Bag, you can find topics like “Wicked Problems in Organisational Design”, “Kanban is more than a board, let’s discuss deep Kanban”, “Coaching the Agile organisation”, “Avoiding ‘Mini-Waterfalls’ in Agile Environments”, “From Rust to Robust-From Iron To Agile Triangle”, “Cynefin A&E Simulation Game”, “Coaching Tools for Agile Leaders”, ” Quantifying Cost of Delay – Why is it the ‘one thing’ to quantify, How do I do it?”, “Influence techniques of Scrum Master: how to build a team without a power”, “The Journey of a Lean Enterprise”. Web site: http://agileinabag.co.uk/ Location for the Agile in a Bag conference: Mary Ward House, 5-7 Tavistock Place, London, WC1H 9SN, UK
Categories: Communities

Agile Coach Camp Canada West, Vancouver, Canada, June 17-19 2016

Scrum Expert - Tue, 05/24/2016 - 10:30
Agile Coach Camp Canada West is a three-day conference that creates opportunities for the Agile coaches community to share successes, learning, questions and unresolved dilemmas. All this happens in an energizing and supportive environment. The Agile Coach Camp Canada West follows the open space format for conferences. Each participants makes a contribution to the art and science of helping people and teams be their best as they create valuable software. Share your stories, observations, and puzzles. Discuss coaching challenges you have overcome or those you are wrestling with today. Describe challenges you see emerging as we seek to improve the organization of knowledge work. Bring your questions. Test your ideas. Listen and learn from others. Web site: http://agilecoachcampcanada.ca/ Location for the Agile Coach Camp Canada West conference: BCIT Downtown Campus, 555 Seymour Street, Vancouver, British Columbia, V6B 3H6, Canada
Categories: Communities

Agile Coach Camp Canada East, Cornwall, Canada, 3-5 June, 2016

Scrum Expert - Tue, 05/24/2016 - 10:15
Agile Coach Camp Canada East is a three-day conference that creates opportunities for the Agile coaches community to share successes, learning, questions and unresolved dilemmas. All this happens in an energizing and supportive environment. The Agile Coach Camp Canada East follows the open space format for conferences. Each participants makes a contribution to the art and science of helping people and teams be their best as they create valuable software. Come to share your stories, observations, and puzzles. You will be able to discuss coaching challenges you have overcome or those you are wrestling with today. You will describe challenges you see emerging as we seek to improve the organization of knowledge work. Bring your questions. Test your ideas. Listen and learn from others. Web site: http://agilecoachcampcanada.ca/ Location for the Agile Coach Camp Canada East conference: NAV Centre, 1950 Montreal Road, Cornwall, Ontario K6H 6L2, Canada
Categories: Communities

SoCraTes UK, Dorking, UK, June 2-5 2016

Scrum Expert - Tue, 05/24/2016 - 10:10
SoCraTes UK is an International Software Craftsmanship retreat for open-minded craftspeople who want to improve their craft and the software industry as a whole. It’s a great opportunity to speak to and code with many like-minded and talented developers. The conference itself is free. SoCraTes UK, the International Software Craftsmanship retreat 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://socratesuk.org/ Location for the SoCraTes UK conference: Wotton House, Guildford Road, Dorking, Surrey, England, UK
Categories: Communities

Agile Coach Camp Italy, Lavarone, Italy, June 9-11 2016

Scrum Expert - Tue, 05/24/2016 - 10:00
Agile Coach Camp Italy is a three-days of highly collaborative, self-organized open space conference. It’s for everyone involved in Agile coaching, training, mentoring and helping Agile organizations. Agile Coach Camp Italy 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: https://accitaly.wordpress.com/ Location for the Agile Coach Camp Italy: Grand Hotel Astoria, Piazza Italia, 38046 Lavarone, Italy
Categories: Communities

Links for 2016-05-23 [del.icio.us]

Zachariah Young - Tue, 05/24/2016 - 09:00
Categories: Blogs

Less is More with Retrospectives

Ben Linders - Tue, 05/24/2016 - 08:37

The aim of agile retrospectives is to come up with improvement actions. Having too many actions from retrospectives makes it harder for teams to improve, it's actually better to come up with less actions in stead of more in a retrospective. It's quality over quantity for actions. Here's some ideas on how to come up with less actions to get more done. Continue reading →

The post Less is More with Retrospectives appeared first on Ben Linders.

Categories: Blogs

How SPRINT METAL achieved transparency and employee engagement through Kaizen

TargetProcess - Edge of Chaos Blog - Mon, 05/23/2016 - 16:38

SPRINT METAL Factory

SPRINT METAL is an industrial company based in Germany that specializes in producing fine and ultra-fine metal wire. The fine wire industry is characterized by formidable requirements for flexibility, but SPRINT METAL has operated successfully in this competitive market for 25 years. They follow a Kaizen culture, and their commitment to continuous improvement has enabled them to improve employee engagement and achieve democracy and transparency across the whole organization.

Practicing transparency:

Kaizen is not just about improving business processes; its true function is comprehensive improvement at every level. In a successful Kaizen environment, employees receive as much value as the company. Team members are able to develop their skills and be an important part of the system, rather than a cog in the machine. The free exchange of information is promoted, and anyone can contribute new ideas for improvement. Safety requirements and the overall well-being of employees are also given careful attention.

SPRINT METAL Fine Wire

A coil of fine wire at SPRINT METAL

Following these principles, SPRINT METAL tries to foster an environment of open communication at their factory. Employees from all levels of the hierarchy are encouraged to send feedback and ideas up the ladder. Department heads use Targetprocess’s Bug Tracking functionality (with Bugs renamed as Messages) to manage such communication so that all internal messages (production error tickets, requests, suggestions, ideas for improvement, etc.) receive documented attention.  

With this system, top-level management can give instructions, department managers can document errors, and team members at the operational level can send suggestions or requests up the hierarchy. SPRINT METAL has also created special views to facilitate internal meetings. Meeting results are logged as comments on the meeting entity (which is also represented as a Bug).   

The benefits of open communication:

The careful attention that internal communications receive helps to enable the culture of trust dictated by the Kaizen approach. Before SPRINT METAL adopted Targetprocess, meeting minutes and employee messages would often get lost in mountains of paper and nonuniform Excel sheets. Now, everything is available from one central location, and no employee messages or important meeting minutes can be forgotten.

In addition to the transparency boost this system provides, team members also feel listened-to because any suggestions, requests, or other messages they submit receive noticeable attention. Participation in any actions or initiatives is also highly visible; this encourages team members from every level of the hierarchy to take a greater participatory role in process improvements and high-level operations.  

SPRINT METAL Received Messages History

This high visibility ensures that contributions from individuals don’t just get swept under the rug; team members actually receive recognition for their suggestions. This is monumentally important for nurturing skill development and team confidence. It’s notoriously difficult to keep up morale in a factory setting, but employees at SPRINT METAL seem to be happy with the way things are. And, if anyone does have a problem with their worklife, they can easily make their concerns known to management.

Facilitating collaboration with software:

Because many employees work with factory equipment and do not use computers in their daily work, operational workers submit their requests and suggestions manually through handwritten notes, text messages, or their preferred medium. Department managers then place these messages into the appropriate project within Targetprocess. The 11 pillars of work at SPRINT METAL make up the different projects, so messages are grouped by whichever pillar (project or category) they are most related to:  

The 11 pillars of work at SPRINT METAL: Autonomous maintenance, expert maintenance, progress, health and safety, installation of new equipment, cost, customer service, personal development, production, quality assurance, and environmental considerations (with a project for overlapping topics).

Team members that don’t have access to Targetprocess can still check on the status of messages by logging into SPRINT METAL’s internal system, where all relevant views have been made available to employees. A monitor has been also set up in the factory to display completed requests.

There are many different views for Targetprocess users at SPRINT METAL to see messages and actions, including:

  • An overview of all messages in the system - these can be grouped by category, status, and priority
  • A team-level view of messages for each department
  • An individual-level view for users to see messages by responsible person or by author
  • Views for new messages  - these are used weekly by the board to process messages
  • Views for done messages - these are used for reporting and analysis
  • Views to see actions for each work pillar (project) - these are used by the people responsible for each respective project
Customizing the tool:

SPRINT METAL has altered the standard workflow taxonomy and customized the cards in Targetprocess to reflect their communication-centric process. Custom Fields are used to measure things like visibility, effectiveness, and what medium was used to submit the message.  

SPRINT METAL Custom Fields

Sprechen Sie Deutsch? Some Custom Fields used by SPRINT METAL

Visual encoding is used to facilitate prioritization of all incoming messages. If an item has a high business value (such as emergency maintenance), it is usually assigned a planned end date. If a card moves past the planned end date without being closed, it turns red. To make quick analysis of views easier, new messages are colored green, and ‘done’ messages are colored blue.  

SPRINT METAL Visual Encoding

A typical setup of visual encoding at SPRINT METAL (translated from German)

To summarize:

SPRINT METAL practices a Kaizen culture characterized by openness and transparency. Their process for internal communications allows for flexibility in the management hierarchy, from the bottom-up and top-down. Employees at all levels have the opportunity to develop their skills and make visible contributions to operations. Their process and culture allows them to meet the ambitious market requirements of the fine-wire industry.

SPRINT METAL’s use of Targetprocess has enabled them to improve standardization, transparency, democracy, and employee participation. Bug Tracking is used to track incoming messages (tickets, requests, ideas, etc.), actions taken, and internal meetings.

In the future, SPRINT METAL would like to improve their process for messaging so they can reduce similar messages coming from different employees. This will allow them to put a greater focus on the quality (rather than quantity) of their responses. They would also like to see more options for advanced reporting in Targetprocess -- something which is on our roadmap for 2016.  

Categories: Companies

User Stories Are Not Requirements

Scrum Expert - Mon, 05/23/2016 - 16:27
The creation of Agile approaches was also a reaction against huge and useless requirements documents, either textual or using modeling techniques like UML. All the values of the past should however not be discarded in the requirements activity. In his book “Agile Software Requirements”, Dean Leffingwell explains how user stories are different from use cases and software specifications. Although user stories do most of the work previously done by software requirements specifications, use cases, and the like, they are materially different in a number of subtle yet critical ways. They are not detailed requirements specifications (something a system shall do) but are rather negotiable expressions of intent (it needs to do something about like this). They are short, easy to read, and understandable to developers, stakeholders, and users. They represent small increments of valued functionality that can be developed in a period of days to week. The are relatively easy to estimate, so effort to implement the functionality can be rapidly determined They are not carried in large, unwieldy documents but rather organized in lists that can be more easily arranged and rearranged as new information is discovered. They are not detailed at the outset of the project but are rather elaborated on a just-in-time basis, thereby avoiding too-early specificity, delays in development, requirements inventory, and an over-constrained statement of the solution. They need little or no maintenance and can be safely discarded after implementation. User stories, and the code that is created quickly thereafter, serve as inputs to documentation, [...]
Categories: Communities

Alignment and Autonomy in Strategy Deployment

AvailAgility - Karl Scotland - Mon, 05/23/2016 - 01:08

Following on from my previous What is Strategy Deployment and Dynamics of Strategy Deployment posts, there is a model I like which I think helps to show how the mechanics and the dynamics work together.

In The Art of Action, Stephen Bungay describes how Field Marshall Helmuth von Moltke, Chief of Staff of the Prussian Army for 30 years from 1857, had an important insight regarding Alignment and Autonomy. Previously these two had been viewed as extremes at the end of a single scale. Having high alignment meant having no autonomy because alignment could only be achieved through defining detailed plans which everyone should follow. Equally, high autonomy meant having no alignment because autonomy would result in everyone doing their own thing with no regard for each others actions.

Von Moltke’s insight was that alignment and autonomy are not a single scale requiring a tradeoff between the two ends, but two different axis which can actually reinforce each other. Thus not only is it possible to have both high alignment and high autonomy, but high alignment can enable high autonomy.

Alignment and Autonomy

They key to making this possible is differentiating between intent and action. Alignment is achieved by clearly stating intent centrally, such that autonomy can be achieved by allowing action to be decentralised in support of the intent. This requires mechanisms to both clarify and amplify intent, and enable and encourage local action. Thus using the definition of Strategy Deployment as “any form of organisational improvement in which solutions emerge from the people closest to the problem”, solving the problem is the intent, and the emerged solution is the action.

Using this model we can now describe two mechanisms necessary to make this happen. Alignment can be achieved with the X-Matrix, which enables the conversations about intent and summarises and visualises the results of those conversations. In other words, the X-Matrix shows how results, strategy, outcomes and tactics align and reinforce each other. Autonomy can be achieved through Catchball (Bungay describes the equivalent as back-briefing), which enables the X-Matrix to be passed around the organisation such that everyone can reflect, give feedback, and improve it, helping focus action on meeting the intent.

X-Matrix and Catchball

Viewing Strategy Deployment in this light also highlights a symmetry with the Autonomy, Mastery and Purpose model of intrinsic motivation described by Dan Pink in his popular book Drive. Autonomy is a direct match in both models and purpose is equivalent to intent. Mastery is then the result of improving capability autonomously with strong alignment to intent.

Drive

What this way of looking at Strategy Deployment shows is that both the X-Matrix and Catchball are necessary components. Just using the X-Matrix with out Catchball will probably result in it being used as just another top-down document to command and control employees. Similarly, just using Catchball without an X-Matrix will probably result in collaboration around local improvements with no overall organisational improvement.

Categories: Blogs

Less is more (and it scales) or SKIP THIS BLOG IF You HAVE TIME TO READ IT.

NetObjectives - Sun, 05/22/2016 - 13:31
The Power of Less: The Fine Art of Limiting Yourself to the Essential…in Business and in Life, by Leo Babauta, is a fantastic book about becoming more productive simply by doing less.  If you want to learn the secret to becoming more productive, "this is a how-to manual on how to simplify and focus on the essential.  How to do less while accomplishing more.” This 170 page book is a quick read...

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

Neo4j vs Relational: Refactoring – Extracting node/table

Mark Needham - Sun, 05/22/2016 - 11:58

In my previous blog post I showed how to add a new property/field to a node with a label/record in a table for a football transfers dataset that I’ve been playing with.

After introducing this ‘nationality’ property I realised that I now had some duplication in the model:

2016 05 22 10 15 15

players.nationality and clubs.country are referring to the same countries but they’ve both got them stored as strings so we can’t ensure the integrity of our countries and ensure that we’re referring to the same country.

We have the same issue in the graph model as well:

2016 05 22 10 40 40

This time Player.nationality and Club.country refer to the same countries.

We can solve our problem by introducing a countries table in the relational model and a set of nodes with a ‘Country’ label in the graph model. Let’s start with relational.

This is the model we’re driving towards:

2016 05 22 10 50 43

The first thing we need to do is create a countries table and populate it:

CREATE TABLE countries (
    "code" CHARACTER VARYING(3) NOT NULL PRIMARY KEY,
    "name" CHARACTER VARYING(50) NOT NULL
);
INSERT INTO countries VALUES('MNE', 'Montenegro');
INSERT INTO countries VALUES('SWZ', 'Swaziland');
...

Next let’s update the clubs table to reference the countries table:

ALTER TABLE clubs
ADD COLUMN country_id CHARACTER VARYING(3)
REFERENCES countries(code);

And let’s run a query to populate that column:

UPDATE clubs AS cl
SET country_id = c.code
FROM clubs
INNER JOIN countries AS c 
ON c.name = clubs.country
WHERE cl.id = clubs.id;

This query iterates over all the clubs, queries the country table to find the country id for that row and then stores it in the ‘country_id’ field. Finally we can remove the ‘country’ field:

ALTER TABLE clubs
DROP COLUMN country;

Now we do the same drill for the players table:

ALTER TABLE players
ADD COLUMN country_id CHARACTER VARYING(3)
REFERENCES countries(code);
UPDATE players AS p
SET country_id = c.code
FROM players
INNER JOIN countries AS c 
ON c.name = players.nationality
WHERE p.id = players.id;
ALTER TABLE players
DROP COLUMN nationality;

Now it’s time for the graph. This is the model we want to get to:

2016 05 22 10 51 49

First we’ll create the countries:

CREATE CONSTRAINT ON (c:Country)
ASSERT c.id IS UNIQUE
LOAD CSV WITH HEADERS FROM "file:///countries.csv"
AS row
MERGE (country:Country {id: row.countryCode})
ON CREATE SET country.name = row.country

And now let’s get clubs and players to point at those countries nodes and get rid of their respective nationality/country properties:

MATCH (club:Club)
MATCH (country:Country {name: club.country})
MERGE (club)-[:PART_OF]->(country)
REMOVE club.country
MATCH (player:Player)
MATCH (country:Country {name: player.nationality})
MERGE (player)-[:PLAYS_FOR]->(country)
REMOVE player.nationality

And that’s it, we can now write queries against our new model.

Categories: Blogs

Neo4j vs Relational: Refactoring – Add a new field/property

Mark Needham - Sun, 05/22/2016 - 11:09

A couple of months ago I presented a webinar comparing how you’d model and evolve a data model using a Postgres SQL database and Neo4j.

This is what the two data models looked like after the initial data import and before any refactoring/migration had been done:

Relational

2016 05 22 09 49 23

Graph

2016 05 22 09 52 16

I wanted to add a ‘nationality’ property to the players table in the SQL schema and to the nodes with the ‘Player’ label in the graph.

This refactoring is quite easy in both models. In the relational database we first run a query to add the ‘nationality’ field to the table:

ALTER TABLE players 
ADD COLUMN nationality VARYING(30);

And then we need to generate UPDATE statements from our data dump to update all the existing records:

UPDATE players 
SET nationality = 'Brazil'
WHERE players.id = '/aldair/profil/spieler/4151';
 
...

In the graph we can do this in a single step by processing our data dump using the LOAD CSV command and then setting a property on each player:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///transfers.csv" AS row
MATCH (player:Player {id: row.playerUri})
SET player.nationality = row.playerNationality

If we wanted to make the nationality field non nullable we could go back and run the following queries:

ALTER TABLE players 
ALTER COLUMN nationality SET NOT NULL
CREATE CONSTRAINT ON (player:Player) 
ASSERT exists(player.nationality)

And we’re done!

Categories: Blogs

"Tealing" The Capitol using Holacracy, Lean and Scrum

Xebia Blog - Sat, 05/21/2016 - 22:45
Something absolutely revolutionary (or should I say evolutionary) is currently unfolding @WaTech. This CIO-department of the State of Washington is transforming towards the first Teal governmental organization in the US and perhaps even worldwide. Invited by initiator CIO deputy Michael DeAngelo, Joe Justice and I visited the WaTech offices in Olympia to observe and coach
Categories: Companies

SAFe Economic Articles refactored

Agile Product Owner - Fri, 05/20/2016 - 21:22

Hi Folks,

We’ve been taking a pass through the nine SAFe Lean-Agile Principles articles with an eye towards continuous improvement, and also to better align these critical articles with the courseware that depends on them. After all, without firm principles, even a good framework doesn’t have a solid foundation to stand on.

One of the first orders of business was the restructuring of Principle #1 – Take an economic view, and its partner article (and big picture icon) Economic Framework.  These have now been refactored to better separate the principles (Economic view) from the practices (Economic Framework).

I think they are better then they were.

Stay SAFe!

—Dean

Categories: Blogs

Discovery Projects Work for Agile Contracts

Johanna Rothman - Fri, 05/20/2016 - 17:50

Marcus Blankenship and I wrote an article, Stay Agile with Discovery, to discuss how to help your clients see the benefits of working in an agile or more agile way.

We have seen too many clients want “agile” and not want all the responsibilities that being a Product Owner or customer involves. If your client asks you to be agile and then demands you estimate “everything” and provide a fixed cost, fixed scope “agile” contract, you don’t have to say, “NO.”

You can say, let’s try a discovery project so we (as the provider) can explore what it would take to do “everything.” As we finish this first discovery project, where we will provide working product, you can provide us feedback. Based on that feedback, we might do another discovery project. In fact, you can work in month-long (or two-week long) discovery projects all the way through. Your client can ask for changes that you incorporate into the next discovery.

That’s just one way to help people learn about collaboration and resilience over contracts and guarantees.

If you are a Product Owner or a person who represents the customer, you might like our Practical Product Owner workshop.

Categories: Blogs

What’s The Purpose Of A Job Interview?

Derick Bailey - new ThoughtStream - Fri, 05/20/2016 - 13:30

If you’ve ever done a job interview with the explicit goal of “get the job” – as we all have – you’ve already failed.

I know it’s not easy to hear that. It has been incredibly difficult to admit it for myself! But the purpose of a job interview isn’t what you think. It’s not about getting the job.

So… what is the purpose, then?

Find out in this episode of ThoughtsOnCode.

Categories: Blogs

Knowledge Sharing


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