Making our developments more efficient

Podcast available for download with this article click here.

We’ve been developing software and web solutions now since 96. Our development processes have changed throughout the last decade, however our fundamental development approach has always been waterfall and the tools and techniques we’ve been using have been driven by traditional software and project management methodologies.

In the last five years Agile has been a big catalyst for change in our industry. It promised speed, agility and flexibility and above it may hold the golden ticket to increase productivity. However the struggle still remains that Agile only works efficiently if your customer trusts you implicitly and is bought into the concept of time and materials. This always remains a challenge as project budgets remain finite and it will continue to remain a leap of faith for any customer buying a web solution or software. But we persist, we love agile and we believe it can give us the necessary productivity and efficiency gains. We just need to wrap it within a traditional fixed price process.

So this is what we are doing

All our development still remains waterfall. i.e. you have a start, you have fixed phases and then you have a delivery. Equally you have capped and managed budgets and delivery dates. Our customers know what they getting and when they are getting it. However when we dig deeper into the phases we use a mixture of true agile for development and a colloaboration driven approach to get the project into development. I’ll start with the latter to explain how we begin the journey;-

Starting the project is key and starting any project well sets the foundations for its success or not. There are a number of things that we must get right here…

1) Project control and governance

The plan and budget are the key fundamental controls in any project. The hardest thing to do is set out a framework plan for the project when you haven’t begun your requirements capture or discovery. However this is what we do first. Immediately as we begin discussions with our customer we use our project planning process to itemise the solution. What we mean by this, is that we use our plan to capture all the discussions we need to have about how the solution evolves, we capture what needs to be discussed, designed and who needs to participate. We then set targets by when these tasks need to be completed, not how long they will take. We set a target based on experience and then we go for it. This forms the basis of our design phase. There are technical design(TDs) activities or create/ux (UXs) design activities. We then document and run workshops and design sessions to hit the targets we set. The plan then goes on to form the governance of the project to ensure we don’t loose anything and we have the appropriate targets and budget controls. As we continue our design and specification process we then are able to evolve our build estimates, team size and run order. Governance goes on to cover more aspects of the project which I will discuss later but starting it right is our biggest governance step.

2) What are we delivering, what is our specification?

As I discussed above we use the plan to itemise the project. Its worth discussing itemising a project and what we actually mean. Itemisation means all the discussions about bits of the system, design, questions and answers that need to be dealt with to start to specify the solution. By itemising the project what we are doing is starting to create a framework for our requirements to come together. Each discussion can be grouped into functional and non functional requirements under our TDs or UXs items. We then start to structure our specification but this is where things have changed more recently. Our specification is a collaborative knowledge base that our partners, customers and suppliers can all jointly work on to design and specify the itemised elements of the solution. The knowledge base we use for all our projects is Atlaissions Confluence it gives us the necessary collaboration capability to build requirements, document them and database them. At the end of the phase we still sign off before we begin build. But the result is a collaborative knowledge base that supports the project and gives the customer and the team a clear view of what we are building.

Next up is the build

This is where we embrace agile. We know what we are building and we know how long we have. So we are able to define how many sprint windows we have. The first thing to set is your sprint window time. We recommend two week sprint windows, this gives ample time for the dev team to deliver something, but not too much time that we can’t monitor progress against objectives.

Once the sprint cycle length is defined we can then start to do our planning. To do this we revert to our specification(knowledge base) and look to break the user stories out. The team then plans around the user stories. This is a team approach using the agile methodology. But essentially all the team are doing is loading a hopper of work for each sprint cycle to then execute, based on skill, performance and ability. Again we turn to Atlaissions Greenhopper product to plan the sprints, load the hoppers and monitor performance against those hoppers. Greenhopper gives us the necessary repository of historical performance, burn down tools and planning boards to do this collectively and efficiently within the team. Here the Kanban approach provides the necessary collective organisation of the team and their status reporting against task.

So during the sprint cycles we can back off the plan a little and just report progress against sprint. We don’t need to worry about too much detail in your project plan, just key milestones and the sprint cycles and performance against those sprint cycles, the software does the rest.

During the project we use continues integration on our builds so we manage the build of the software and source control. We are also starting to look at automated functional testing. Here we are looking at platforms such as Teamcity and Selenium testing. We need to do more work to standardise our approach across all our technologies, however automation is key to improve quality and keep the code base together.

Another area we are also addressing is the concept of review boards for peer reviewing of checked in code on projects. This sounds bureaucratic, however it is essential to sanity check code but also to provide knowledge sharing across the whole solution. We haven’t quite got a full solution rolled out but its something we are definitely looking to apply to our next round of projects.

Testing

Often over looked and left to the last minute to plan for.  Amaze’s approach is to wrap testing into all phases of the project.  The test plan starts up at the specification phase of the project.  We focus on acceptance criteria and unit testing with the final wave of alpha and beta testing being performed by independent teams either within Amaze or externally via our partners. Again we turn to Atlaisson and the Jira platform to manage issues as they are raised and to ensure the correct fix, deploy and re test cycle is provided.  It is also key that all our projects are fully tested independently for security, cross platform/ device, performance and load testing and any compliance requirements such as QCI.

