Wednesday, 9 November 2011

Agile–What’s the problem?

Within my social circle there has been a lot of discussion around agile, scrum and waterfall software development lifecycle techniques (SDLC). The basic issue is that the grass roots feedback coming from sales and delivery is that the customer is asking for agile based delivery and more over, scrum based delivery. Anecdotal evidence suggests that the companies may miss out on lucrative projects through not offering a scrum approach to delivery. Now personally I’ve not seen any customers reject proposals by not offering a scrum approach however that’s not to say that it hasn’t happened. So the question has to be asked why I don’t subscribe to a scrum approach in all cases?

Well the first and foremost issue is that many of our customers request either a fixed price approach or a fixed date approach neither of which fits well with a scrum approach to the SDLC. Fixed price depends on a full understanding of the requirements and a full set of designs before committing to a price, or a significant proportion of the price is contained within contingency to accommodate the risk associated with not knowing the detail behind each requirement. Likewise an understanding of the complexities of interfacing to applications within and without the business domain is required to develop confidence in your commitment. The fixed date approach also requires a set of, and to quote the (ahem) USA philosopher Donald Rumsfeld, ‘known, knowns’. Even Ken Schwaber in his book ‘Agile Project Management With Scrum’, realized that the scrum approach ‘had no silver bullet’ for fixed price/fixed date delivery, going so far as to state that the approach would require ‘adding a waterfall phase to the front of the scrum methodology’, anathema to most scrum advocates.

Steve McConnell in his book ‘Software Estimation’ differentiates between estimates, targets and commitments when estimating software development projects. He states that ‘Businesses have important reasons to establish targets independent of software estimates…While a target is a description of a desirable business objective, a commitment is a promise to deliver defined functionality at a specific level of quality by a certain date’. He goes on to state that ‘a commitment can be the same as the estimate or it can be more aggressive or more conservative than the estimate’. So what does this mean for SDLC?

Customers who are looking for certainty in what is generally an uncertain process want a commitment, either financially in the form of fixed price or schedule, hitting a fixed date release. Since I base pricing on my ability to estimate the delivery of the project on ‘known, knowns’ through a structured approach using models and spread sheets I have to understand and communicate the approach and its impact on the SDLC in a way in which the customer will understand. Steve Resnick et al, in their book ‘Professional Scrum with Team Foundation Server 2010’, make a distinction between waterfall, agile (which they call MSF after the Microsoft Solution Framework) and scrum:

  • Waterfall – Scheduling is predictive. Using a known team and known technology, an experienced team can predict the duration of each phase and task. This method doesn’t respond well to slippage, as dependencies among tasks and phases are often very complex.
  • MSF – Scheduling is predictive, as in the waterfall method. However, because MSF is iterative, with more frequent releases, schedule slippage is more manageable. Subsequent releases can add or remove features to react prior impact.
  • Scrum – Scheduling is empirical. Work is scheduled based on the scrum team’s velocity. Estimation becomes more accurate with each successive sprint, based on actual work completed. Scheduling is very reliable because of the fixed-duration sprints. The scope is less reliable because features will move in and out of sprints and releases to accommodate the fixed schedule.

So what can we take away from these points. Well the first two approaches, waterfall and agile, have a very structured approach to gathering and engineering requirements therefore we can be very predictive around development of the estimate and the delivery schedule at a cost of being less reactive and flexible in adding additional requirements or making a change in the priority of the requirements. The third approach, scrum, has reduced confidence in predicting a schedule due to the nature of the backlog/sprint technique. It is extremely difficult to estimate the initial duration of the project when the points associated with delivery of the requirements within the backlog is based upon velocity, which is based upon historical evidence of delivery of software into the SDLC. This poses difficult questions around how you make a commitment to deliver requirements or how you make an accurate estimate for a fixed price/fixed date SDLC using scrum. So based upon this information, it looks like an agile approach would be the best at satisfying our customers requests to be flexible, yet agreeing to a commitment. I currently have an agile approach which works for me that develops the requirements and designs outside of the iteration using test driven development and continuous integration. This gives the best confidence in providing a price and a date to a customer and in making a delivery commitment to them.

At this point in the discussion I’d like to make in important point. Agile ≠ scrum. In fact for the best breakdown of myths regarding agile and scrum take a look at Eric Brechner’s book, ‘I.M. Wright’s Hard Code’, (2nd edition). He has many good points on this topic based upon his experience of the SDLC within Microsoft. Let’s take a look at his entry from March, 2006 entitled ‘The Agile Bullet; Enemy of the truth’:

  • Myth #1: Agile = eXtreme programming (pair programming, scrum, test driven development, user stories or some other agile method).

