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!
Software Development Blogs: Programming, Software Testing, Agile Project Management
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!

You know your product is doing well when most of your early blog posts deal with the status of the waiting list of hundreds of thousands of users eagerly waiting to download your product. That's the enviable position Mailbox, a free mobile email management app, found themselves early in their release cycle.
Hasn't email been done already? Apparently not. Mailbox scaled to one million users in a paltry six weeks with a team of about 14 people. As of April they were delivering over 100 million messages per day.
How did they do it? Mailbox engineering lead, Sean Beausoleil, gave an informative interview on readwrite.com on how Mailbox planned to scale...
I was talking with a colleague recently about the following question:
“How do you accelerate business value?”
One of the key challenges in today’s world is accelerating business value. If you’re implementing solutions, the value doesn’t start to get realized until users actually start to use the solution.
THAT’s actually the key insight to help you accelerate business value.
It’s adoption.
When you are planning, if you want to accelerate business value, then you need to think in terms of pushing costs out, and pulling benefits in. How can you start throwing off benefits earlier, and build momentum?
With that in mind, you have three ways to accelerate business value:
Before you roll out a solution, you should know the set of user scenarios that would deliver the most business benefits.
Keep in mind benefits will be in the eyes of the stakeholders.
If the sequence is a long cycle, and the adoption curve is way out there, and benefits don’t start showing up until way downstream, that’s a tough sell. And, it puts you at risk. These days, people need to see benefits showing up within the quarter, or you have a lot of explaining to do.
1. Accelerate Business AdoptionSo one of the ways to accelerate business value is to accelerate adoption. There are many change frameworks, change patterns, strategies and tactics for driving change. Remember though that it all comes down to behavior change and changing behaviors. If you want to succeed in driving change in today’s world, then work on your change leadership skills.
This approach is about doing the right things, faster.
2. Re-Sequence the ScenariosAnother way to accelerate business value is to re-sequence the scenarios. If your big bang is way at the end (way, way at the end), no good. Sprinkle some of your bangs up front. In fact, a great way to design for change is to build rolling thunder. Put some of the scenarios up front that will get people excited about the change and directly experiencing the benefits. Make it real.
The approach is about putting first things first.
3. Identify Higher Value ScenariosThe third way to accelerate business value is to identify higher-value scenarios. One of the things that happens along the way, is you start to uncover potential scenarios that you may not have seen before, and these scenarios represent orders of magnitude more value. This is the space of serendipity. As you learn more about users and what they value, and stakeholders and what they value, you start to connect more dots between the scenarios you can deliver and the value that can be realized (and therefore, accelerated.)
This approach is about trading up for higher value and more impact.
If you need to really show business impact, and you want to be the cool kid that has a way of showing and flowing value no matter what the circumstances, keep these strategies and tactics in mind.
The landscape will only get tougher, so the key for you is to get smarter and put proven practices on your side.
People that know how to accelerate business value will float to the top of the stack, time and again.
You Might Also Like10 Big Ideas from Getting Results the Agile Way
10 Ways to Make Agile Design More Effective
Agile Methodology in Microsoft patterns & practices
How We Adhered to the Agile Manifesto on the patterns & practices team
“We must become the change we want to see.” – Mahatma Gandhi
I’m a fan of continuous learning and skills development. The challenge, though, aside from figuring out which training is worth it, is to first and foremost build a foundation that makes all the rest of your training actually worth it.
The key is to first build a rapid learning foundation that helps you absorb all the other training in a more effective way.
I’ve wasted a lot of money over the years testing and trying out various programs that made great promises. But, during my trials, I’ve also found programs that really do produce outstanding results. Of course, like anything, you get what you put into it, but some personal development programs are clearly based on better principles, patterns, and practices.
That’s the gold, and we have to dig deep to find it among the sea of mediocre personal development programs.
Just last night, I was sharing with a friend, how to read 10,000 words a minute (I’m not there, yet.) I was explaining the process of training to read without subvocalizing (which slows us down, big time … after all, you don’t want the voice in your head to sound like a chip monk, but you don’t actually have to internally vocalize words for your mind to absorb the content.) Another key is developing high speed imaging skills, where you glance at information and absorb it. Again, this doesn’t come naturally to most people so you need to train for it.
I realized this personal development program alone has paid me back so many times in so many ways and saved me so much time over the years, whether it’s processing email or devouring books. I shared with my friend that I don’t have a lot of time to read books, but I’ll use a few hours to read 3-5 books a week, as well as often write up in-depth reviews. He was amazed, and commented that he’s got a large book pile that he’d like to chomp through.
That’s just one of my secrets that has helped me leap frog in terms of rapid learning and saving massive amounts of time on a daily basis, and being to use my brain for other things than getting mired in walls of text.
But there are more.
In fact, today I decided to share 3 personal development programs that give you an edge in work and life. I’ll bottom line it for you here, that the three personal development programs are 1) Personal Power, by Tony Robbins, 2) The Personal Mastery Program, by Srikumar S. Rao, and 3) Lead the Field, by Earl Nightingale.
In my write up, I shared quick stories on how each of them has helped me gain specific advantages in work and life. In fact, some almost seem like unfair advantages because of the results they produced.
If you are looking to find the difference that makes the difference, or get an extreme advantage in our ultra-competitive world, then these 3 personal development programs should really help you out.
BTW – here is a tip that I often share when it comes to competition. While you can draw inspiration from your “competition,” the best way to compete is to actually compete with yourself. Whether that means pursuit a path of relentless excellence, or simply pushing yourself to higher ground, that’s where your breakthroughs happen.
Here’s to you and your ability to be awesome at life.
I wanted to get started with Javascript and AngularJS, a framework for creating frontend for apps – e.g. human user interfaces. Reason: software is eating the world, but Javascript is eating all software.
I don’t like the messy javascript approach of downloading js files storing them manually in your project-dir, or worse, copy&pasting snippets. I’m used to programming Java, with using Maven to manage my Java-dependencies, and using brew (Mac) or apt-get (Ubuntu) to manage platform-specific dependencies. In this posting all write down my experiences on starting with Javascript-development, with practical use of package managers.
Package management in JavascriptAngularJS as well as lots of other Javascript-frameworks, including well-known ones as jquery, can be installed via a package manager, bower. Bower is a simple and light-weight package manager for the web .
The first challenge I had, how do I install bower? The website of bower mentions npm, a package manager combined with NodeJS.
NodeJS is a Javascript-engine, the same engine as that is used in Chrome. npm is the package manager that’s installed with it. Npm and bower have overlapping functionality but they’re different enough to use both: npm main purpose is installing server-side javascript-components, to be used with NodeJS. Bower’s purpose is installing client-side javascript-components to be used in a web-browser (more information at Stackoverflow).
Then, how do I install node? Of course I want to use a package manager, but since node is compiled per platform (it can’t be turtles all the way down) we have to use the package manager per platform. If you’re using Linux you most likely will be familier with Yum (Redhat, CentOS) or the apt-get (Debian, Ubuntu) . Typing:
sudo yum install node
or
sudo apt-get install node
is enough to install node.
Note: I’ve added sudo to every command because you’ll need root/admin rights to install the application.
I’m currently using a mac, and then the best package manager to use is Homebrew. It’s not installed by default, but if you go the Homebrew website you’ll have the tool up and running quickly.
After that I can install node via:
brew install node
I don’t use sudo: brew only stores files in /usr/local and I’ve set that directory to be writeable for admin-users. If you think that’s a security risk, you shouldn’t use brew at all.
If you’re a Windows use, you can use nu-get to install nodejs, but I don’t have experience with that tool yet.
If you don’t want to use any package-manager, then install node the more traditional way by downloading the installation package from the Node.js website.
Now node is installed I can use npm to install bower:
npm install bower
With have bower installed, I can fetch angularjs.
First I’ll create a directory where my application can reside, then I’ll use bower to add angular to my application.
mkdir workspace/MyNewapp bower init bower install angular
The angular library is now available in the directory I’ve just created. The angular.js file can be included just as you’d normally include js files.
<head> <script src="components/angular/angular.js"></script> </head>
The components contains all the js files used by the applications. If you delete the directory, executing bower install will reconstruct the whole directory based on the bower.json file, so that’s the only file that we need to check to get our libraries.
Instead of including the js-files by manually adding the script src statements, you can also frameworks such as require to require.js to dynamically load javascript files, but that’s beyond the scope of this article.
Javascript will not have eaten all my software yet. Quite a few applications will have backend written as a Java webaplication (.war), build using Maven, with the frontend being Javascript. Here bower can bower help to keep the project maintainable: rather then checking in the javascript-libraries into the src/main/webapp directory, the bower build file bower.json could be checked into source control. Using the exec-maven-plugin you can easily execute bower as part of your regular Maven-build. This way there’s no need to check Javascript-files in subversion, git or any other version-control-system!
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>bower</executable>
<arguments>
<argument>install</argument>
</arguments>
<workingDirectory>${basedir}/src/main/webapp</workingDirectory>
</configuration>
</plugin>
...
A Javascript build framework: Yeoman
No code is complete, without automatic tests and/or validation. In Maven that’s just a step in the build-process. Furthermore, although Javascript is an interpreted language and therefor now compile-step is needed, you still might want to do some post-processing of your javascript application. This could be possible in Maven, but using a Javascript-build-framework (which you could trigger from Maven just as well) might be more versatile. Yeoman seems a good start. Given the feature-set, Yeoman and Javascript-build-tools in general are worth a whole new post so I won’t dive into that further.
An IDENow I want to code in a IDE as good as Eclipse. I’d certainly want code-completion, and automatic checks of my source-code on types, synax and similar errors. Based on experience and hear-say, IntelliJ is very good Javascript support. Also Sublime is a good editor. Eclipse can be used to even, using various plugins. I have not enough experience with any of those IDEs to be able to recommend anything yet.
ConclusionAs a Java-developer and Maven-user I’m used to using package managers to automatically download libraries. With the current state of Javascript, this way of working is still possible when developing Javascript-web-application. So the increasing popularity of Javascript is not as bad as it seems.
The complete project I’ve created while writing this posting is available at my public github-account.

