Skip to content

Companies

Coding in the Clink – Part 4

Pillar Technology - Fri, 09/02/2011 - 20:19

Here’s a link to an article I wrote on Agile Journal on our latest experiences at Marion Correction Institution. We had a good crowd of developers who visited this prison and I think everybody learned a lot.

Amber pairing in MCI

Categories: Companies

Software Laws

Magnetic Reason Blog - Fri, 09/02/2011 - 11:41

Over the years I have collected a list of various laws and observations, some are funny, some aren’t, but most if not all still hold true today

You can view a Video version here or get a downloadable PDF version here

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

Agile In Fife

Magnetic Reason Blog - Thu, 08/25/2011 - 11:18

To celebrate moving into our new offices, Magnetic Reason, award winning Agile Consultancy based in Fife, will be running free early bird Introduction to Agile Software Delivery sessions.

These will be run from 7:30 – 8:30 in the morning, coffee and cakes will be provided and we’ll be around afterwards to answer questions and provide you with help.

Its open to anyone, senior managers, project managers, developers, testers, analysts, or anyone with an interest in how Agile can be used within their company to help deliver better software.

Email info@magneticreason.com

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

Why agile gets a bad name ( well one of the reasons )

Magnetic Reason Blog - Thu, 08/25/2011 - 09:15

Recently I’ve been sitting through presentations by potential partners, all of whom have been told that we are a agile delivery organisation and expect all partners to work within that framework. We are not prescriptive, so don’t mandate hard and fast Scrum or XP, but expect them to demonstrate that they buy into the agile ethos.

Yesterday I had to sit and watch as an organisation presented a suite of slides about how agile they are, clearly showing why to a lot of people the term agile is cloudy and ambiguous. One slide in particular was worrying

They did sprints. What they actually did was split the development up into fixed time boxes, deciding to do the testing of that sprint during the next sprint !!

Testing was done in isolation, developers unit tested their code ( hurrah ), and that was the end of the sprint, they handed it over to testers who then tested it as the developers worked on completely different stories.

They did one integration sprint, at the end when all dev was complete. They basically hooked everything together for the first time at the end.

Nearly 80% of all testing was carried out AFTER development was complete.

Over 1 year, they suffered close to 30 incidents per month, ( i.e bugs ) !!! Enough said on that one

Unfortunately when large organisations are putting forward their waterfall way of working as agile then agile will continue to get tarnished with this sort of work, irrespective of the the success or failure of the project.

This sets up FUD ( Fear, Uncertainty and Doubt ) around agile, people new to it, fail to get some of the key principles of collaboration and early release of value because they see large respected organisations telling them that if they continue to do waterfall, but split the development up into timeboxes then they are agile.

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

OSX Virutalisation …. Finally

Magnetic Reason Blog - Thu, 08/25/2011 - 09:00

For those of you/us that are involved in automated testing, the use of virtualisation software like VMWare has been a blessing. With VMWare installed on a Mac Pro tower 8 processors and 32GB of Ram I can run multiple instances of different version of Windows ( XP, Vista, 7 etc ) and Linux ( Fedora, Ubuntu, SESU etc ) and have them configured with different browser combinations ( Firefox 3, 4 or 5, IE 6, 7, 8 and 9 etc ) because so Os’s don’t like different instances of browsers installed at the same time. This has all been great apart from OSX, which has never ( legally ) liked running under VMWare.

This all changes with the release of OSX Snow Leopard on Wednesday with the important addition of the ability to virtualise 2 additional instances of OSX on the server. Read about it here

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

The real reason most code is not open source

Magnetic Reason Blog - Thu, 08/25/2011 - 08:59

Excellent article on The Register this morning about why most developed software is not open source.

Basically its too hard for many IT organisations to support the code in its early stages.

As an developer and benevolent dictator of my own award winning open source project, Fitnium, I can understand the main issues here.

When you first release open source, you are the only developer and it takes time and effort to grow the community and get people involved. All of it done entirely free because you personally feel something you developed can make a difference to other people.

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

Agile in India

Magnetic Reason Blog - Wed, 08/24/2011 - 08:40

Thoughtworks ( in co-operation with CIOL ) have published a report on Agile Adoption in India. Out of 770 organisations surveyed, 330 claim to be in some sort of agile transition.