Actually what he describes in this section is that agile is actually a collection of many different SDLC approaches. You have to ensure that you have the right approach for the right project. I have spent a lot of time developing methods and I feel confident that the agile approach I have adopted will accommodate my customers requested commitments.

  • Myth #2: Agile methods can’t work for large groups.

I think that this is tosh, agile ≠ scrum. Agile doesn’t require that the customer product owner sits with the team 100% of the time writing user stories. I often work in a distributed fashion with more and more emphasis placed on an offshore delivery model using the India, Manila, China and Brazil. This means that it is impossible to have the product owner sit with the development team. Therefore an approach which works for this model is required. Agile provides the ability to develop requirements and designs outside of the iterations therefore it can accommodate large scale and distributed development teams.

  • Myth #3: Agile methods can work for large groups.

Now I know what you’re thinking “how can he justify this statement when he’s just praised the approach for large groups?” Well, Eric has a good deal to say on this. ‘The agile philosophy values “customer collaboration over contract negotiation” and “responding to change over following a plan”…[customers] get touchy when millions of dollars are involved…[therefore] applying agile methods to large-scale projects requires you to be flexible and creative to deal with these issues.’ So the approach is to make a commitment to fixed price/fixed date delivery based upon an on going discussion with the customer to ensure that they are happy with the priority of the functionality being released from the SDLC and also to discuss or negotiate the impact of changes on the SDLC and the fixed price/fixed date delivery. This means having a team at the customer site working with the product owner and communicating to the team at large.

  • Myth #4: Agile means no documentation.

Eric makes the point that ‘the agile philosophy values “working software over comprehensive documentation”’. So what does this really mean; No documentation? Of course not. Documentation should be seen as a deliverable and should be factored into any estimate and planned accordingly. Documentation makes the maintenance of the application possible and helps the organisation further develop the application in the future.

  • Myth #5: Agile means no up-front design.

When making a commitment to a customer, even using the agile approach, a certain level of design documentation is required. How else do you work out the complexities of the application architecture, which patterns you may use, what software models you may select? Again the design will not emerge from developers ‘doing stuff’. The balance is to generate enough of a design to help with the estimate and to drive requirements engineering so that the backlog and iteration plan is as well developed as it can during the SDLC.

So all in all, we’ve looked at the reasons why I prefer agile as opposed to the scrum approach to the SDLC, we’ve looked at the differences between estimates, objectives and commitments and finally we’ve looked at some to the myths associated with the agile approach. Wrapping this entry up I think we can safely say that although scrum is an excellent approach if you are not making a commitment to your customer and if they can make a mutual choice between delivery of functionality or delivery to price/date. However, most of our customers have fixed budgets and a timeline to hit making scrum a difficult choice pushing us to a decision between waterfall and agile.

If you’d like to have a further discussion then please get in touch.

Thursday, 3 November 2011

Microsoft Team Foundation Services Preview

Recently I was given a link to the Azure based Team Foundation Services CTP which is currently underway. I’m always curious to see how Microsoft are transitioning products into on demand services based in the Cloud. Access to TFS Services preview is only available via a GUID key which is only available from an invite from a user already on board the CTP. That said, if you haven’t a handy contact to obtain one of the keys there is a short video on the access page TFSpreviewAccCreatePagewhich shows an overview of what you get if you are lucky enough to hold the keys to the magic kingdom.

So, let’s assume that you have a key to access the site and therefore have access to the TFS Services environment. What next? Well with many of Microsoft’s services you will need to have a Windows Live ID to authenticate you against the Azure security services. You’ll also want to have an idea of what you wish to call your TFS project. The name you choose will become part of the overall URL in the form of https://yourprojectname.tfspreview.com which will also the the URL you’ll use later on to connect your Visual Studio client to the Cloud based TFS server. Finally you’ll need to enter the GUID key you received and click the check box to agree to Microsoft’s terms and conditions. Once this stage has been complete you’ll be forwarded to the Windows Live ID login page where you can enter your credentials to connect the Service with your Live ID.

Once on the inside you’ll be shown the Welcome page which has a number of activities and information. The item reaffirms the URL you use to connect your Visual Studio client to the TFS project collection. The  second item is a link to a page to create a new team project. Lets take a look at this. CreateNewTeamProjectClicking on this link opens a pop up which prompts you to enter a name for the project, a description of the project and prompts you to select a process template for use within the project. In my first project I selected the default choice which is the Scrum template provided by Microsoft. Once you’ve created the team project you may wish to connect a Visual Studio client to the project. This couldn’t be easier. Start Visual Studio and from the Start page select ‘connect to Team Foundation Server’. Click on the ‘Servers…’ button and then the ‘Add…’ button. Enter the URL you generated for you Project Collection and then authenticate using your Windows Live ID. Voila, you are connected to your TFS Preview project Collection. You then merely have to select the relevant project to connect to.