Project Governance

Finally we turn back to overall project governance and programme management again.  We mentioned it at the beginning of this article however it is the most critical function of any project. Failure to build the right set of principles into the project governance leads to projects loosing control and often overrunning.  So these are our principles..

1) The team own the solution and the project not the project manager.  The project manager must ensure joint and joined up ownership is maintained throughout on the project.

2) Start each week as if its the last.  Keep the pace up on the project and ensure we are delivering every step of the way.  There’s not time for last minute saloon on any project this is not University.

3) Budgets and hours burn are key.  Make sure we are not wasting time and we look at productivity throughout.  This includes quick decision making, collective ownership, delegation. Don’t be afraid to off load heads from your project if they are slowing down decision making or complicating things. Smaller teams can deliver much quicker.

4) The plan must be target driven not reflective.  We need to drive ownership and weekly deliverables using the plan.

5) Use the tools to report status, removing the need for reports and spreadsheets that are often not read.

6) Ensure smooth an open communication across the whole team and your customer.  There should never be surprises.

7) Deal with problems never put you head in the sand.  If somethings difficult it is most likely a problem that is not going to go away the quicker its dealt with the lesser the impact.

8) See the big picture.  Its not next weeks onsite discovery you need to just worry about, its the end game, the live project.  Don’t loose sight of what we are here to do.

So to conclude

Agile is not everything and will not fix the majority of projects out there, particularly the fixed price ones.  Its not a magic wand, however it has brought about some good tools and collaborative approaches that encourage good shared ownership in the project deliverables.  Each project should be looked at from a ownership perspective, we should look a production values and how we streamline delivery using efficient approaches to both share information and to manage how we assign tasks to the development team.  The teams themselves need to exposed to this thinking and able to contribute in the direction of the project.  Above all we need to stay results driven, very efficient and share ownership in the end game.

Cloud Computing

Cloud computing has certainly gained momentum over the last 12 months.  It has no doubt struck accord with cash strapped businesses.  But our view is cloud computing is too low down the software stack and is predominantly concerned with vitualising platforms.  As more and more businesses compete in this space we see the value of cloud computing moving up the stack and unleashing its service orientated flexibility on the domain of traditional software as a service vendors.  Confusing?  They both operate in the cloud but for pure software as a service vendors to add even more benefits to business they need to reach into organisations.  Clouds will grow tentacles into businesses as the membrane between the traditional I.T. systems and the cloud gets thinner.  What does this mean in real terms?

Data will become the platform but it will extend with its applications into the cloud.  As with the web the data will reside in the cloud along with an app store approach to enterprise applications.  Internal private clouds and infrastructure will become agents to the cloud.  The cloud concept will increase up the value chain where cost savings are only half the reason why people will make the move.

The connected visitor

We are working on some interesting connections between user visits to a website and the development of that user’s digital profile.  What I mean is that a visitor to your website generally takes the form of a hit or visit.  But most users are now starting to connect with your website via some form of authentication or single sign on through their social network accounts. This enables us to build intelligence on that user so we can instantly respond to that user’s likes and needs.

Behind the scenes we can use intelligence to join the dots around that user and look to build a digital footprint that enables us to blend content and navigation around the user.  We can also use this intelligence to  understand the user(taking into account their consent) and segment according to their likes and dislikes.

The next generation website will use a combination of big data and connected intelligence to provide a more tailored browsing experience with content that is both more useful and intuitive.

This type of technology plays dividends when built into e-commerce solutions, both in terms of the templates that display product information but also the dashboard technology that enables e-commerce managers to keep track of the performance of their retail operations. It allows them to have a digital nerve centre monitoring all aspects of the commerce site.

The technology to do this exists in the identity layer of the site. We are seeing the development of SasS based identity management providers that can start to provide connected sign on, intelligence and reporting for your digital estate.  We will report more on this in the next few weeks.

Well Microsoft you might just have something(but is it cool enough)

I’ve been waiting for this one for some time.  We got a glimpse of some preview technologies earlier in the year, over at Redmond and I suspected the emergence of this little beast.  Not sure how your OEM partners are going to view it though.

It looks like a good attempt and is certainly better than most of the devices coming out of south and east asia.  However does it have the cool factor?  Its a bit like business men in polyester shirts.  Theyare just not cool.  However they are business men and that may be Microsoft’s game.  I think the device will makebig headway amongst the standard mundane business world away from the image conscious brand people. The stylus will make it a great note taking tool when combined with one note or even evernote and I think MS Office will be one of the biggest reasons for using the device.  Cool accessories, like the key board approach seems to really think about productivity.

ImageI think, Microsoft, you might just capture marketshare here.  The I.T. departments of the world will surely like to take this as a standard.

But I’m afraid its still not cool enough.  I’m going to keep my iPad but I might just purchase one, for those productive days where I don’t need to be as creative in my thinking.

 