I have had personal mixed impression of this, having spent the last 18 months working for a client who has a number of development streams with different organisations in India, its clear that adoption is patchy and in some areas entirely non existent.

For any global outsourcer where english is not the first language and timezones are a major barrier to communication, agile adoption should be seen as a major enhancement to their development capability, the ability to break the waterfall mentality and silo approach to all phases of delivery should be enough to convince any organisation that agile offers major benefits

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

Agiles Truth

Magnetic Reason Blog - Thu, 08/11/2011 - 16:06

I got into a discussion ( possibly an argument ) about one of the greatest benefits of agile over waterfall, the proponent had been trying to position a hybrid waterfall process with bits of agile embedded underneath.

Part of the discussion got round to the usual chestnuts, agile tells you much earlier on whether you initial assumptions about time, scope and cost are correct.

His argument for waterfall suddenly ended as he uttered in his own words, “So what happens if you find out early that you cannot hit you initial deadlines………”.

The silence was excellent as yet another agile convert “gets it”….. and the penny dropped, plonk !

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));
Categories: Companies

UK Agile Awards 2011

Magnetic Reason Blog - Thu, 08/04/2011 - 14:17
Just been informed that I have now been shortlisted for Most Valuable Agile Player (UK) at this years Agile Awards. This is a huge honour and makes me very proud, especially after picking up Best Agile Programme Manager and Best Agile Tool ( Fitnium ) last year If you don’t … Continue reading →
Categories: Companies

iPad and Three All You Can Eat Data

Magnetic Reason Blog - Mon, 07/25/2011 - 10:31

I’ve been hunting around for a decent data option for my iPad and initially had been using my Three Mifi dongle, which just acts as a simple Wifi hotspot that the iPad can connect to. Three do offer to swap your Mifi sim for a Micro Sim used by iPads, but only keep you on the same data package. They currently do not support All You Can Eat on the iPad

However recently Expansys sent me an email offering a free Three sim which PAYG which for £15/month I can buy All You Can Eat data. Unfortunately the Sims are standard size sims, if only I could trim that sim down, well check out eBay and look for a sim card cutter. For about £3 mine arrived this morning and cam with a cutter and 2 full size sim caddies to that you can still use your sim in a full sim phone, dongle or mifi device.