Now there are some gotchas you’ll need to be aware of before connecting to TFS Services. If you are using Visual Studio 2010 you’ll need to download the following:

  1. hotfixKB2581206
  2. hotfix KB2581206

In that order. If you wish to avoid downloading these installs then you can (if brave/stupid enough) download and install the beta preview of Visual Studio Dev11. This can take considerable time, SP1 is around 60MB which depending on your bandwidth could take over an hour to download and install. The hotfixes are minor but again may take over 30 minutes to download and install. The beta preview of Dev11 will take considerably longer at 1.1GB.

In addition you will need to configure a local build server to run the build agent. This isn’t available within the current setup so you may need to have a handy server sitting around to run this service.

Well, if you’ve achieved all that, pat yourself on the back, sit back and relax while you wander around the new landscape of TFSPreview. The UI will be familiar to those of you who’ve used TFS anywhere and if you are used to this type of interface then you’ll get on fine with managing the project via the browser. Developers/testers and power users will want to use the integration with Visual Studio to access the project, but hey, nothing new there right? The project is free to invite team members and they don’t have to have a unique key to obtain access, although depending on what permissions you apply to their accounts will determine what they can and cannot do. My advice would be to start a small project with some colleagues/friends for fun and see how you get on.

In my opinion this will be one of the game changers for distributed teams. I love the thought of having my team working out of their homes or from offices spread geographically. Mix this with other collaboration tools such as Office 365 then you have a  great set of productivity tools which really does mean that the office can be a thing of the past.

Wednesday, 14 September 2011

Managing a Software Services Company

As an employee of a software services company working in their software architecture group I’m constantly looking at how I can progress from a customer focused individual into an internal management focused individual. At this juncture I had better give you some background to this post.

I’ve been in the technology consulting game for nigh on 16 years working my way through the organisation from developer through project management and back into development services as a solutions architect. I’ve successfully managed projects, teams and at one stage 80 employees and a multi million pound P&L account. It was this role which I found most stimulating. The management of a P&L is where I want to take my skills. Identifying strategy and delivering on that strategy to drive revenue, manage cost and hence increase controllable income.

To enable me to progress this area of my career I’ve been reading the following:

  1. Operations Management: AND MyOMLab; Prof Nigel Slack, et al

These books came highly recommended for giving you the thought leadership required to deliver on the process and organisational aspects of running a software services company. All three are classics in their field and together give you the information required to manage the operations of a service based business, measuring the relationships between strategy and business initiatives and organisational management. The only thing missing from this is a decent sales and innovation set of books. For innovation I would recommend Innovation to the Core: A Blueprint for Transforming the Way Your Company Innovates; Peter Skarzynski and Rowan Gibson.

Sales is a more difficult to pin down. I personally like the Solution Selling methodology looking at solving the overall business problem rather than looking at the individual technology sale. There are a number of books on this subject from SPI who own the copyright to the content and I advise reviewing these publications.

Hopefully one day an opportunity will arise where I can apply these skills to get me the role I want to be in for the second half of my working career. Fingers crossed eh.

Wednesday, 7 September 2011

What Does A Career Mean To You

Recently I’ve been inundated with recruitment firms spamming my LinkedIn account wanting to be my “friend”. I see it as akin to cold calling my telephone or knocking at my door. It parallels door-to-door salesmen and in my opinion rank just below those people who try and get you to switch energy provider or the perennial charity muggers or more commonly labelled by their euphemism, “chuggers”.

Although I know that they have a job to perform and that they are generally highly motivated to network and make connections, I fear that I loathe the way in which they trade you as though you are fattened calf off to market. The faux cheerfulness, the chirpy, upbeat, ‘we can achieve anything’ nature of the email or call. In reality you are column fodder for the organisation engaging the consultancy to find them a candidate.

This led me to ask myself, what my career means to me? I’ve been in work for 24 years since I left school at 16. Changed careers once and made redundant once. I’m a qualified engineer, a certified project manager and have been in my time a software engineer and systems architect and worked within a council’s environment department managing the closure of public byways and footpaths during an outbreak of foot-and-mouth disease. I’ve not really had a plan for my career. I’m an opportunist. I look at opportunities as and when the arise and make a choice on the facts as they are presented to me.