Don't miss all that the Internet has to say on Scalability, click below and become eventually consistent with all scalability knowledge...
This week we released some great updates to Windows Azure that make it significantly easier to develop mobile applications that use the cloud. These new capabilities include:
All of these improvements are now available to use immediately (note: some are still in preview). Below are more details about them.
Mobile Services: Custom APIs, Git Source Control, and NuGetWindows Azure Mobile Services provides the ability to easily stand up a mobile backend that can be used to support your Windows 8, Windows Phone, iOS, Android and HTML5 client applications. Starting with the first preview we supported the ability to easily extend your data backend logic with server side scripting that executes as part of client-side CRUD operations against your cloud back data tables.
With today’s update we are extending this support even further and introducing the ability for you to also create and expose Custom APIs from your Mobile Service backend, and easily publish them to your Mobile clients without having to associate them with a data table. This capability enables a whole set of new scenarios – including the ability to work with data sources other than SQL Databases (for example: Table Services or MongoDB), broker calls to 3rd party APIs, integrate with Windows Azure Queues or Service Bus, work with custom non-JSON payloads (e.g. Windows Periodic Notifications), route client requests to services back on-premises (e.g. with the new Windows Azure BizTalk Services), or simply implement functionality that doesn’t correspond to a database operation. The custom APIs can be written in server-side JavaScript (using Node.js) and can use Node’s NPM packages. We will also be adding support for custom APIs written using .NET in the future as well.
Creating a Custom API
Adding a custom API to an existing Mobile Service is super easy. Using the Windows Azure Management Portal you can now simply click the new “API” tab with your Mobile Service, and then click the “Create a Custom API” button to create a new Custom API within it:
Give the API whatever name you want to expose, and then choose the security permissions you’d like to apply to the HTTP methods you expose within it. You can easily lock down the HTTP verbs to your Custom API to be available to anyone, only those who have a valid application key, only authenticated users, or administrators. Mobile Services will then enforce these permissions without you having to write any code:
When you click the ok button you’ll see the new API show up in the API list. Selecting it will enable you to edit the default script that contains some placeholder functionality:
Today’s release enables Custom APIs to be written using Node.js (we will support writing Custom APIs in .NET as well in a future release), and the Custom API programming model follows the Node.js convention for modules, which is to export functions to handle HTTP requests.
The default script above exposes functionality for an HTTP POST request. To support a GET, simply change the export statement accordingly. Below is an example of some code for reading and returning data from Windows Azure Table Storage using the Azure Node API:
After saving the changes, you can now call this API from any Mobile Service client application (including Windows 8, Windows Phone, iOS, Android or HTML5 with CORS).
Below is the code for how you could invoke the API asynchronously from a Windows Store application using .NET and the new InvokeApiAsync method, and data-bind the results to control within your XAML:
private async void RefreshTodoItems() {
var results = await App.MobileService.InvokeApiAsync<List<TodoItem>>("todos", HttpMethod.Get, parameters: null);
ListItems.ItemsSource = new ObservableCollection<TodoItem>(results);
}
Integrating authentication and authorization with Custom APIs is really easy with Mobile Services. Just like with data requests, custom API requests enjoy the same built-in authentication and authorization support of Mobile Services (including integration with Microsoft ID, Google, Facebook and Twitter authentication providers), and it also enables you to easily integrate your Custom API code with other Mobile Service capabilities like push notifications, logging, SQL, etc.
Check out our new tutorials to learn more about to use new Custom API support, and starting adding them to your app today.
Mobile Services: Git Source Control SupportToday’s Mobile Services update also enables source control integration with Git. The new source control support provides a Git repository as part your Mobile Service, and it includes all of your existing Mobile Service scripts and permissions. You can clone that git repository on your local machine, make changes to any of your scripts, and then easily deploy the mobile service to production using Git. This enables a really great developer workflow that works on any developer machine (Windows, Mac and Linux).
To use the new support, navigate to the dashboard for your mobile service and select the Set up source control link:
If this is your first time enabling Git within Windows Azure, you will be prompted to enter the credentials you want to use to access the repository:
Once you configure this, you can switch to the configure tab of your Mobile Service and you will see a Git URL you can use to use your repository:
You can use this URL to clone the repository locally from your favorite command line:
> git clone https://scottgutodo.scm.azure-mobile.net/ScottGuToDo.git
Below is the directory structure of the repository:
As you can see, the repository contains a service folder with several subfolders. Custom API scripts and associated permissions appear under the api folder as .js and .json files respectively (the .json files persist a JSON representation of the security settings for your endpoints). Similarly, table scripts and table permissions appear as .js and .json files, but since table scripts are separate per CRUD operation, they follow the naming convention of <tablename>.<operationname>.js. Finally, scheduled job scripts appear in the scheduler folder, and the shared folder is provided as a convenient location for you to store code shared by multiple scripts and a few miscellaneous things such as the APNS feedback script.
Lets modify the table script todos.js file so that we have slightly better error handling when an exception occurs when we query our Table service:
todos.js
tableService.queryEntities(query, function(error, todoItems){
if (error) {
console.error("Error querying table: " + error);
response.send(500);
} else {
response.send(200, todoItems);
}
});
Save these changes, and now back in the command line prompt commit the changes and push them to the Mobile Services:
> git add .
> git commit –m "better error handling in todos.js"
> git push
Once deployment of the changes is complete, they will take effect immediately, and you will also see the changes be reflected in the portal:
With the new Source Control feature, we’re making it really easy for you to edit your mobile service locally and push changes in an atomic fashion without sacrificing ease of use in the Windows Azure Portal.
Mobile Services: NPM Module SupportThe new Mobile Services source control support also allows you to add any Node.js module you need in the scripts beyond the fixed set provided by Mobile Services. For example, you can easily switch to use Mongo instead of Windows Azure table in our example above. Set up Mongo DB by either purchasing a MongoLab subscription (which provides MongoDB as a Service) via the Windows Azure Store or set it up yourself on a Virtual Machine (either Windows or Linux). Then go the service folder of your local git repository and run the following command:
> npm install mongoose
This will add the Mongoose module to your Mobile Service scripts. After that you can use and reference the Mongoose module in your custom API scripts to access your Mongo database:
var mongoose = require('mongoose');
var schema = mongoose.Schema({ text: String, completed: Boolean });
exports.get = function (request, response) {
mongoose.connect('<your Mongo connection string> ');
TodoItemModel = mongoose.model('todoitem', schema);
TodoItemModel.find(function (err, items) {
if (err) {
console.log('error:' + err);
return response.send(500);
}
response.send(200, items);
});
};
Don’t forget to push your changes to your mobile service once you are done
> git add .
> git commit –m "Switched to use Mongo Labs"
> git push
Now our Mobile Service app is using Mongo DB!
Note, with today’s update usage of custom Node.js modules is limited to Custom API scripts only. We will enable it in all scripts (including data and custom CRON tasks) shortly.
New Mobile Services NuGet package, including .NET 4.5 supportA few months ago we announced a new pre-release version of the Mobile Services client SDK based on portable class libraries (PCL).
Today, we are excited to announce that this new library is now a stable .NET client SDK for mobile services and is no longer a pre-release package. Today’s update includes full support for Windows Store, Windows Phone 7.x, and .NET 4.5, which allows developers to use Mobile Services from ASP.NET or WPF applications.
You can install and use this package today via NuGet.
Mobile Services and Web Sites: Free 20MB Database for Mobile Services and Web SitesStarting today, every customer of Windows Azure gets one Free 20MB database to use for 12 months free (for both dev/test and production) with Web Sites and Mobile Services.
When creating a Mobile Service or a Web Site, simply chose the new “Create a new Free 20MB database” option to take advantage of it:
You can use this free SQL Database together with the 10 free Web Sites and 10 free Mobile Services you get with your Windows Azure subscription, or from any other Windows Azure VM or Cloud Service.
Notification Hubs: Android Broadcast Push Notification SupportEarlier this year, we introduced a new capability in Windows Azure for sending broadcast push notifications at high scale: Notification Hubs.
In the initial preview of Notification Hubs you could use this support with both iOS and Windows devices. Today we’re excited to announce new Notification Hubs support for sending push notifications to Android devices as well.
Push notifications are a vital component of mobile applications. They are critical not only in consumer apps, where they are used to increase app engagement and usage, but also in enterprise apps where up-to-date information increases employee responsiveness to business events. You can use Notification Hubs to send push notifications to devices from any type of app (a Mobile Service, Web Site, Cloud Service or Virtual Machine).
Notification Hubs provide you with the following capabilities:
It is easy to configure Notification Hubs to send push notifications to Android. Create a new Notification Hub within the Windows Azure Management Portal (New->App Services->Service Bus->Notification Hub):
Then register for Google Cloud Messaging using https://code.google.com/apis/console and obtain your API key, then simply paste that key on the Configure tab of your Notification Hub management page under the Google Cloud Messaging Settings:
Then just add code to the OnCreate method of your Android app’s MainActivity class to register the device with Notification Hubs:
gcm = GoogleCloudMessaging.getInstance(this);
String connectionString = "<your listen access connection string>";
hub = new NotificationHub("<your notification hub name>", connectionString, this);
String regid = gcm.register(SENDER_ID);
hub.register(regid, "myTag");
Now you can broadcast notification from your .NET backend (or Node, Java, or PHP) to any Windows Store, Android, or iOS device registered for “myTag” tag via a single API call (you can literally broadcast messages to millions of clients you have registered with just one API call):
var hubClient = NotificationHubClient.CreateClientFromConnectionString(
“<your connection string with full access>”,
"<your notification hub name>");
hubClient.SendGcmNativeNotification("{ 'data' : {'msg' : 'Hello from Windows Azure!' } }", "myTag”);
Notification Hubs provide an extremely scalable, cross-platform, push notification infrastructure that enables you to efficiently route push notification messages to millions of mobile users and devices. It will make enabling your push notification logic significantly simpler and more scalable, and allow you to build even better apps with it.
Learn more about Notification Hubs here on MSDN .
SummaryThe above features are now live and available to start using immediately (note: some of the services are still in preview). If you don’t already have a Windows Azure account, you can sign-up for a free trial and start using them today. Visit the Windows Azure Developer Center to learn more about how to build apps with it.
Hope this helps,
Scott
P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu
Tuesday June 4th, Xebia organized the XebiCon event in Fort Voordorp in The Netherlands. One of our visitors, Dirk Louwers, wrote a conference report which nicely summarizes the day. Dirk Louwers works as CTO for a company called Plot. XebiCon consisted of two keynotes and 15 sessions divided over five parallel tracks. Dirk Louwers reports on both keynotes and three of the parallel sessions.
You can read Dirk Louwer’s report at Plot Visits XebiCon
Thanks to Dirk Louwers for publishing this article!
Jumping out of a perfectly good airplane, while in flight, without a parachute is generally not recommended. Strangely, it’s exactly what happens in a lot of corporate lean/agile transformations. People jump enthusiastically, enjoying the rush of sudden speed and the exhilaration of getting things done as a team, only to discover organizational gravity when they hit rock bottom.
If only we knew how to fly. In his acclaimed survival manual “The Hitchhiker’s Guide To The Galaxy,” Douglas Adams points out that there is an art, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss.
To be able to do that, you need power. And for that, you need to know a little bit about how to get it. You need to know about politics.
The political economy of lean transformationsTalking about the political economy of lean/agile transformations always brings a smile to my face. As a political economist turned computer programmer, turned delivery manager, turned project manager, and ultimately turned management consultant, I can talk for hours about this and not get bored.
Don’t worry though, I’ll give you the short summary. The very short summary in fact: All politics is a struggle for power. The political economy of lean/agile transformations then, looks at the effects of the redistribution of power in an organization.
Now, there’s something special about power. To speak with Rosabeth Moss Kanter: “Power is a dirty word. It is easier to talk about money and much easier to talk about sex than it is to talk about power. People who have it deny it; People who want it do not want to appear to hunger for it; And people who engage in its machinations do so secretly.”
Let’s open up about power for a bit. And while we’re at it, let’s lighten up about power as well.
And let’s begin with the end in mind: To learn what you need to know about power to become a more effective change agent, you don’t have to read Machiavelli. You just have to read this book: “Power, Why Some People Have It – And Others Don’t,” by Jeffrey Pfeffer. In that book, the Stanford Professor of Organizational Behavior provides ten tips to help you wield power like a Jedi with a light saber:
Why should you learn about power? You should learn about power for three reasons:
But there is another reason companies are remarkably resistant to change. This has to do with organizational gravity.
The concept of organizational gravityThe concept of organizational gravity comes from Mike Cohn. In his book “Succeeding With Agile,” Cohn describes the tendency of an organization to slowly, but surely, veer back to it’s original state. Old habits die hard.
Organizations are structured to maintain the status quo. To escape that, you have to exert a lot of power. The larger the organization, the more power you’ll have to exert. If you don’t exert enough power, whatever you launched will either come crashing down or at best achieve orbit.
Some real life examplesLet’s talk about some real life examples for a minute.
Way back when I was still a Project Manager struggling to convince management that an agile way of working would yield better results, I got called into the office of the head of Project Management. He showed me a letter from one of our most important clients. The letter said we would loose the contract if we did not improve within three months. “That’s your assignment,” the head of Project Management told me, “do whatever it takes to make it right so we don’t loose the client.” And I did. What it took, was some remedial team building and the introduction of an agile way of working. Within six months, the client sent us another letter. This time, it was a signed reference for marketing purposes. A dramatic reversal of customer satisfaction! All thanks to adopting an agile way of working. They kept improving on that way of working after I left and today have a rock solid reputation for delivering high quality software to millions of users. This then, is an example of an organization truly overcoming organizational gravity.
More recently, I consulted with a company that wanted to deliver faster, more relevant software to production with higher quality at lower cost. They’d done a lean transformation already, and asked us to do an agile one as well. So we did. And it was a success! We helped the client create multiple agile teams simultaneously working on the same technology stack and worked with management to introduce a governance structure feeding those teams with a single corporate backlog. And then, the financial crisis hit home. The company had to cut costs fast. So they did the now obvious thing: They asked their agile teams for help. And the teams told management to fire half of them. So they did! How about that? You ask the turkey what to have for dinner for Christmas and his advice is to have turkey! That was the level of understanding the teams had gained from adopting an agile way of working. But, there’s a sad end to this story. The shift from continuous improvement to cost-cutting, that is from Eastern lean to Western lean, destroyed employee loyalty to the company. The first to go off to greener pastures were the managers and team members instrumental in the initial change. Then, organizational gravity hit hard. Last I heard, the teams are being told what to do by management and have stopped thinking for themselves. Apparently, overcoming organizational gravity is not enough, you have to keep at it to avoid falling back down.
Overcoming organizational gravitySo, how do you overcome organizational gravity? And how can you make sure you keep at it to avoid falling back down?
Speed is essential. The faster you go, the faster you’ll show results. The more results you show, the easier it is to maintain momentum and push for a real and lasting change. Also, speed sharpens your focus and facilitates flow. It hightens your senses and prevents you from cruising along without paying close attention to what you’re doing. Just like driving a supercar on a racetrack.
Trouble is, you’re not actually on a racetrack in a corporate lean/agile transformation. For starters, there usually a lot more cars on the road. And they’re not all supercars. They drive at different speeds. Worse, they follow different rules. Worse still, they might not be going in the same direction.
So a corporate lean/agile transformation is more like driving a supercar through heavy cross-town traffic. If you want to do that at speed, it’s hard to keep going without accidents. It’s impossible to do that without breaking the rules.
Breaking the rules is essential. Or rather, using and bending the rules so they work in your favor. To cut through cross-town traffic in a supercar at speed, all you need is flashing lights, a siren, and a badge. In a corporate setting, that’s a sense of urgency, vocal executive support, and power. However, if you’re using and bending the rules in your favor, you’d better have a good reason and a great sense of direction. If not, you’ll lose popular support really quickly.
Navigation is essential. If you don’t know where you’re going, any road’ll take you there. So you have to know where you’re going. Or rather, where you currently want to go. And then get everyone to go along. A great and proven way to do just that on all levels in a corporate setting is applying Toyota Kata:
What we call lean/agile today, resulted in large part from answering those five questions consistently over time. As Mike Rother points out in his book “Toyota Kata,” the roots of Toyota’s success lie not in its organizational structures, but in developing capability and habits in its people. The competitive advantage of an organization lies not so much in the solutions themselves, but in the ability to understand conditions and create fitting smart solutions.
This points to an important, and in my opinion sorely missed, addition to the Agile Manifesto:
Experimentation over implementation.
Do something. See if it works. If it does, do more of that. If it doesn’t, do something else. As opposed to think of something. Talk about it. Talk about it some more. Then talk about something else.
If you don’t go fast, break the rules, and navigate like a pro, you’re likely to go SPLAT! Avoiding a Surprisingly Painful Lean/Agile Transformation (SPLAT), is hard work.
It’s hard work to keep up the pace. In a truly lean/agile organization, you’re not just sprinting, you’re doing back-to-back sprints without stopping. It’s more like a marathon. Actually it’s more like an ultra. To be able to do that, you must want it badly. And you must train. A lot.
It’s hard to break the rules. Sometimes, this may get you fired. Like in the story Brian Marick likes to tell about a certain Scrum Master:
But they could have just as well taken her up on her offer and fired her.
Hard work, hard work, hard work. Are there really no shortcuts? Well, no, not really. But you can speed things up a bit. Quite a bit in fact. Let’s have a look at some of these “wormholes.”
Wormholes to the rescueA wormhole, or Einstein-Rosen bridge, is a shortcut through spacetime, much like a tunnel with two ends each in separate points in spacetime.
Start your lean/agile transformation small, but make sure to select a really important project. Preferably one with lots of risk and high pressure. This will allow you to start fracking the organization releasing the hidden energy reserves encased within.
Propose a ship-it day to show everyone the power of self-organization. Ship-it days are a fun way to foster creativity, allow people to scratch itches and get radical. They’re also a wake-up call to management showing them what happens if they stop holding people back.
No one in their right minds should be against the disciplined application of common sense. And that’s exactly what lean/agile is. In other words: Just do it. So if you can’t get anyone to approve your lean/agile transformation effort, remember it’s more blessed to ask forgiveness than permission. Get going, kickstart a never-ending cycle of continuous improvement, and merrily deal with whatever impediments you encounter to getting things done. Results don’t lie!
So, now for constructing your parachute on they way down to overcome organizational gravity. You jump in without a parachute. How do you avoid hitting rock bottom? I have seven tips for you to help you do that.
7 powertips for smartiesDo your cause and yourself a favor, and learn about power. Be mindful of organizational gravity and use any means possible to overcome it, be it the smart use of power, plain-old hard work, or a shortcut. If you can’t beat them, or join ‘em and then beat them from within, run! Apply for a job at Semco, Google, or Toyota, to name just a few truly lean companies. Or start your own. Don’t settle for less! You deserve to work at an awesome company!
This blogpost completes the model that I use to build up a mental image of a new crisis situation when I encounter one. I use it to structure and prioritize the thousands of pieces of new information that I need to process in order to get a good picture of what I’m dealing with. In fact it is a tool to get a fast and useful insight in the current crisis situation that will help me to consolidate all the different inputs into a combined and useful image of what’s going on. This image helps me to communicate with the stakeholders and to define the actions needed.
In my previous post the fundamentals of the model have been explained.
In this post the rest of the mental image usage is described.
Remember the essence of the first blogpost:
A strong temple is built upon solid ground and a strong foundation; likewise a successful project is built upon engaged project members and clear responsibility.
When you want to assess a project, start with investigating engagement and responsibility. To do this, look at two things
Use the questions above to assess the fundamentals of a solution to any crisis.
Haha! Fundamentals are great, but not everything; So let’s move on!
PART III: THE TEMPLE FLOOR – A working value chain
Have you ever been in a real temple? The first thing that strikes you is the awesomeness of the beautiful floor. It’s that awesome floor that takes your breath away and makes you fall in love with this ancient piece of art The beauty of a successful project lies in the elegant effectiveness of a working valuechain, in two dimensions: the functional product dimension and the dimension of virtual ownership.
Looking at a value chain from a Functional point of view means, you have to get the minimal product working end-2-end. Once this is done, things can only get better.
Creating your mental picture of this area can take some effort. Domain knowledge is helpful, so talk to people who have it and look at the project history together. The product owner is a good place to start. Have a look at the storymap and if there is none, make one. You could also draw out end-2-end user interaction scenarios with the product owner. Start with the “happy flow” and once finished look at the features in it already built and what has to be added. Find out what’s holding the project back from completing an end-2-end value chain.
Example questions that can give you a head start:
Ownership wise, you have to take charge of the valuechain and what happens to it during the course of the project. If your program runs on shared environments, like sharing test or acceptance environments with other projects, find out what is the priority for your program. From there on implement some form of flight control mechanism. On shared environments the case is often that operations is expecting the supplying party to coordinate, and the supplying party is expecting the operations to coordinate. Result is a big mess you need to clean up.
To get an image of what’s going on, talk to Operations. See how often ops has issues when deploying and were they originate from. Of course it goes without saying that this point in your model gets more important and complex the more third party vendors are in acting in your value chain.
Questions I like to use to get my head around this part of the model:
PART IV: Four majestic pillars that support the roof
There are four pillars that support the roof of our temple:
1. Create a single managed backlog:
It is imperative to have a single managed backlog. Derailed projects often show a myriad of specs and priorities across the entire program and strange constructs to manage these. Get the whole thing back to a single product owner and concrete priorities. Work out the backlog in rapid design workshops for at least the next release and estimate this with the entire team. To find out if productowners are aligned and focused, check if there is a single backlog or storymap in place together with a sort of chief product owner. Also check if the chief has a clear vision on the product (especially the bare minimal viable product) and the mandate to make decisions accordingly. A good second indicator is to see whether or not productowners are discussing central release goals instead of their own. How often do they jointly check if these central goals are going to be met? Even when there is a clear central backlog and goals, productowners could still work separately in practice mainly cleaning their own alleys.
2. Know your velocity:
In multi-team programs, it’s often hard to work with velocity across teams if you want to relate this to a centralized release- and/or product backlog. But in a program under pressure, it is imperative that you obtain this information to see what scope you will be able to finish given the circumstances and current delivery speeds. To check what’s happening based on velocity ask how teams do their estimation and who estimates what with regards to the final product. Next to this you can ask what reference point is being used and if this is the same for all teams. In the latter case, you usually see. You may need to adjust- and act on a number of things to make any sense of a common velocity, depending on the answer to the above questions.
3. Work end-2-end:
Planning wise you do not want any loose ends to be lying around. This is a great project risk. Velocity in relation to planning-information is only worth anything, when based on end-2-end results from the teams. So from requirement to production (ready) products. To check if the teams and the program as a whole is working end-2-end each sprint, look at program planning phases and talk to program and project managers. They might reveal that they want to do other test types after “development” work is “done”… My rule of thumb is the thinner the definition of done, the more risk is shifted to the end of the program, the harder it will be to mitigate this risk and tame the crisis.
4. Start continuous improvement on the program level in a PTC (Program Transition Community).
I am sure you have all heard of enterprise transition communities or ETC’s. Just like with an agile adoption, taming a project crisis is also not a one-time effort, but a continuous one. Solving all problems in just one go is an illusion. In derailed programs, continuous improvement on program level is often non-existing, and you can’t rely on the self-improvement of individual delivery teams alone. Simple look-ups can improve your mental image. See if there is a program level standup and if issues and impediments are made explicit. See if there is some record available of improvements etc. To see indications of the base to start improving on this level, look at the solve time for impediments not solved within the teams.
PART V: THE ROOF – Prioritized goals and the eternal bliss of: transparent, reliable program results
The pillars hold the roof. The main part of the temple, pointing towards the eternal bliss of transparent, reliable program results. The roof therefor represents the priority in program goals. In many programs in crisis we see, there are multiple program goals trying to be completed at the same time. The goals set by the steering committee have to be streamlined by prioritization. Just like the temple roof is pointy, everything done in the program at any given time should lead to the top priority goal. One goal at a time will keep the focus in the program optimal and guarantee the quickest results. People can still have their own sub-goals, but they should at all time have a direct contribution to the central goal with the highest priority. To get a view on this area, ask the same question to various people in different layers of the program hierarchy; what is our main priority/ goal right now? If your getting different answers there might be a problem (try to ask why to see if the answers lead the same destination), if people are unable to answer, you also have a problem. Also look if you see the goals being properly communicated and repeated. In group sessions, in written meeting minutes and most importantly in peoples workspace.
Conclusion
The first important step to resolve a crisis is to understand its context and situations. Easily said, but not always a simple thing to do. In complex situations, a model that offers a structure for prioritizing information and building up a mental image is of great help. Burms temple is such a model.
Next steps
The next step is to determine what actions need to be done to mitigate the current situation you have modeled using Burms temple. From here you and your client can share and form this common vision into an actionable plan, which will raise you from crisis-mode towards transparent, reliable program results……..
PS thanks again Geert!
"It’s all a numbers game – the dirty little secret of scalable systems"
Martin Thompson is a High Performance Computing Specialist with a real mission to teach programmers how to understand the innards of modern computing systems. He has many talks and classes (listed below) on caches, buffers, memory controllers, processor architectures, cache lines, etc.
His thought is programmers do not put a proper value on understanding how the underpinnings of our systems work. We gravitate to the shiny and trendy. His approach is not to teach people specific programming strategies, but to teach programmers to fish so they can feed themselves. Without a real understanding strategies are easy to apply wrongly. It's strange how programmers will put a lot of effort into understanding complicated frameworks like Hibernate, but little effort into understanding the underlying hardware on which their programs run.
A major tenant of Martin's approach is to "lead by experimental observation rather than what folks just blindly say," so it's no surprise he chose a MythBuster's theme in his talk Mythbusting Modern Hardware to Gain "Mechanical Sympathy." Mechanical Sympathy is term coined by Jackie Stewart, the race car driver, to say you get the best out of a racing car when you have a good understanding of how a car works. A driver must work in harmony with the machine to get the most of out of it. Martin extends this notion to say we need to know how the hardware works to get the most out of our computers. And he thinks normal developers can understand the hardware they are using. If you can understand Hibernate, you can understand just about anything.
The structure of the talk is to take a few commonly held myths and go all MythBusters on them by seeing if they are really true. Along the way there's incredible detail on how different systems work, far too much detail to gloss here, but it's an absolute fascinating talk. Martin really knows what he is talking about and he is a good teacher as well.
The most surprising part of the talk is the counter intuitive idea that many of the devices we think of as random access, like RAM, HDDs, and SSDs, effectively become serial devices in certain circumstances. A disk, for example, is really just a big tape that's fast. It's not true random access. Keep on reading to see why that is...

If any of these items interest you there's a full description of each sponsor below. Please click to read more...

In the moral realm there may be 7 deadly sins, but scalability maven Sean Hull has come up Five More Things Deadly to Scalability that when added to his earlier 5 Things That are Toxic to Scalability, make for a numerologically satisfying 10 sins again scalability:
One of the best books I’ve read lately is, What Keeps Leaders Up at Night, by Nicole Lipkin. I wrote my review at:
What Keeps Leaders Up at Night
The book is all about how to be at your best, when things are at their worst.
By learning a core set of leadership skills and psychology tools, you equip yourself to deal with the tough stuff, no matter what’s going on.
It covers a huge amount of space in terms of psychology theories, terms and related concepts. Here’s a sampling:
Confirmation Bias, Transactional Model of Stress, Social Exchange Theory, Norm of Reciprocity, Extrinsic Motivation, Intrinsic Motivation, Cognitive Dissonance, Group Conformity, Social Identity Theory (SIT), Social Loafing, Collective Effort Model (CEM), Polarization, Groupthink, Shadenfreude.
Lipkin also covers communication styles, stress coping skills, dealing with envy, how to build better group dynamics, how to resolve conflict, how to build better self-perception, how to build constructive core beliefs, and more.
Overall, the book is a great guide on how to keep our cool when things get hot, and Lipkin reminds us that others only see our behavior:
“To paraphrase an old adage, ‘We see ourselves as a combination of our thoughts, fears, and intentions, but others just see our behaviors.’”
Aside from learning how to be more influential, another bonus of the book is that it will help you recognize and label thinking errors and cognitive distortions, which often lead to bad behaviors.
You Might Also Like7 Habits of Highly Effective Program Managers
10 Free Leadership Tools for Work and Life
Leadership Development in a Box
I ran a half-day workshop yesterday at the Software Architecture Summit in Berlin, where we crowdsourced the answers to a number of questions, focussed around why some agile software teams don't think about architecture and how we can change this situation. Of course, much of what we discussed can be applied to *any* team, but the focus was agile here.
1. What is architecture?
2. What is agile?
3. Is architecture important?
4. Why don't some agile teams think about architecture?
5. How can we reintroduce agile teams to architecture?
You can view my slides online. Thanks to everybody that came along, I really enjoyed it.
Hey, it's HighScalability time:

Don't miss all that the Internet has to say on Scalability, click below and become eventually consistent with all scalability knowledge...
I usually don’t post recaps of events in their tweets but since I was unable to do full coverage of the event I have picked out what I thought to be the most influential tweets. Lots of good nuggets from the Gartner analysts along with commentary from myself and other EA’s at the event.
Day One
· Mike Walker (@mikejwalker) - Good advice from Betsey Burton: Time box your EA activities. Ex. Allstate Chief Arch 16 wks. To keep atten. of the biz #entarch #GartnerEA
· Mike Walker (@mikejwalker) - Betsy Burton: business capability should be named <verb> <noun>. Do you agree? Not sure I do, mixing concerns. #entarch #bizarch #GartnerEA
· Mike Walker (@mikejwalker) - Great overview on Business Capabilities by Betsy Burton. Here's a useful BCM I use. #entarch #bizarch #gartnerea http://mikejwalker.typepad.com/.a/6a011279700eb728a4016306b433f8970d-pi …
· Pete G. (@pgrivas) - Beyond a level 0/1 diagram, #ArchiMate seems to me like a great tool to continue on with Business Capability Modeling. Thoughts? #GartnerEA
· Olivier Laquinte (@OLaquinte) - A process model describes how the business operates, while a business capability model describes what the business does #gartnerEA
· Mike Walker (@mikejwalker) - Connecting Strategy to Execution Enablers. More than business capabilities. #entarch #bizarch #gartnerea http://mikejwalker.typepad.com/.a/6a011279700eb728a4017c31f84119970b-pi …
· Brian Oberman (@brianoberman) - Business capabilities modeling bridges the gap between business strategy and IT execution. #GartnerEA
· Mike Walker (@mikejwalker) - Extending #GartnerEA thinking: Connecting Strategy to Execution is more than business capabilities. #entarch #bizarch http://mikejwalker.typepad.com/.a/6a011279700eb728a4017c33f8323e970b-pi …
· Voytek Janisz (@VoytekTheEA) -Business Capability modeling is a great way to bridge communication gap between business and IT #GartnerEA #entarch
· Homero Padilla Cano (@zerkhufu) - “nobody cares about your work, they care about your impact in creating/pushing business outcomes” @ #GartnerEA
· Olivier Laquinte (@OLaquinte) - @brian_burke - since #EA are influencers, should they be on projects steering committees to ensure alignment? #gartnerEA
· Olivier Laquinte (@OLaquinte) - Effectiveness + Efficiency = #EA Impact #gartnerEA
· Olivier Laquinte (@OLaquinte) - Measuring #EA : actions as a result of influence is an impact #gartnerEA
· Fred (@froidianslip) - Change is a team sport. #GartnerEA
· Fred (@froidianslip) - Brian Burke told me no one cares about me, they only care about what I've done for them lately. #GartnerEA #welcometothebusiness
· Duncan Mundell (@dcmundell) - It's the EA's responsibility to negotiate non-functional requirements by helping the business balance cost, risk and capabilities #GartnerEA
· Voytek Janisz (@VoytekTheEA) - Use "Mickey Mouse" diagrams when communicating architecture to business. Leave UML, BPMN, ArchiMate behind. #entarch #GartnerEA
· Voytek Janisz (@VoytekTheEA) - Panel discussion: "Architecture is about managing change and about communication" #entarch #GartnerEA
· Rebecca Newland (@NewlandRebecca) - Five Things I Learned At The #Gartner Enterprise Architecture Summit #GartnerEA http://buff.ly/17YtlAn
· Derek E. Weeks (@weekstweets) - Gartner's @MarkRaskino "watch out for new roles of ChiefDataOfficer and ChiefDigitalOfficer at your corp this year". #gartnerea #opentext
· Fred (@froidianslip) - The new CIO... Chief Innovation Officer. But the role is about much more than technology. #GartnerEA
· Fred (@froidianslip) - Entrepreneurial is not a word that sits well with most CIOs. #GartnerEA
· Derek E. Weeks (@weekstweets) -Who is managing your unstructured information? #gartnerea #opentext pic.twitter.com/tqKAvhuEnd
· Brian Oberman (@brianoberman) -The way to succeed in social media: purpose, purpose, purpose. #GartnerEA #socialmedia
· Brian Oberman (@brianoberman) - 90% of organizations social collaboration efforts fail. #GartnerEA
· Steve Armstrong (@sakarmstrong) - Enterprise architecture is something we do, not something we deliver. #gartnerea
· Homero Padilla Cano (@zerkhufu) - “sharing information leads to business innovation and new ways to use information” @ #GartnerEA
· David Middleton (@_dmiddleton) - Social collaboration isn't disruptive b/c of the technology but b/c of how it is leveraged and utilized to affect change. #GartnerEA
· Fred (@froidianslip) - Great talk on CEO concerns, but I keep thinking, "Bring me the holy hand grenade. #GartnerEA #projectingmontypython
· Fred (@froidianslip) - The gap between the business and IT is one of understanding and ultimately a language gap between people. #GartnerEA
· Fred (@froidianslip) - You should never trust a survey people, really. #GartnerEA #CEOconcerns
· Derek E. Weeks (@weekstweets) - @MarkRaskino Recession is still problem but tech is not slowing...expect more tech demand as growth strategies unfold #gartnerea #opentext
· Brian Oberman (@brianoberman) - Build systems to empower people. #GartnerEA #socialmedia
· Pete G. (@pgrivas) - @mikejwalker From your tweets we must be at the same session at #GartnerEA. I love your site BTW - great information.
· Mike Walker (@mikejwalker) - #GartnerEA is echoing my thoughts of #BizArch It's NOT creating strategy but rationalizing into execution #entarch http://architectureandgovernance.com/content/walker-talks-business-architecture-and-best-practices-using-it …
· David Middleton (@_dmiddleton) - By 2020, alternatives to formal higher education will make education more engaging, broadly accessible and broadly recognized. #GartnerEA
· Mike Walker (@mikejwalker) - Betsy Burton: No.1 #bizarch mistake is to separate it from #EntArch They are one in the same. <-Agreed! #GartnerEA
· Michael McNamara (@mfMcNamara) - Develop a crisis management playbook #GartnerEA
· Pete G. (@pgrivas) - Worst practice in #EnterpriseArchitecture is starting out with current state #GartnerEA
· Pete G. (@pgrivas) - #EnterpriseArchitecture is going to be a discipline of Strategic Planning by 2020 - #GartnerEA
· Homero Padilla Cano (@zerkhufu) - increase sales is not strategy #GartnerEA
· Matt Edwards (@mwedward) - "Only 10% of enterprises successfully execute their strategies - Michael Hammer." #gartnerea
· Matt Edwards (@mwedward) - The key to successful business architecture is family counseling. Get past the tears and differences, and work together. #gartnerea
· Ryan Pehrson (@rpehrson) - #GartnerEA Betsy Burton. "60% of EA is 'Family Counseling'"
· Brian Oberman (@brianoberman) - Want to add value as an EA? 1. deliver real outcomes, 2. deliver signature ready recommendations. #GartnerEA
· Brian Oberman (@brianoberman) - There are no IT projects. There are only business projects. #GartnerEA
· Mike Walker (@mikejwalker) - #GartnerEA External disruptions effect EA. <- Agreed posted in '09: EA is Different Based On Where You Live #entarch http://www.mikethearchitect.com/2009/05/is-architecture-different-based-on-where-you-live.html …
· Voytek Janisz (@VoytekTheEA) - When strategy is not articulated, it is the business outcomes that can help frame it up. #entarch #GartnerEA
· Brian Oberman (@brianoberman) - Even if your strategy isn't explicitly documented you can derive it from what you are currently doing. #GartnerEA
· Mike Walker (@mikejwalker) - #GartnerEA Keynote: Let industry frameworks guide not prescribe <-Agree #entarch
· Mike Walker (@mikejwalker) - #GartnerEA Keynote: Frameworks are bad, let us introduce a new framework and method #entarch
· Brian Oberman (@brianoberman) - Categorize EA business driven outcomes as: run, grow or transform. #GartnerEA
· Fred (@froidianslip) - EA goes agile and pragmatic according to Brian Burke. #GartnerEA
· Matt Edwards (@mwedward) - Business objectives should be timeboxed (as should everything)... #gartnerea
· Voytek Janisz (@VoytekTheEA) - Business outcome driven EA is the next wave after the framework-driven EA #GartnerEA #entarch
· Brian Oberman (@brianoberman) - EA is entering third phase. First was framework, followed by process and moving towards business outcome driven EA. #GartnerEA
· Brian Oberman (@brianoberman) - By 2015 40% of global 1000 companies will use gamification as a strategy. #GartnerEA
· Mike Walker (@mikejwalker) - BYOD will double the amount of malware in the enterprise through 2014 #GartnerEA #entarch
· Duncan Mundell (@dcmundell) - Successful #enterprisearchitecture is all about outcomes and not just processes and standards alone. #gartnerea
· Mike Walker (@mikejwalker) - By 2015 #bigdata demand will reach 1 million jobs but only 1/3 will be filled #GartnerEA #entarch
· Brian Oberman (@brianoberman) - By 2015 big data will reach 1 million jobs in global 1000 but only 1/3 will be filled. #GartnerEA
· Matt Durham (@matthewdurham) - Enterprise architects influence $1.1 trillion in enterprise IT spend according to #Gartner #GartnerEA. My influence is somewhat smaller.
Day Two
· Fred (@froidianslip) - BYOD = Bring Your Own Data #GartnerEA
· Brian Oberman (@brianoberman) - Prediction: we will use 4 - 6 devices and share data via the cloud. #GartnerEA #hopenot
· Fred (@froidianslip) - BYO-let-my-company-and-I-decide-what-is-best-for-both-of-us #GartnerEA
· Fred (@froidianslip) - 13% NEVER use company supplied devices for personal communications. Is that on or off the record? #GartnerEA #neverisaverystrongword
· Brian Damiani (@bwdamiani) - Interesting: The majority of speakers are British. All very good but an indicator that the US is still lagging in EA adoption? #GartnerEA
· Vijay Nuthulapaty (@VNatGartnerEA) - @markmcgregor Coming to #GartnerEA made me realize that my team is not alone in challenges with EA. Definitely therapeutic.
· Fred (@froidianslip) - Found my new favorite phrase in the disruption session: behavioral economics. Can I now have a behavioral recession? #GartnerEA
· Brian Oberman (@brianoberman) - #5 disruption: brain science and neurobusiness. #GartnerEA
· Vijay Nuthulapaty (@VNatGartnerEA) - @mikejwalker Amen brother. And not just detailed designs, issue resolution as well. #gartnerea
· Mike Walker (@mikejwalker) - Scott Bittler - “Just because you can do something [detail design] as an EA doesn’t mean you should” #GartnerEA #EntArch
· Brian Oberman (@brianoberman) - #3 disruption to business: robotics and human augmentation. #GartnerEA
· Brian Oberman (@brianoberman) - #2 disruption to business: human system interaction. #GartnerEA
· Brian Oberman (@brianoberman) - #1 disruption to business: the internet of things. #GartnerEA
· Vijay Nuthulapaty (@VNatGartnerEA) - Met a lot of interesting architects at #gartnerea . By my guesstimate only 50% are in an EA role currently.
· Voytek Janisz (@VoytekTheEA) - EA roadmaps are visualization of strategy. Use them to articulate known strategy or to help elicit it from business. #GartnerEA #entarch
· Brian Oberman (@brianoberman) - Favor enablement not control in your EA program. #GartnerEA
· Duncan Mundell (@dcmundell) - Successful enterprise architecture is about doing the basics right. Focus on the business and communicate. #GartnerEA
· Mike Walker (@mikejwalker) - Agree with Keith Meador -> At the end of the day, the last mile is all that matters. Make your efforts signature ready #EntArch #GartnerEA
· Olivier Laquinte (@OLaquinte) - K.Meador, #starbucks |The job of an #EA is not to get the right answer, it's to get the best one in a collaborative way #gartnerEA
· Fred (@froidianslip) - Keith Meador has captured the essence of EA. The fact he works for @Starbucks and is also from Seattle introduces no bias. #GartnerEA
· Mike Walker (@mikejwalker) - Starbucks preso started w/ a coffee tasting & biz overview. Kudos to Keith on EA leadership and focus. #GartnerEA #EntArch
· Fred (@froidianslip) - Coffee is a connection at Starbucks. EA is about connections as well. Well played coffee giant. #GartnerEA
· Brian Oberman (@brianoberman) - Starbucks is giving out free coffee at their presentation. #GartnerEA @Starbucks #score pic.twitter.com/LyfXnDY612
· Fred (@froidianslip) - On an innovation slide: Design serendipitous workspaces. <- Acceptance is a big cultural indicator. Trust me, I know. #GartnerEA
· Wes DeVault (@wvipersg) - Use caution when trying to roll up risk Indicators to one indicator score. You may end up missing things you will need. #gartnerEA
· Michael McNamara (@mfMcNamara) - WIIFT - What's in it for them? "... thats the bacon!" Cathleen Blanton #GartnerEA
· Fred (@froidianslip) - I've fallen in love with the six roles of technology innovation. Someone please tell my wife I'm sorry. #GartnerEA
· Brian Damiani (@bwdamiani) - Enterprise Architecture should be done with others, not to them. From Cathleen Blanton's Roadmap presentation. #GartnerEA
· Pete G. (@pgrivas) - "Roadmapping uses a graphical approach to visualize strategy". Key phrase: visualize strategy #GartnerEA
· Vijay Nuthulapaty (@VNatGartnerEA) - Gartner's message around business value driven EA is consistent, not hearing the same from the crowd though. Thoughts? #GartnerEA
What I find in my Enterprise Architecture travels as both a practitioner and advisor is that risk management is an essential capability of Enterprise Architecture. I don’t see the EA function as a replacement of the corporate risk management function but extending, enhancing and supporting it.
As the arbiters of the overall technology portfolio that influences or even makes decisions on technology, architectures and ultimately the how investments are made, it becomes increasingly obvious to support this aspect. Whether you are a high technology company or a bank there is some level of risk identification, mitigation and management that occurs.
Since I believe in the risk management capability within EA, I thought that this certification might be useful to you as well. The Open Group is announcing a new certification program for risk analysts at the EA July conference in Philadelphia. If you have downloaded any of the Open Group risk and IT security management publications previously, you might already have a notification of this.
In conjunction with the program launch, there are several risk analysis learning opportunities that you should be aware of:

It's not often you get so enthusiastic a recommendation for a paper as Sergio Bossa gives Memory Barriers: a Hardware View for Software Hackers: If you only want to read one piece about CPUs architecture, cache coherency and memory barriers, make it this one.
It is a clear and well written article. It even has a quiz. What's it about?
So what possessed CPU designers to cause them to inflict memory barriers on poor unsuspecting SMP software designers?
In short, because reordering memory references allows much better performance, and so memory barriers are needed to force ordering in things like synchronization primitives whose correct operation depends on ordered memory references.
Getting a more detailed answer to this question requires a good understanding of how CPU caches work, and especially what is required to make caches really work well. The following sections:
We will see that memory barriers are a necessary evil that is required to enable good performance and scalability, an evil that stems from the fact that CPUs are orders of magnitude faster than are both the interconnects between them and the memory they are attempting to access.
In the last couple of web applications we’ve been working on, we used the Require.js library to modularize our Javascript code. This allows developers to separate large amounts of Javascript code into smaller modules which makes the code a lot easier to read and maintain.
Require.js also provides an optimizer script which compiles and compresses these modules into one (or a few) files for efficient delivery to the end-user. Sadly, when running the optimizer as part of a Maven build this process can take several minutes to complete. In this article I’ll explain how to speed things up a bit.
The Rhino in the roomWe use Require.js’ optimizer as part of our application package- and release cycle which currently is powered by Maven. To run the optimizer with Maven we use the requirejs-maven-plugin. As the optimizer is written in Javascript and Maven runs Java, this plugin runs the optimizer script using the JRE’s built-in Rhino Javascript engine. This allows us to create both server- and client-side packages in one go. There’s only one problem: the Rhino Javascript engine is horribly slow.
I can’t really blame the engine itself though as it’s really old. It predates the so-called ‘Engine Race’ during which Javascript engines are being aggressively optimized to deliver speeds we are used to in modern browsers. But still it’s no fun having to wait several minutes for an optimizer running on ancient technology while you know there’s something way faster out there.
As Require.js’ own documentation already states: the preferred method to run the optimizer is by using node.js which is powered by the much faster V8 Javascript engine from Google. Up until recently however, there was no easy way to incorporate node.js into a Maven build. Sure it’s possible to assume node.js is installed on the build environment and execute some commands using maven-ant-plugin, but this will make your build a lot less portable.
Using node.js in MavenSo after getting annoyed by this problem long enough for it to become a pet peeve, I decided to finally fix this. For me the ultimate solution consists of two steps:
To implement step 1 I worked together with requirejs-maven-plugin’s creator Matthew Cheely to add node.js support. In the latest version it’s possible to supply a path to a node.js binary after which the plugin executes the optimizer using node.js.
In order to supply the node.js binary to the build environment I created a new plugin called nodejs-maven-plugin. This plugin extracts a platform-specific nodejs binary to a directory of your choosing. Currently supported platforms are Windows, Mac and Linux, all 32 and 64 bit versions.
Configuring these two plugins should look something like this:
<plugin>
<groupId>com.github.skwakman.nodejs-maven-plugin</groupId>
<artifactId>nodejs-maven-plugin</artifactId>
<version>1.0.2</version>
<executions>
<execution>
<goals>
<goal>extract</goal>
</goals>
</execution>
</executions>
<configuration>
<targetDirectory>
${project.build.directory}/nodejs/
</targetDirectory>
</configuration>
</plugin>
<plugin>
<groupId>com.github.mcheely</groupId>
<artifactId>requirejs-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<goals>
<goal>optimize</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<filterConfig>true</filterConfig>
<nodeExecutable>${project.build.directory}/nodejs/node</nodeExecutable>
</configuration>
</execution>
</executions>
</plugin>
This configuration instructs nodejs-maven-plugin to extract a node.js binary inside the target/nodejs directory of the Maven project. Requirejs-maven-plugin will then run Require.js’ optimizer script using the newly extracted node.js binary. This setup enables you to use node.js on on all your build environments having to install it manually.
Using this new configuration our Javascript optimization step went from 1.5 minutes to a mere 12 seconds. Not bad for a ~10 year jump into the future.

If you just want to visit Rome and not go full on Cloud Native like Netflix, then Soundslice's Adrian Holovaty in Why I left Heroku, and notes on my new AWS setup provides a simple guide for helping make your first trip a good one.
First, let's dispose of why Soundslice left Heroku. The essence is because of various issues "Heroku lost my trust." YMMV, but once a fact, what do you do?
After a consultation with Scott VanDenPlas, former director of dev ops for the Obama reelection tech team, they came up a simple transition guide that I think is quite good and generally useful (full details in the original post):