After a bit of swapping and registering I now have PAYG with £15/month AYCE data on my iPad, process is pretty simple although you will need either a Three mobile or an unlock mobile for the registration process.

      Order AYCE sim from Three and await to arrive
      Order sim card cutter from eBay and wait to arrive
      Go to three.co.uk/my3 and register you sim card using mobile no and serial number
      Once registered Three will send you a password for the sim via SMS. Make a note of the password
      Remove the sim from the phone. ( We are now finished using the phone, its all iPad from now on
      Follow instructions and reduce sim card to micro sim using cutter
      Insert sim into iPad and switch on 3G data
      Navigate to three.co.uk/my3, enter mobile number for sim and password they sent via SMS
      Change the password to something you can use
      Buy £15 AYCE data add-on
      Surf to your hearts content…. enjoy !
Categories: Companies

Google+ – Struggling to get it !

Magnetic Reason Blog - Tue, 07/12/2011 - 07:24

Still struggling to get Google+, my view of social media is that you gather together as socially cohesive groups. Typically around things you have in common. From that each group shares and creates its own content. As on FB I am a part ( as in Like ) various things that reflect my interests from music, to off road motorcyling and land rovering things, to some of the more esoteric areas of the internet. I like the fact I can join that sub group and become part of its creation interacting, often with 1000s of other people who share the like

I don’t get the social aspect of Google+, I am forced to basically hunt people down with my own interests and add them to one of my circles.

I can see huge potential in using Google+ for my job. I like the concept of Hangouts for use with distributed teams. If you have the bandwidth then its a very free and easy to use teleconferencing system and Streams/Circles can be used to allow teams to communicate together. I really miss Google Wave which had much much more potential for information sharing.

Categories: Companies

The power of the written word ( re-post )

Magnetic Reason Blog - Wed, 06/29/2011 - 18:27

Dave Putman of Planworking.com highlights quite beautifully the power of the written word in his latest blog posting here.

For all you people writing documentation, have a read and see if you you might actually be better off speaking to some one

Categories: Companies

Selenium Smells

Magnetic Reason Blog - Tue, 06/28/2011 - 12:48

Once of the biggest issues I see with people new to Selenium ( or any number of the other web automation tools ) is the liberal scattering of Thread.sleep(xxx) through out the code. This should be considered a bad smell introducing timing specific code into your script.

What happens if UI apps runs differently on different machines, or OS’s or internet links ( Broadband, Moble, T1 etc ). Do you have variable timing statements ?

These sleep() statements start to creep into code when a page doesn’t behave how the automation tester thinks it should. Each browser has different HTML and CSS rendering engine and each render the DOM ( Document Object Model ) in different ways to get the same result ( well apart from IE which is just pants ).

The person writing the script will pop in a sleep () when a specific element doesn’t appear when they expect it to, but there are a couple of patterns that make the sleep statement almost redundant

Wait For Page To Load
The first thing to do when you click on any link or open any new URL is wait for the htmnl page to load. This by the way is not what you think. It does not wait for the page to be displayed on the screen. Instead it waits for the entire HTML object to be loaded. In essence it is waiting for the DOM processing engine to reach and which point the document is loaded. This simple step will get quite a few of the needs for sleep () calls

Actively Wait For Element
Rather than put a random sleep() before an action activity like clickLink () or type () function call, I always wrap these calls with a waitForElementPresent() or waitForElementVisible (). The reason for this is that the script will fail with a proper exception. I typically have a class of functions ( in this instance Java ) which do this, e.g

protected boolean waitForElementEnabled(final String locator, final long timeout) {
long timeNow = System.currentTimeMillis();
while(System.currentTimeMillis() < (timeNow+timeout)) {
String eval = selenium.getEval("this.browserbot.findElement('"+locator+"').disabled");
if(!eval.equalsIgnoreCase("true")) {
return true;
}
try {
Thread.sleep(Config.wait_pause);
} catch (InterruptedException e) {
return false;
}
}
return false;
}

protected boolean waitForElementPresent(final String locator) {
for(int c = 0; c if( selenium.isElementPresent(locator)) {
return true;
}
try {
Thread.sleep(Config.wait_pause);
} catch (InterruptedException e) {
return false;
}
}
return false;
}

protected boolean waitForTextPresent (final String text) {
for(int c = 0; c if(selenium.isTextPresent(text)) {
return true;
} else {
if ( !sleep () ) {
return false;
}
}
}
return false;
}

protected boolean waitForValuePresent (final String locator, final String text) {
for(int c = 0; c String found = selenium.getValue(locator);
if( found!=null&&found.equals(text)) {
return true;
} else {
if ( !sleep () ) {
return false;
}
}
}
return false;
}

protected boolean waitForAnyValuePresent (final String locator) {
for(int c = 0; c String found = selenium.getValue(locator);
if( found!=null&&found.length()>0) {
return true;
} else {
if ( !sleep () ) {
return false;
}
}
}
return false;
}

If I am using JUnit then I can wrap this calls around an assertTrue call

assertTrue(this.waitForElementPresent(“id=login”));
click(“id=login”);

The only time I end up using a sleep is with Ajax. For example a developer may pop up a “Processing….” dialog or spinner when Ajax activity is happening, but to stop the screen flashing they might put a timer on so that the box only appears if the Ajax call is taking 30 msecs or more, if it doesn’t then the box never appears. So in this instance I would sleep for 35 msecs and then see if the box is there, if it is wait for it to close, if its not there assume the Ajax call has happened and the script moves on.

Categories: Companies

1Password, Dropbox & XMarks – What a combination

Magnetic Reason Blog - Tue, 06/28/2011 - 12:09

Sometimes its the little things that make all the difference to being more productive, and in the case of combining 1Password, Dropbox and Xmarks that is certainly the case.

Both in my work ( agile coach, PM, problem fire fighter ) and through supporting Fitnium I have the need to use a number of different machines, be they physical or VMware instances all running multiple OS’s and Browsers.

To test fitnium I run a grid of servers running OSX Snow Leopard and Lion, Windows XP, Vista and 7, Linux Ubuntu and Fedora and as part of my current job I tend to get heavily involved in automated tesing

While my main machine is a OSX laptop, throughout the day I find myself jumping between all of the above. I don’t want to always have to physically move back to the laptop to check email, browse ebay, or do a zillion other things I do on my main machine. What I want is the same ubiqitous browser access across all my machines.

XMarks : Xmarks provides the ability to sync book marks between Chrome, Firefox, Safari and IE. I don’t like Opera and Xmarks doesn’t support it so I’m not loosing out there. It can sync between all browsers on the same machine or all browsers on different machines. Make a single change to a book mark on any browser on any machine and within a few minutes that change is made across all the above supported browsers.
The only fault is that Safari is only supported on OSX, but if you combine that with MobileMe, you end up syncing all your Safari browsers across OSX and Windows.

1Password : Now I can access all my web stuff on just about every browser and any OS, I find myself logging in and out of the same suite of apps ( Facebook, LinkedIn, Ebay etc ), across them all too. 1Password integrates itself with all your browsers and records all you account details in a secure format. Now I only have to use one password, the one that opens 1Password, afterthat, 1Password fills in all the log in screens for all my accounts. The nice thing is, while I have amssive 30 char main password I type in once when I first access each box, 1Password can use existing passwords, or generate complete passwords using characters numbers and specials and you don’t have to remember them

DropBox : Dropbox provides a cloud storage solution that is avail on any machine. The dropbox folder appears as a standard OS folder. Drop stuff into it and it appears on every other machine that dorpbox is installed. 1Password stores all its data in a single file and its DropBox aware, so if you tell 1Password to store the password file on DropBox its available across all my machines. Add a new account to 1Password and within seconds its replicated across all my other machines

So 3 little tools, 2 free ( dropbox and xmarks ) and 1Password for $59 across all machines is a fantastic price for simple easy to use universal access.

Categories: Companies

PMI Atlanta Chapter Agile Local Interest Group

Dennis Stevens and Associates - Thu, 03/17/2011 - 03:54

Last night was the inaugural meeting of the PMI Atlanta Chapter Agile Local Interest Group. This group will meet on the third Tuesday of every month to provide Agile speakers and events to support the Agile Project Management community. I am heading up the LIG with a great group of volunteers including Phyllis St John – who has been instrumental in getting the LIG up and running. Cox Enterprises provided that space and John Kosar from CCCI sponsored dinner and coordinated the space.

I was the presenter last night. I did an introduction to the roots of Agile and talked about Knowledge Domains around the new PMI Agile Certification.

Agile Fundamentals

View more presentations from Dennis Stevens.

Thanks to everyone who attended and provided input on what you would like to see from the LIG.

Mike Cottmeyer will be presenting next month. I will post details here on the location as we get that sorted out.

Categories: Companies

PMI Agile Certification

Dennis Stevens and Associates - Fri, 02/25/2011 - 19:19

PMI regularly surveys project practitioners to identify trends in the practice and needs related to project management. One of the practices that PMI has monitored over the last several years is the continuing growth and usage of Agile practices in project management. Since Agile is a topic of growing importance in project management many project professionals are eager to gain Agile techniques to apply on the job. Similarly, organizations that utilize project management to serve both internal and external clients are seeing value in Agile methods to deliver projects for these clients more quickly.

Because of these changes in the project management environment, PMI is developing an Agile certification. This certification will complement the existing PMI offerings in Agile, such as our Agile Community of Practice, SeminarsWorld and eSeminarsWorld classes, and Global Congress area of focus sessions.

My entire focus over the last decade has been responsibly connecting Agile and Project Management to help organizations deliver technology that makes a different to the business. I am passionate about where PMI is going with this. Over the past year or so, I have invested significant time and travel in the groups that are helping connect Agile and the PMI community.  These efforts include:

Agile Certification Overview

I have talked about why I value certification and what certification means previously. I am an advocate of communities generating shared language and exploring how to do what they do better. And I believe that a certificate that exposes a basic understanding with that community is valuable. There is a HUGE gap in understanding between the traditional Project Management practitioner and project management based on an Agile foundation.

PMI’s Agile Certification builds on six key competency areas. Here are the six key areas and a conceptual view of how they may contrast with traditional thinking. Pragmatically, these all exist on a continuum. The key is that most organizations lean toward the traditional side of the equation and that most Project Management implementation put up barriers to delivering projects with practices that lean toward the Agile end of the continuum.

1. Value Driven Delivery

Agile: Deliver value by understanding and prioritizing what is important to the customer and the business, continually refining the smallest and simplest thing that might possible work, delivering quality results incrementally, and obtaining feedback to improve the result.

Traditional: Define the project up front. Use robust change management to protect against / prevent change.

2. Stakeholder Engagement

Agile: Establish and maintain mechanisms that ensure that all current and future interested parties are appropriately participating throughout the lifecycle of the project.

Traditional: Throw projects over the wall across Analysis, Design, Development, QA, and Production. Engage end-users at the end. Leave significant strategic decisions to the interpretation of the development organization while the project is in the black-box of development.

3. Boost Team Performance

Agile: Boost team performance through creating an environment of trust, learning, collaborative decision making, commitment and conflict resolution, thereby enhancing relationships amongst individual team members.

Traditional: Focus on resource optimization. Form teams around projects. Share resources across multiple projects simultaneously. Take power away so people just do what they are told according to the standards. Put all decision making into the hands of few key managers.

4. Adaptive Planning

Agile: Work with the team and the stakeholders to produce and maintain an evolving plan from initiation to close based on goals, business values, risks, constraints, and stakeholder feedback.

Traditional: Plan the work and work the plan. Stick to the Gantt Chart.

5. Problem Detection and Resolution

Agile: The team identifies problems, impediments, and risks; determines strategies for dealing with them; and executes the strategy.

Traditional: Management identifies problems, impediments, and risks; determines strategies for dealing with them; and executes the strategy.

6. Continuous Improvement

Agile: Improve the quality, effectiveness, and flexibility of the product, process and team and influence the organization in order to better deliver value now and in the future.

Traditional: Perform lessons learned at the end of the project. Use those to update organizational processes and standards.

Summary

If you are a traditional and experienced project manager you may not agree with the dichotomy between Agile and Traditional that I presented above. This is either because you view the Agile approach as irresponsible or because you believe you apply Agile in situation specific ways without having to call it Agile. In theory, I agree. In practice I see way more traditional project management than agile project management. Right now, most organizations don’t even have language or feel it is safe to discuss how Agile fits in.

Having open and responsible discussion around the concepts of value drive delivery, stakeholder engagement, boosting team performance, adaptive planning, and continuous improvement can do nothing but help organizations improve performance.  I don’t believe PMI has gotten it perfect in this effort. They have made great progress toward establishing language around the important conversations and have expressed a desire to evolve this body of knowledge rapidly. Creating the Agile Certificate will create safety for organizations to explore the Agile options responsibly.  I am excited about the where the Agile Certification today and where it is heading in the future. But, within five years – I hope that these Agile concepts aren’t controversial. I hope they just become part of the generally accepted way of delivering projects.

Follow the conversation on Twitter at #PMIAgileCert

Categories: Companies

Reflections on #10yrsagile – What is Value?

Dennis Stevens and Associates - Mon, 02/21/2011 - 02:12

On February 11-13, 2001, a group of 17 people came together and created the Agile Manifesto. This launched a decade of dramatic change in the way software projects are delivered in many organizations. A decade later, on February 11-12, in the same resort in Utah, 33 people got together to discuss the Agile Manifesto and talk about what is next. There was a lot of  great discussion and a lot of agreement. What was interesting to me was that there was a lack of agreement on what the last bullet,

“Maximize Value Creation Across the Entire Process”

even means.

Working Code as Value

The first principle behind the Agile Manifesto is:

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

To many in the software development community – including many of the attendees at the 10 Years Agile workshop, value means working, tested, deployed code. I agree that this is important, but this is not value. Working, tested, deployed code is captured in the first bullet:

“Demand Technical Excellence”

But does this deliver any value? Quality software is necessary but not sufficient for value delivery. Some in this community view quality software and software craftsmanship as the final purpose. There are some that feel that this was all that in the control of the members of the Agile community. I don’t share this perspective. Value not only has a broader meaning than this, but this limited perspective can actually be value destroying.

Organizational and Personal Values

When we were defining Value-based Development – it was marked up to be Values-based development by someone. Within the agile community, there is a metaphor of software development teams as pigs surrounded by chickens and seagulls. The pigs are committed to development the chickens are involved and the seagulls just fly in a crap all over everything.  The pigs are management and the seagulls are management.  This metaphor comes from the difficult organizational environments that many developers have worked in.  There are some in the community that consider value to be improving the conditions that people work in every day. This is captured in the second bullet:

“Promote Individual Change and Lead Organizational Change”

This is valuable, but does this deliver any value? Improving the environment that individuals work in is really important. Software development is a creative endeavor, it is critical to create an environment where people feel safe and motivated so they can do great creative work. Some in the community view this as the real motivation behind the Agile community. They feel that Agile software development is about what’s in the best interest of the developers. Organizational and Personal values are key – but they aren’t value. In fact, a singular focus on improving personal values can be value destroying.

Value as Customer Value

There is a strong movement emerging in the Agile community, or the post-agile community, that agile is about customer experience. Customer experience is critical to get people to use your product. Customer value is the difference between what a customer gets from a product, and what he or she has to give in order to get it. Customer value is really, really important. Google is my favorite search engine. They absolutely understand what customer value is. But they don’t stay in business on customer value. They make money from advertising and a lot of other things other than search. Again, customer value is necessary but not sufficient. Too narrow of a focus on customer value can lead to a failure of the business. I agree that customer experience is underserved in the Agile community. I believe that Customer Value is a key component of the fourth statement “Maximize Value Creation Across the Entire Process.” But, it is not the entire story.

Value as Economic Value

Eli Goldratt, in “The Goal” defines the making money today and into the future. This is about economic value. There are multiple views of economic value.

Business Value: Increase or Project Revenue, Reduce or Prevent Costs, Improve Service, and Maintain Compliance in alignment with the organizations strategy.

Cost of Delay: the cost to bear as a result of delay in investment.

Risk: An obstacle to Business Value.

Businesses are economic enterprises. Any view of Value that doesn’t acknowledge this is short-sighted. Agile is about quality software, organizational and personal value, and customer value. But at the end of the day, Agile is about improving the ability of the organization to improve economic outcomes.

Summary

Just like Agile, value is not well defined. And different people have different perspectives of value. Even when faced with the options, they decide that some of them are not important. I am a strong advocate of all the aspects of value – and Agile organization’s must setup guard rails to ensure that technical, personal, economic, and customer value are held in high regard. But they are a means to an end – not  an end unto themselves. There are parts of the Agile community that not only view these as an end unto themselves, but that promote the idea that a focus on economic value is actually bad. I don’t share this perspective. Agile is about improving economic outcomes. Technical, personal, economic, and customer value are enablers of this end. Doing these right helps deliver economic outcomes. Focusing on these outside the context of economic value is destructive.

Categories: Companies

Deciding “What” To Build

Dennis Stevens and Associates - Sun, 02/20/2011 - 18:18

This is my presentation from Product Camp Atlanta. I address two big issues facing product management. First, establishing an approach to connect product strategy with business strategy, customer value, and risk. It provides the structure for feedback and rapid reassessment of the product road map (backlog). Second, the presentation demonstrates how to leverage the model to reduce the miscommunication, over analysis, over design, and over engineering that leads to scope creep and misalignment between the desired solution and what is actually delivered.

Deciding what to build View more presentations from Dennis Stevens.

Categories: Companies

What’s Next for the Agile Manifesto

Dennis Stevens and Associates - Sun, 02/13/2011 - 16:35

This weekend, about 33 people got together at the Snowbird Cliff Lodge to celebrate the 10th anniversary of the Agile manifesto. This group was invited and hosted by Alistair Cockburn. The goals were to have a celebration, talk about the successes achieved and the problems facing the community, and hopefully contribute something back around the problems that we can sensibly address.

This is not a replacement or an extension for the Agile Manifesto. It is more of a focusing statement relevant to our understanding of today’s problems and needs. There was a lack of alignment at some levels – although the expected disconnects, Kanban vs Scrum vs XP or whatever, didn’t arise. The biggest lack of alignment I saw was between those that feel we need to address Agile across the business and the group that believes Agile is about only software development, asking “Who are we to be describing how the organization should be designed?” I believe this gap has at it roots the different perspective of the people who attended. Some work within software development teams. Some help organizations adopt Agile. And some help organizations exploit the Agile ability to rapidly deliver working increments of value to update business models and deliver on new value propositions.

But there was a ton of alignment on some issues. There was great energy and flow in the room. There was some negativity and cynicism that came from our focus on what problems exist. But that was the exercise – identify problems that we can sensibly address. I found the entire weekend to be valuable and enjoyable. And I believe we came up with something of value as well.

Process

The facilitators had identified seven categories of questions or issues that had been identified through pre-session interviews with some of the attendees.

  • The Future
  • Training
  • Technical
  • Culture
  • Enterprise / Other Communities
  • Value
  • Agile Backlash

After an initial group warm up, we broke into seven groups with each being assigned to an area. We worked to identify the gaps or issues that need to be addressed in the industry today in our assigned area. We then we rotated around the room in our teams to review the other areas, adding any additional issues we identified and moving some issues from one category to another. We then went back to our original categories and identified underlying themes from the issues. These became the big problems that needed to be addressed. This was great conversation within our groups and the underlying themes were pretty clear and consistent. We then did a read out of our themes to the bigger group and had some additional discussion.

Then we took a five hour break.  Some people stayed and did more work, some napped, some when skiing. I went up on top of the mountain with Alan Shalloway, Joshua Kerievsky and Ahmed Sidky. The view was awesome and I really enjoyed the company and the conversation.

When we reconvened and worked to consolidate the big problems under the following headings.

  1. What problems in software or product development have we solved?
  2. What problems are fundamentally unsolvable?
  3. What problems can we sensibly address — problems that we can mitigate either with money, effort or innovation?
  4. What are the problems we don’t want to try and solve?

We then grouped the problems under “What problems can se sensibly address” into themes and dot voted to identify the biggest issues. Finally, we worked to craft a sentence to address the four top themes. This became a challenging process as there were 30 strong willed people with different perspectives all trying to influence the sentences. As we narrowed this down through our consensus process there was a lot of discussion and debate. At the end of the allotted time we had the following.

We, the undersigned, believe the Agile community must::

  1. Demand Technical Excellence
  2. Promote Individual Change and Lead Organizational Change
  3. Organize Knowledge and Promote Education
  4. Maximize Value Creation Across the Entire Process

Demand Technical Excellence

At the end of the day, you can’t deliver value through technology if you are not delivering quality. This category brings in aspects of architectural, engineering, and design. This is still a pressing issue and must be addressed in the community to deliver on the promise of the Agile Manifesto.

Promote Individual Change and Lead Organizational Change

Here is an example of a sentence that we had a broad range of perspectives on. Without adoption by individuals and alignment of organizational governance and management models, Agile won’t deliver on its value proposition.

Organize Knowledge and Promote Education

This isn’t just about the practitioners, it includes the broader business context as well. The community needs to build on the broad body of knowledge that exists within and outside the community – we have to avoid reinventing everything. Diversity of thought is important to the ongoing growth of the community – but we don’t actually do a very good job of intentionally building on the body of knowledge.

Maximize Value Creation Across the Entire Process

Software Development is not an end unto itself. Too many organizations moving toward Agile are focused on just the software development team. This is only valuable to the point that the software development team is the constraint in the organization. We need to learn how to do a better job of defining value and aligning the cadence across the organization and improving the flow of value from concept to delivery.

Closing Thoughts

This was a dynamic crowd with a lot of experience. In this group, there was very little contention between flavors of Agile. Everyone was open and working to address the needs of the industry and the broader needs of the communities we live in. There are lots of problems – I am sure there will be a lot of talk about “The Elephants” – problems that didn’t explicitly make the list. There will be some dissenters. And I think there may be some work to refine the sentences. Hopefully without losing the meaning of the points.

I believe that Alistair’s goals were achieved. We had a nice celebration – we came to consensus (although not unanimous agreement) on the big issues in front of us. And we shared a lot of energy and community. I got to meet and develop relationships with a number of amazing people. And we ate and drank a lot both nights. I don’t know what comes out of this effort in the bigger community. Now, let’s see how the Agile community responds to the outcome.  I hope we rally around the big issues and continue to improve where we work and the value we deliver.

Categories: Companies

10 Years Agile–Friday Night

Dennis Stevens and Associates - Sat, 02/12/2011 - 16:03

Attendees

Here are the people that are in Snowbird for the 10 years Agile celebration.

  • Pekka Abrahamson
  • Scott Ambler
  • David  Anderson
  • Mike  Beedle
  • Tracy Bialik
  • Alistair  Cockburn
  • Rachel Davies
  • Michael Feathers
  • James Grenning
  • Robert Holler
  • Jonathan  House
  • Erik Huddleston
  • Michael Hugos
  • Zhon Johansen
  • Kay  Johansen
  • Ralph Johnson
  • Nate Jones
  • Joshua Kerievsky
  • Jon Kern
  • Phillipe Kruchten
  • Janice Linden-Reed
  • Todd Little
  • Ryan Martens
  • Eric  Olafson
  • Jeff Patton
  • Russ Rufer
  • Alan  Shalloway
  • Ahmed  Sidky
  • Andrew Shafer
  • Dennis  Stevens
  • Jeff  Sutherland
  • Arline  Sutherland
  • Ghennipher  Weeks

Friday Morning

I spent the morning with Ahmed Sidkey and Alistair Cockburn working on some ICAgile activities. We are trying to get the Business Analysis and Project Management tracks up now that Agile Fundamentals has launched. I am working with the Business Analysis community to coordinate the BA track and bringing the PM work from the recent (and ongoing) efforts of Alistair, Ahmed, Mike Cottmeyer, Mike Griffiths, Michelle Sliger, Jesse Fewell and others with PMI to define Agile PM.

Pre-Cocktail Party

After riding up to the conference, I got to meet and spend time with Tracy Bialik, Alistair, Ahmed, David Anderson, Alan Shalloway, Janice Linden-Reed, Phillipe Kruchten, Erik Huddleston and others greeting, catching up and talking about our expectations for the weekend.

Cocktail Party

At 8, we had a cocktail party where we met Janet Danforth and Robert Moir. Janet and Robert will be facilitating the Saturday morning discussions. There were questions spread around on tables that had been solicited from attendees by the facilitators prior to the event. They were divided into several categories for us to review and discuss. I spent some time at a table with a number of people including Ahmed Sidkey, Jon Kern, Erik Huddleston, and Scott Ambler. The discussion started off around how to get other communities (BA, PM, QA, etc) involved in the Agile. We ended up talking about resting heart rates and food densities – so while it was interesting at the moment I’m not going to blog about it here.

I then spent about half an hour in a discussion with Erik about his approach to scaling agile at his organization. He has courageously built on Dean Leffingwell’s model. He is implementing small fungible teams (high performing teams with the ability to deliver a working increment of software across the portfolio) and is using Kanban at the Program level to feed and coordinate the teams and to dynamically match capacity to demand. Then he is using Kanban downstream from the teams to coordinate integration testing, implementation, and production. This is a pattern that I have seen work well and have seen emerge from multiple directions. Mike Cottmeyer and I have been using this model as a kind of reference architecture for businesses and have had success. I believe this is an organizational adoption pattern that we will see more of.

Later I was involved in conversation with Jeff Patton and Rachel Davies talking about various topics. One was how hard it is to define explicitly how to apply certain practices when coaching teams since we tend to morph them to the moment and are always applying new concepts and ideas. Jeff is gently introducing A3 type thinking into his clients – something that we are starting to do more of – so it’s a validation of a pattern that makes sense. Jeff and I talked about how capability analysis and story mapping share some underlying patterns that seem to make sense. Rachel talked about how hard it is to to get organizations to change and how organizations seem to get stuck in destructive behavior. Jeff brought up this video as something he shows in his class to help people to recognize how they participate in their organizational dysfunction. It is pretty funny.

After Party

We had an after party from 9:00 – 11:00 where we drank Cockburn port and had more conversations. I spent some time talking to Alistair and then got to spend a while with Joshua Kerievsky and Mike Beedle talking about how important the underlying enabling technologies were to doing anything agile.  We also talked about how Scrum and XP have morphed and how implementations must be situation specific.

Summary

There are a lot of people here from various communities. Lean, Scrum, XP, etc. It would be fun to do social network map of who is connected to who in this group and what those communities look like. There was a lot of engagement and energy last night and I didn’t see any conflict. The themes of post-agile, situation specific morphing of practices, and scaling patterns were pretty common place. Today, we have a four hour facilitated session that should be interesting.

Categories: Companies