Welcome to blogs.conchango.com Sign in | Join | Help

Welcome to blogs.conchango.com

Colin Bird's Blog

  • Scaling Scrum - London Scrum Gathering 2007

    Last week saw the first Scrum Gathering held in the UK and only the second held in Europe. Thanks to all the presenters and attendees who arrived from all over the world and really made the event come alive with great questions in the presentations and vocal participation in the Open Space sessions on the final day. 

    I gave a presentation on Scaling Scrum along with Rachel Davies. Rachel and I have been working separately with a variety of customers and in some cases have come up with different solutions to the same problem - as with most things in the Agile world, there's always more than one way of solving any given problem! In this presentation we discussed the pressures that the principles of the Agile Manifesto come under when tackling large and complex programmes and looked at potential models for structuring many teams and addressing the communication challenges between them. The deck we used is a combination of both our slides that we have combined into a single presentation. You can get a PDF of the deck here.

     

  • Scaling Agile – Part 2

    Most organisations that we see adopting Agile approaches for large programmes or across an entire organisation have already seen success with one or more Agile projects. In fact, we wouldn’t recommend not having seen a few successes before embarking on large scale adoption! Based on these early successes there is a temptation to simply “Hit the gas” and do a lot more of the same by simply multiplying the small number of successful teams. Life just isn’t that simple and very often large scale adoption runs into trouble. There are many reasons for this:

    • Early Agile teams have usually chosen an Agile approach themselves as opposed to the later teams who have the decision thrust on them by a corporate mandate.
    • A small number of Agile projects can be a sufficiently small target and slip under the radar so as not to fall foul of corporate project management offices or be viewed as a significant threat to the status quo.
    • The vision for what the organisation is trying to achieve and why it is adopting an Agile approach is poorly communicated to all those who are going to be affected by the change.
    • An underestimation of the impact on organisational functions like HR and logistics.
    • Resistance from middle management who feel threatened by the concept of self organising teams.
    • Resistance from staff who are either in an operational role or have some operational responsibility, like application support for example where it is more difficult to see how Agile approaches can be applied.
    • Departmental structure and management hierarchy – common issues are management interference with the team’s working practices and requests to work on other work outside of the project.

    Communication, communication, communication …….

    Getting buy-in is vital, as is communicating the “Big picture” of what is at stake. I listened to Kent Beck speak at the Agile Business Conference and he told the story of a cleaner at NASA. When this cleaner was interviewed he responded to the question of “What do you do?” by answering “Son - I send people to the moon”. This is a man who doesn’t just clean toilets but clearly gets the big picture of what his organisation’s mission is! One of the manifestations of people not understanding the overall goal is “Sub optimisation” (see Lean Software Development - Mary & Tom Poppendieck). You see this in multi-team environments where the teams just focus on their own piece of the puzzle to the detriment of the overall programme. I’ve seen extreme cases where teams don’t even have visibility of their own requirements backlog but exist on just the small list of the next iteration’s priority features fed to them by their Product Owner. I liken this to running full tilt along a London street with your eyes firmly fixed on the ground or driving at 70mph in the fog! Without visibility of what’s ahead a team will tend to make poor design decisions. Without an overall picture of the wider programme objectives a team will see any task like integration with other team’s work as an irritation and impediment to getting their real work done.

     

    So communication is absolutely key – I don’t think I’ve ever heard anyone complain that they have been the victim of over communication! An initial communication out to the organisation explaining the strategy and the approach to achieving it is a great start. But ongoing updates are necessary as progress is made and as strategy and approach is revised. New team members need to be inducted and provided the big picture before they join.

     

    Evolution not Revolution

    Change is hard. Many people don’t like change and there is always an organisational inertia dictating the practical pace of change that depends on the organisational culture and size. Ideally the changes in process and organisational structure required to make an organisation capable of truly Agile software development should be introduced gradually. In other words it is better to start small and gather momentum, allowing time to sort out the wrinkles that will appear. This strategy applies to both a large multi-team programme and to organisational adoption.

    Assuming that there are already one or more teams successfully delivering good quality software every iteration, build the existing team sizes with a gradual addition of new team members. Get these new team members trained in the fundamental principles of Agile and the mechanics of your chosen Agile framework (e.g. Scrum). Make sure that the new team members are paired with experienced team members and allow for the drop in productivity that will occur while time is spent bringing the new blood up to speed. Grow the teams above their optimal size for productivity and then divide the teams in two with a balanced mix of experienced and new team members in each new team. Repeat this process until you have the required level of scale.

     

    Growing the teams


    Organisational Change

    As the number of Agile teams increases, the conflicts with the way Agile works and the existing way the organisation works will surface. To smooth the adoption, a parallel change programme should run alongside to gradually align the two worlds. An approach that works well is to run this change programme on an Agile footing, with its own prioritised backlog of change tasks – Ken Schwaber calls this the “Transition Backlog”. This approach has a natural empathy as it supports the flexibility to incorporate new tasks that arise out of the Agile teams trying to build software and it also helps align management to an Agile mindset.


    Part 3 to follow

    In part 3 I will talk about some of the approaches and patterns for enabling multiple teams to work in concert.

  • Scaling Agile – Part 1

    I recently presented at the Agile Business Conference in London and the ScrumGathering in Minneapolis. This gave me pause for reflection on what has changed in the world of Agile in the year since I last attended these events. The major change from my perspective has been the shift in emphasis to large scale adoption of Agile. What do we mean by scale in this context? One version of scaling Agile means attempting something that is bigger than a single team can efficiently cope with, usually through the deployment of multiple teams working collaboratively, sometimes across geographical boundaries. Another version of scaling Agile occurs after an organisation has seen success with a small number of teams and decides to adopt it as the standard project delivery approach across the organisation.

     

    This shift has been one of the drivers or excuses for some in our profession to foist the term “Agile 2.0” on us all. I dislike “Agile 2.0” even more than the term “Web 2.0” but that’s another story.

     

    What’s wrong with Agile 2.0? Well for starters it’s a conjuring trick to persuade the gullible that what is required to successfully take Agile to the “Enterprise level” is a new agile methodology. Something nice and prescriptive that tells you exactly what you need to do to make an Agile project work so that you never feel out of your depth. The thing is, there has always been a wide choice of Agile “Flavours” or denominations to choose from, with different terminology, processes, roles and artefacts. Having more is fine - as long they respect the fundamental principles on which all truly “Agile” frameworks are based (see the Agile Manifesto and Principles). It’s not fine though when they claim to fundamentally transform Agile thinking whilst not actually delivering anything new – I believe this is referred to as Marketing Spin!

     

    It is the principles and how they are applied that are the key to making a single project team successful and not the details of the specific denomination of Agile. I know many teams that do not subscribe to any particular flavour but are nonetheless both Agile and very successful. This fact makes Agile almost infinitely flexible such that it can and has been applied to many different organisations, cultures, technologies (including non IT projects), team size, team skill and team distribution. So when faced with the challenge of using Agile throughout an organisation or on a programme of development that will need many teams, evolve the way the fundamental principles are applied rather than adopting a different methodology. Sure the context has changed, this just means that the principles may need to be applied in different ways and we need to avoid losing our agility in our quest to keep the reins on our large programme. This isn’t to say that it’s easy. A single Agile team can cause pain when it bumps into organisational impediments, just imagine what a programme of many teams or even organisational wide adoption of Agile can do! 

    We have been working on a number of scaled Agile programmes in the last year and it was this subject that I decided to present at the Agile Business Conference and ScrumGathering. These events also proved to be a useful sense check on the way we have applied Agile principles in our specific examples against what other large organisations like BT, Amazon.com and LastMinute.com are doing. There seems to be an appetite for information on the kinds of approaches that can be applied in scaled situations so I thought I would share our thinking on the subject through this blog. It is important however to remember that we are presenting some advice and options rather than prescriptive recommendations so you will still need to apply common sense when taking these ideas and considering if and how you might apply them in your specific context.

    Part 2 to follow .....

  • Blank Buttons and Icons in TFS Source Control Explorer

    I recently ran into a problem using TFS Source control on a new laptop where the buttons and icons in the "Compare" dialog box and screen came up blank, leaving me to guess which was which.

    So if you get this really helpful set of icons:

    Or these really helpful buttons:

    Then you have the same issue.

    I initially thought it was the NVIDIA drivers for the display but it turns out that this problem occurs with McAfee VirusScan ver 8.0.0 and the "Buffer Overflow Protection" feature. I'm not sure whether it is McAfee or Microsoft code at fault. 

    The workaround is to go into the VirusScan Console and disable the "Buffer Overflow Protection". This will obviously mean a reduced level of protection from your virus scanner. Apparently, this setting can also cause blank list boxes when binding to a collection.

  • Agile Architecture PodCast

    I recently attended the Architect Insight Conference where I sat on a panel with Ivar Jacobson to discuss Software Development Methods and Practices, and was also interviewed by Ron Jacobs from Channel 9 on the subject of Agile approaches to software development. The panel discussion was interesting but I'll save my thoughts on Ivar's Essential UP for a later blog.

    The half hour interview with Ron disappeared in no time at all and covered a range of general Agile topics but with a recurring theme of where architecture fits into an iterative approach to delivering software. Ron just has too much energy for a single human being - I want some of what he's on :-)

    If you have a spare half an hour then you can catch the interview here:

    http://channel9.msdn.com/shows/ARCast_with_Ron_Jacobs

  • Scrum for Team System - V.next

    Ok so we've released Scrum for Team System and so far about 550 people all round the world have downloaded it. What next then?

    Well we are starting to think about additional tools and enhancements and would love to have your top feature requests. Just to fuel your thoughts, we are currently productionisng a tool we built for testing the plug-in that will allow you to move projects and all their history data between different methodologies. So for example you can take an MSF Agile project and convert it to Scrum. Another use for this tool will to enable Scrum for Team System projects to be moved to future releases of the plug-in.

    Talking about future releases we are looking to do a minor release (1.1) in early May that will tidy a few things up. Keep a watch on www.scrumforteamsystem.com for details.

    Please email your ideas for enhancements to scrumforteamsystem@conchango.com.

     

  • Scrum for Team System - New Scrum Diagram

    We are rapidly approaching the release of Microsoft's Team Foundation Server and Conchango have undertaken to provide a Scrum process plug-in called "Scrum for Team System". We have Beta 3 of Scrum for Team System out at the moment and are on track to issue a release version to coincide with the release of TFS. We will post a link on www.Scrum-Master.com to the release version as soon as it's ready to roll. If anyone is interested in joining the beta program to get accustomed a couple of weeks early then email us on betascrum@conchango.com.

    We've been building the Guidance to both help team members follow the Scrum principles and get the best out using Scrum with TFS. As part of this exercise we identified the need for an "Overview" diagram of Scrum to try and capture all the major aspects of the framework on a page. We are also going to use this as a navigational asset to find your way around the guidance. I thought I'd give a sneak preview and get some feedback on whether it achieves its mission. 

     

    Scrum Overview Diagram.png

  • Scrum plug-in progress

    As many people already know, we have a team at Conchango developing a Scrum Process (we’re trying not to use the “M” word!) plug-in for VSTS (Visual Studio Team System). Thus far we’ve been building and testing on a combination of TFS (Team Foundation Server) beta 3 and the release candidate version of Visual Studio Team Suite. We’re getting set to offer a beta version of the Scrum plug-in and will be targeting the beta 3 refresh of TFS and the RTM version of VSTS.  Like everyone else we’ve somewhat struggled to download the latest VSTS bits from MSDN but I think this is nearly sorted.

    We’re really interested to get broad feedback that we can use to improve the Scrum plug-in. So if you’re interested in having a look at this early beta then please drop us a line on betascrum@conchango.com with a few details of the environment you’re looking to use it in. We intend to make new versions available on a regular basis up until we release version 1.0.

    Look out for some announcements from us next week when we take part in the big Microsoft launch programme.

  • PDC 2005 - Windows Workflow Framework

    I’ve just returned from the PDC in LA and have seen a number of news wire articles and analyst comments being somewhat negative about Microsoft delivering too little too late. These remarks have generally been directed at Longhorn and the fact that it is going to arrive later with fewer features than originally planned.

    I’ve been to a few PDCs so I know it’s easy to get caught up in all the razzmatazz and glitz of the event, but even so, I think that Microsoft have moved along away forward across an extremely broad set of technologies. We (Conchango) have been exposed to the technology and features within .Net 2.0, SQL 2005 and Visual Studio & Team System 2005 through our project work, and to some extent have become acclimatised to this step change. Despite this preparation I was still blown away by the power of WinFX which comprises a set of major components and their managed .Net APIs. It was the announcement of Windows Workflow Foundation that really got my attention, and not just because Don Box gave typically charismatic performances when presenting! Not even a codename this time as Microsoft have kept it pretty quiet with just a few unsubstantiated rumours floating around the blogosphere.

    I’ve always struggled with the concept of bolting an external workflow engine on top of an application(s). It isn’t generally very seamless and it’s hard to cleanly separate out the workflow from the application logic. WWF (hopefully not at all like wrestling!),  should allow us to build application workflow and orchestrate web services from within the .Net Framework and IDE, but still allow the abstraction of workflow, exposing it so that its less opaque and more easily modified post compilation. I’m also pleased to see that Microsoft have chosen to support, not only the normal predefined fixed flow model, but also a model they call the ‘State Machine’ workflow which looks more event driven, supporting an indeterminate execution order. This event driven model will enable the composition of services and business processes in to a highly flexible animal, which can much more accurately match the variable and unpredictable nature of the reality of business today. WWF should also further encourage people away from monolithic approaches to building applications, towards a more granular service based model, that can be flexibly wrapped by WWF. Discrete business functions can be built as services and then consumed and co-opted by any number of business flows built in WWF.

    Another potential and extremely interesting possibility is to use WWF as a page flow controller in web applications. This would be fantastic if it turns out to be fast and scalable enough and would be a lot neater than coding up an MVC pattern every time you build an application. Page to page flow could be extremely flexible and you would be able to modify it without recompiling the code. I think we might have to put some prototypes together!

  • The Value of Agile Methods - Presentation at the Microsoft Architect Forum

    I co-presented 'The Value of Agile Methods' at the Microsoft Architecture Forum on Monday along with a colleague Howard van Rooijen. The presentation discussed the shortcomings of traditional software development approaches, before looking at agile methods and engineering practices that we have found help deliver quality software with features that the business actually need. Here at Conchango we have adopted a combination of Scrum and engineering practices derived from XP and this is what the meat of the presentation material covers.  

    Microsoft has posted an early version of our combined slide deck and this can be downloaded from here.

    Howard has published his final version slides with extensive notes on his blog.

    My slides have quite a few custom animations in them with the result that the message may get lost in the translation to jpeg so I've decided to leave them in PPT format on the link above rather than including them in this post.

    We had very good feedback after the presentation and it was a shame that we didn't get more time to answer the many questions. It was interesting that the questions and concerns were not with the concept of agile methods but more about how to persuade organisations to adopt agile approaches, with the most common obstacle seen as the dreaded 'Fixed price - fixed scope' impasse.

    Sadly there is no instant silver bullet answer to this problem with the reality being that culture takes far longer to change than technology. The big problem is this illusion of fixed scope. This could only be a real concept if the requirements could be recorded in such a way that they were 100% rigorous, complete and unambiguous. Having achieved this impractical aim the requirements would then have to remain unchanged through to the time the software gets delivered. Life isn't like that, well at least mine isn't! An interesting example of the impedance caused by the written word occurred in the panel Q&A session at the end of the Architect Forum. Delegates wrote down their questions for the panel on post-it notes that were then read out by the facilitator. Almost every single question needed to be qualified verbally before we could be sure we understood the question enough to begin answering it.

    So we give up and admit that we don't fully understand the requirements at the start of the project and we know they'll change anyway by the time we're done. This makes it somewhat problematic when trying to gain budget approval or bidding for a project. A certain amount of education needs to take place in the corporate world to make it understand that specifying and building software is far from the exact science that it is generally assumed to be.

    When we engage with a customer we explain the futility of the fixed scope concept and rather than fix the scope we agree a fixed price to suit the budget. We then incrementally deliver the most valuable features, as prioritised by the business, until either we reach the end of the budget or achieve enough value from the delivered features. This approach does require a level of trust between the parties and has a much greater chance of success when the relationship works as a partnership rather than a customer-supplier arrangement.

    Another colleague has a post dealing with the change in approach required from the Project Manager's perspective when dealing with the cost-scope-time triangle. Find this here on Steve Garnett's Blog.

Powered by Community Server (Personal Edition), by Telligent Systems