The spamming of my mailbox has made me think, as I reach middle age, should I take more care over my career path? I’ve made a pretty good show of it so far climbing the ladder of seniority early on in my career through long hours, hard work and making opportunistic moves into software engineering in the early pioneering days of IT in the 1990s with a global systems integrator and consulting firm. Moving to a start-up in 1999 helped me see the fun side of life, working with a bright bunch of guys who had no idea on how to run a business. This gave me the insight into operational modelling and data gathering to run a commercial venture, or I should say, how not to do it. Moving into my next venture in 2001, I took a short term contract with a public body and wow, was I in for a shock. Trust me, the stereotypical view of public bodies is right. Unionised, inefficient and bloated. No wonder my taxes are so high. My final career move in 2001, back into IT consultancy has seen me stay with my current employer the longest in my 24 year history or work.

The early days were classified by the can-do attitude and nonchalant bravado of the young company. An air of Dot Com pervaded the office. People at the top of their game working with entrepreneurial sales and management drove the company on from zero revenue to create a billion dollar global company within 10 years. By anyone standards that’s an amazing achievement. I’ve made many good choices and a few bad ones during my tenure and now as one of the senior members of the team I find myself banging on the glass ceiling. Which brings me back to the title of this blog entry. What does a career mean to you?

I’ve been analysing my options and my current position within life. I’ve been reviewing what I want out of my career and what I want out of life. Call it a midlife crisis. Call it an awakening. Call it what you will. I’m now looking at the second half of my life and wondering what I want out of it. I’ve set a few criteria to paper in order of preference:

  1. Personal Life – I have a wonderful partner who is open, inquisitive, and fun loving. I intend to make the most of my time with her. I have also developed a of love country sports. The sound of guns popping across a grouse moor or over a cover crop of sweet corn is a joyous occasion. I have made it a commitment to make more of the countryside. More shooting, fishing and walking.
  2. Relationships – I love cooking and love making dishes for others. Hospitality and me go hand-in-hand. I have made it commitment to socialise with my friends more at home and abroad.
  3. Career – It’s now all about making time to do the things I love. To set me up for retirement in a country cottage on a shooting estate with a river running at the bottom of the valley. To make sure I have enough in the bank and retirement fund to ensure that I can live without wants into my dotage.

So what does a career mean to me? It’s a means to an ends to satisfy my own wants. It means delivering on your commitments to the organisation to ensure that not only do you satisfy your employers but that you satisfy your own self worth. This self worth drives the ability to improve your personal life and your relationships. It also gives you the ability to generate the income which you require to chase your dreams, in my case the cottage on the shooting estate with the river at the bottom of the valley. Thatch roofed with a path down to my own trout stream for a little game fishing. That’s what a career means to me.

Thursday, 23 June 2011

Taming the data avalanche

Avanade had some recent press supporting Ferranti in building out a Microsoft Dynamics AX solution. My colleague, Daryn Edgar explains why Avanade and AX were the perfect solution for Ferranti. This article was first published in the Sunday Telegraph in the UK on Sunday 19th June, 2011.

________________

Ferranti and Avanade are working in partnership to bring a pioneering software system to the UK that will empower smart utilities as they address the challenges of a rapidly transforming market.

Utilities used to be regarded as dull but safe local monopolies. Not anymore. The suppliers of the water and energy without which modern life would be impossible are now exposed to the winds of competition and waves of criticism from fickle customers and angry shareholders.

On top of that, the industry is in the front line of the global response to climate change, having to adapt to complex charging structures to encourage people to use less energy, switch to green energy and even generate their own and sell it back on to the grid.

And it is going to get worse. A wave of new entrants and mergers is putting strains on IT departments presented with the need to re-engineer their software systems on a regular basis.

So it is a critical moment for the reappearance in Britain of one of industry’s great names: Ferranti. Back in the 19th century, Ferranti virtually invented the system of central power stations distributing AC power. Working In partnership with leading systems integrator Avanade, Ferranti is bringing to the UK its product suite for the utilities – MECOMS.

Ian Campbell, Ferranti’s business development director in Britain, explains: “The MECOMS product makes optimal use of
Microsoft Dynamics AX and covers a wide range of utility business areas such as customer information systems, CRM, Complex Billing, Meter Data Management, Load Forecasting and Enterprise Asset Management with a strong focus on lowering cost to serve.”

Avanade – a joint venture between consultancy Accenture and Microsoft – is the perfect partner. “The strong relationship with Microsoft combined with the in depth experience of Avanade and the strength of a product that has been proven in liberalised markets across Europe makes this a very appealing proposition for any utility,” Campbell says.

