Skip to content

Companies

Let’s Stop the Wishful Thinking

Pillar Technology - Fri, 11/18/2011 - 23:42

Making a wish

I recently published an article on the Agile Journal titled “Let’s Stop the Wishful Thinking.” To me, estimates for projects are often just wishful thinking. Can we make them more fact-based? I have tried several techniques on projects and this article is the culmination of what I’ve seen work.

Here’s the link.

Categories: Companies

The Agile Radar

Magnetic Reason Blog - Sat, 10/15/2011 - 14:54

Magnetic Reason are proud to announce The Agile Radar, a new blog syndication website that tries to bring together the latest and greatest posts from as many of the thought leaders in the agile space today.

You can check it out at The Agile Radar

 

(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

Last Nights Agile Awards 2011

Magnetic Reason Blog - Thu, 10/06/2011 - 21:24

Unfortunately I did not come away from last nights awards with most valuable agiler player, that honour went to Keith Richards from Keith Richards Consulting. Congrats to Keith and to all the other winners and to Connections for hosting another great event.

Interesting to see the change this year with the dominace of the big agile organisations, which is a shame as their marketing budgets are going to make it increasingly more difficult for individuals to be recognised but that’s the way this whole industry appears to be moving. Not long before the likes of Accenture et al start turning up

(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

New Magnetic Reason Website Goes Live

Magnetic Reason Blog - Tue, 10/04/2011 - 19:57

Over the past few weeks we have moving out website to WordPress as we believe it gives us much better control over the content we want to display.

Well the time has come for us to open up the website to all our visitors. Its about 80% complete, but we wanted the new look & feel available for the Agile Awards on the 5th October.

Remaining content will be added over the next few days. Enjoy

(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

Top 3 Reasons Designers Object to Agile and How to Overcome Them

Magnetic Reason Blog - Fri, 09/30/2011 - 06:29

In this post, Jeff shares his experience in addressing the top 3 reasons that designers initially object to agile and ways that we can help introduce alternative thinking to traditional practices.

Read the full article 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

Lets Play TDD by James Shore

Magnetic Reason Blog - Sat, 09/03/2011 - 09:37

Sometimes its hard trying to get people to see the benefits of TDD without real world examples so thats why I love the Lets Play TDD series by James shore, this is effectively a suite of videos of James writing software in pure TDD style.

You get to see a real craftsman writing tests, writing code, making it all work in real time, well worth a viewing for any developer

(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

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