PHP and Lamp with iOS

So I tweeted some time ago about moving away from Microsoft server technology and in particular .NET.  I’ve spent most of my professional career building server solutions or leading teams using the Microsoft stack.  I’ve loved it for so many years and have spent the same years justifying its scaling credentials. We’ve even got many proven successes out their being used in anger. One success above all is the new Life platform that we’ve developed for UniServity.  The scaling capability is proving itself  over and over again and therefore my view of Microsoft server technology  remains unchanged.  However I’ve had my head turned slightly by simplicity in the last few weeks. Also by the increasing costs of licensing.

I’ve just started building a series of iPhone and iPad apps with a server / cloud component.  I naturally turned to Microsoft for the answer, however the thought of opening up Visual Studio architecting this fantastic multi layered app with an MVC architecture fills me with dread, when all I need to do is build something simple that will access a database and scale. I’m also using a Mac now-a-days have have been for the last 5 years.  So we now need to boot up parallels start up visual studio and get coding.  All a bit much for my mac book air.  (sorry slimmed down the hardware due to all the traveling)

So I dreamed of the days of Perl and CGI using BBEdit on my original macintosh to edit simple scripts.

PHP gave me the answer and when you start to dig a little deeper it really does provide a viable answer.  It scales well, Facebook proves that with its 540 billion page impressions and its simple to get coding.  I can use my mac as my server and I know it will easily port to a linux or unix platform in the future. I’ve downloaded some simple editing tools and with mysql i’m building my simple cloud based service for my iOS apps.  Except its really not that simple any more.  Its amazing how quick you can progress. Its also like riding a bike, you never forget the technology’s roots and you find that its back down to natural programming techniques.  Rather than even more layers of abstraction you get with .NET.

AND above all no license fees and no policy of requiring even more hardware to run your software.  It does scale very well I have to say and it does spark that programming geek in us all.

More to follow as I progress.

 

Near field communication, can it make life more convenient?

I’ve been looking into near field communication and possible applications for it.

Its and interesting technology and there is certainly lots of application ideas for it. Obviously the biggest break through will be a move to cashless society using your mobile phone to pay for things with a simple swipe of a sensor. Oyster cards and ticketing are also a logical route especially for people like me who keep loosing their Oyster cards. But there are lots of other applications which will make life simple and convenient.

I’ve been working with NFC with my new blackberry. I’ve just taken delivery of my first batch of sticky sensors. First thing I wanted to do is stick one on my desk. I wanted my out of office and other services such as social network status to change their status when I arrived at work. It proved really easy a simple swipe and my app did the rest. It switched my out of office off and the checked me in on facebook.

Next the car. One sticker on the dashboard, out of site, mind. One swipe. The phone was configured to turn its bluetooth on and switch off the bleeps from my email to save it catching my attention whilst driving.

Saved one sticker for home. Obviously the house isn’t fully automated but I could update some settings. Much more work here.

I guess when you start thinking about convenience and applications there are a lot of things you can use the technology for. Think about it being rolled into all your favourite shops, in the packaging of product, advertising boards, hotel checkins, door entry, flight boarding, immigration, business card exchange, time keeping systems and many more such instances.

Roll on iphone 5 we need to start building apps now.

Building a viable e-commerce business model

For the last week I’ve spent my time on helping produce a viable e-commerce business model using latest enterprise class commerce platforms, a well informed seo and media strategy and a decent runway to break even. This is not the first time may I add, but it does take into account some new challenges.

The saas world, e-commerce 2, global markets and the improved use of pay per click have made it even more a numbers game to make the business model work. Obviously your product needs to be good, but if it is and you have the right partners in place and the right technology it is simply a case of playing the numbers to get a return on investment? Sounds easy? Not quiet that easy. Its a fine art, where you need to apply your skills and know how to finally tune your system to get the most out of it. Its only through experience and through having the right partners can you guarantee the numbers game will work.

To get it right depends on your conversion path and this starts by having a coordinated approach between brand, traditional advertising, pay per click, social channels and traditional product channels. All need to be identified and a strategy developed to create a buying conveyor belt to your e-commerce cart. It doesn’t start with just your site its starts a lot earlier.

Choosing the right platform and partner to route this conveyor belt through the buying process will lead to successful conversion.

The platform needs to be able to take the feeds of potential customers from all these conveyor belts. It then needs to show case the product well, display options and link to other products to engage the user and stimulate their buying emotions. This is where saas platforms that have one model to fit all fail to deliver. They fail to capture the channels and trigger the buying responses. A wholly owned platform tailored to your product, brand and customer will win hands down when it comes to maximising conversion. It requires multi channelled approach to commerce and there are only a few platforms out there that do this well.

So if you are looking to play the numbers conversion game you need to be in full control of the whole engine from advertising spend, ppc, seo to platform and design. You need to control it all in order to fine tune the animal. This I believe is critical to achieving your business plan. However think SasS when you implement.  Build the As A Service element for your global markets but own the technology yourself.