“MECOMS streamlines business processes such as meter-to-cash to combine high efficiency with first-class customer service. This flexibility to adapt to changing business needs is also reflected in local blueprints which enable MECOMS to handle complex aspects of the UK market such as market interaction, which deals with meter readings, changes of supplier, changes of tenancy and so on by exchanging messages across an industry network of consisting of many hundreds of participants.”

MECOMS is particularly suited to meeting the challenge of the Government’s smart metering programme which mandates the roll out of 53m smart meters to 27m premises, each producing an avalanche of data.

Daryn Edgar, senior director, Dynamics AX at Avanade believes the combination of MECOMS and Dynamics AX offers something new to the utilities market. “Avanade has a deep technical expertise across the entire range of Microsoft technologies combined with a services approach, harnessing expertise from consultants round the globe,” she says. “MECOMS and Dynamics AX form a platform that ties the front and back offices together and streamlines operations.”

One of the strengths of MECOMS is its close integration with the world’s most widely used and best-understood software, Edgar adds.
“It sits on the Microsoft technology stack so it is relatively low cost and easy to use. Case studies show that staff in call centres can be on stream in a couple of days instead of weeks Don’t get buried in data or months.”

Wednesday, 1 June 2011

Twitter Analysis. What’s My Impact?

One of the things I am really interested in is how to make use of the data that his being made available to organisations out there embarking on a social software journey. To that end I have often had to ask myself the million dollar question ‘so what’ when any new visualization software comes along offering yet another view on the data from Twitter/Facebook/FourSquare and so on. There seems to be so many software houses and lone wolf developers taking advantage of the API’s to generate data visualizations on hash tags or @names. The big question on their minds should be the million dollar question.

Twitter Charts

One of the better representations of Twitter information is xefer from which I’ve taken the image above. Basically it takes your user name or #hashtag and queries the stored data which Twitter has to build out a data visualization. The technicalities behind this are not as complex as you may have first thought. xefer has used Yahoo Pipes which is a high level auto code generator based upon a drag-and-drop style design surface. The pipe generator allows you to select a source, link it to a series of computational modules before pushing the resulting data out to a desired API, in the above case, the Google Charts API.

So what does the chart show? Well basically it’s my tweet history over a defined period showing when I’m most active and my reach across my Twitter network. The bigger the bubble, the more tweets I made and the more retweets and replies I received. The chart is organised into a matrix of information with day and time as the Y and X axis. It’s easy to read and provides me with personal data which can be interpreted to say that I tween more in the morning as I get up and later in the afternoon as I ramp down.

Now the real power of this would be if you could collect and analyse data using pipes and data visualization techniques to show sentiments across the blogosphere and or twitter universe to show how your marketing campaign may be running or how relevant your personal profile may be if your a celebrity of note. It could be quite powerful stuff. There are of course pay-per-use SaaS models from providers such as trendrr but these come with a fee.

The world of data consumption is out there, grab it by the neck and give it a shake.

Friday, 27 May 2011

Crowd Sourcing and Social Good

I read this article on Mashable this morning and it made me stop and think. Many organisations have a Corporate Social Responsibility programme often referred to as CSR. It generally centres around the CSR team selecting a preferred charity or local Non Profit Organisation (NPO) and either making a cash donation or through supporting the employees by donating time to help out with the charity or NPO.Can Crowdsourcing Make Any Dream Come True-

 

 

Now I love the thought of crowd sourcing solutions to peoples problems, but I have to admit my first reaction to seeing this news item was that it is going to be full of duplicitous people looking to freeload of generous individuals who are looking to genuinely relieve some suffering out there. To some degree I was right. Judging by the requests for money from some people you could assume they were freeloading. However, on closer inspection you notice that the stories all have a pattern. The individuals in question all seem to have had a tragedy within their lives making them down on their luck or causing them to develop a mental illness.

This alone makes you realize that you are in a unique position to help others less fortunate than yourself. By providing a small amount of charitable time/money/advice you can help move these people out of their current situation and maybe, just maybe, move them onto a stable path rather than a downward spiral. The fact that Wish Upon a Hero is using a Social Media paradigm to attract and enable donations confirms that Crowd Sourcing can provide actions in a wider social context. All of those people out there who do not understand the power of Twitter, Facebook, Quora and so on, take a look at Wish Upon a Hero and see how you can get involved with Social Media and try and project how you could build upon the concept held within this site and apply it to future uses of Social Media then you will begin to understand the power of this technology.