business

Not all software is created equal

Posted in books, business, software, travel on July 22nd, 2008 by Hamish Rickerby – View Comments

The types of companies I (used to) work for and (now) consult to,  love release management.  At least their IT people do.

For those who are not in the know, check out the following 2 resources for a bit of background

When companies often start out, they focus on getting IT systems enhanced as soon as possible.  A simplified, but common cycle is design (maybe), build (definitely), test (should) and deploy (definitely).  Steps in this process may be skipped when an organisation is small, and the side-effects of getting something wrong in build or deploy can be handled on-the-fly.  As companies mature and grow (in both size, application complexity, and IT landscape complexity), they often wish to have more control over the processes that manages software design, development and deployment.  As enhancements start to involve distributed application development (eg, introducing a new feature on a customer care system, that requires a service on a billing system, and have that exposed by an integration bus, and that integrated with from a web or IVR channel), the process and dependencies involved with deploying that application become more complex.

To ensure that the cross system (and often) cross department, company or country design, development, test and deploy process, companies introduce Release Management Processes.  Different application development projects are collected together, and managed from a central point – who is unimaginatively known as the Release Manager.  The release manager usually has responsibility for delivery and deployment of all the changes requried within a system, and across systems for a particular instance of deployment activities (that’s a wordy way of saying that a whole load of stuff gets developed, tested, and then deployed together).

So, to recap – early days – applications designed, developed, tested and deployed whenever people want.  More mature business – applications designed, developed, tested and deployed under a managed process, with defined implementation dates.  In principle, that sounds fine.  In fact, it sounds like a sensible way to manage development and deployment.  Software can be complex, and complexity grows as you have more systems involved, different parties, different skills, and in some extreme cases, different countries and cultures.

Business users (ie, the people paying for the development, and specifying the functionality) rarely like release management.  It’s costly.  It’s slow.  It’s inflexible.  And this is more true if the business users know a little bit about software development, and especially if it involves the web.

The web is known for being an inherently agile environment.  Web applications are usually self-contained and loosely coupled, and can be easily and quickly altered.  There are other types of applications that exist in enterprises that do not have the same inherent agility.  Customer Management Systems, Billing Systems, Banking Systems, ERP systems.  All of these systems usually have long lead time on changes, strict testing requirements, are have historically been designed and developed in a different (monolithic) manner to web systems.   The requirements on them are often different too – they often aren’t about exposing new “services” to the public, but more about internal services, bug fixes, operational fixes, or enhancements to allow new products to be offered.  However, they don’t interface with the external customer and often aren’t driven by the same requirement for agility – it’s often easier in business (for your brand, and bottom line) to deploy something that is a bit crappy internally (manual processes, double-keying data etc) if you can get the message out to the customer.

Business users want the ability to alter the messages and functions that are delivered to their customers on their terms – when they want – not bound to some (in their eyes) arbitrary release schedule.  They don’t understand why their functionality must be deployed with another, completely unrelated, system or process.  They want to get their product to market.

I feel strongly that certain types of systems fall nicely in a “release managed” category, and others fall into a “system owner” managed category.  (sidenote: I feel that for a platform that supports as much functionality as “the web” that often The System is too coarse a unit for splitting – it could be taken down to business process, journey, or user type).  For me, I believe that systems that have a requirement to be highly agile, provide a high level of flexibility (configuration/scripting, as opposed to packaging and release of compiled code), and support essentially decoupled functions and flows, should not necessarily form part of conventional release management processes.  The “release early, release often” convention can be followed on these systems.  Obviously, a business must be made aware of the risks with this approach (e.g., more defects are likely to arise), and they should also be made aware of some of the sensible processes and changes in methodology to make this approach work (e.g., agile development methodologies).  In my mind, integration and web implementations fall into this category.

Integration systems enhance the ability for each system to remain decoupled from it’s peers – and this in turn means the systems are more modular, and should be able to support development and implementation (outside of a monster sized release), even when all of the required functions are not implemented.  Integration systems can provide stubs that indicate a service is unavailable, and when each system is finally ready, then the processes can be turned on in each.  Integration systems are inherently cross application, yet system independent at once.  This paradoxical view on integration is what makes them great candidates for exclusion from release cycles – they are self contained, but support both the situations where external systems are present, as well as when they aren’t.  This level of resilience and flexibility means that they are a core enabler to allow other systems to deploy functions, and still work when the up/downstream systems they are reliant on do not exist.

I have a couple of recommendations if your organization is considering looking to migrate to a release management style approach for application development and deployment:

  1. Applying release management only to systems where it makes sense to do so, will allow a business to maintain the necessary rigour required for financial, legal, regulatory, professional and moral obligations.  Release management should not be a one-size-fits-all approach.
  2. Shielding systems with integration and process configuration flexibility (on/off switch for process/service enabling) will reduce the dependency of each system on it’s peers to be launched – and this in turn increases the flexibility to make changes to an individual system without them having a downstream impact, and increases the ability to more quickly make changes.
  3. Applying a finer-grained design, build, test and deploy scope (i.e., not cross-system) to customer facing systems will give businesses the agility they desire to get their messages to market.  This in turn will allow businesses to try more products and services in the market, and respond to competition in a more timely manner.

I believe following an approach that ensures that your systems are shielded from changes in each other, and promotes flexibility and agility in the customer facing systems is key to delivering true value to the business in terms of both responsiveness, and reliability.

Podcasts

Posted in business, telecommunications, web on March 18th, 2008 by Hamish Rickerby – View Comments

I’ve been struggling to find podcasts that I really dig. Redmonk radio lost me as a listener. I thought their early episodes (up to around 40 or so) were great. A good mix of strategy, business, and IT – in a general sense. I’m quite an enterprise focussed generalist, so that really appealed to me. However, recently they have released the RIA and IT Management podcasts, and they are not for me at all – so I unsubscribed.

I went looking last night for some new podcasts in iTunes that might appeal to me. I found a couple, but am still left unimpressed.

What I found was…

  • Deloitte UK Insights – Interesting analysis from Deloitte UK – based around their recent releases of sector based 2008 predictions. I liked this, but I’d like it to be more frequent than yearly :-)
  • boagworld.com – not listened yet
  • Enterprise Architecture with Jan Popkin and Enterprise Architecture: Lessons Learned – thinly veiled sales podcasts from Telelogic – authors of the Popkin System Architect tool (which I personally like as a tool, but not as much as Metis Architect)
  • Manager Tools – not listened yet
  • Pragmatic Programmers – not listened yet
  • TelcoTalk – product reviews, US based, but features some international news. I think this has promise, but needs to leave just reporting about device press releases and features, and start to comment more on how the devices are unique in the market, their competitors, business value they create etc…
  • The Web 2.0 Show – not listened yet

What I’m actually looking for is IT / Telecommunications / Enterprise / business / strategy / analysis style talking. I’m not after development podcasts (although the Ruby On Rails podcast is good, and I’m expecting PragProg, boagworld and web2.0 show to be similar), but I do enjoy the style of them – talking about new ways of working, the business value of agile methods, interviews with startups and businesses on introduction of new technology into the enterprise etc.

Does anyone know of anything that will fit the bill?

No work for 1 week!

Posted in business, telecommunications on March 3rd, 2008 by Hamish Rickerby – View Comments

Well, last friday (29th) was my last day at Vodafone Group Services. It feels a bit weird not working there anymore, although I don’t even know if it’s really hit me. After 8+ years in the same group of companies it’s just a bit strange to be out.

I’ve got a new role at a consultancy based in London, starting with some intensive training on the 10th March. Should be very interesting to start working on the other side of the consultant/customer relationship. I’m really looking forward to it – it’ll be great to be able to interact with a wider range of companies, industries and perform a much more cross-functional role. It should be great! And finally being able to feel like I’m delivering value to people and organisations again – that will be the most rewarding part of the move (of course, I have been delivering value for the past 8 years, it’s just in the last 2 it’s been in a very different way – all advice and recommendations, rather than something tangible).

The biggest thing that I think I’m going to struggle with though is having to pay for phone calls! Spending a long time with free wireless voice and data services builds up some bad habits (from my bank balances point of view!)

Coding vs Configuration – The vendors are missing the point, and the customers aren’t helping

Posted in business, software on February 8th, 2008 by Hamish Rickerby – View Comments

Large software vendors do (often in the long term) listen and act on what their customers say they want. However, implementations are still missing the point. What customers say they want and what they actually want can be very different things.

Historically people (like me) in enterprises have harped on to vendors for years about how we want their large enterprise applications to be more configuration driven rather than coding driven. The actual purpose behind this was about time to market, resource availability with the necessary skill sets required to maintain and alter the application, effort around testing and deployment, and certainty about the validity of the syntax and sensibility of the customisation. Vendors have responded by closing the code base, but offering more complex configuration environments – which is exactly what we have asked for (see next paragraph about how we have asked for the changes). However, what they have provided doesn’t meet the actual business goals of the request. For example, I’ve been recently looking at some Product Configuration software that has a guided Java coding environment for rules definition. This doesn’t actually make the implementation simpler. It means that your (previously) relatively unskilled (and that’s flame bait if ever I’ve seen it) configuration staff have to significantly increase their skills to match those of java developers. Its called “configuration” because its done in a “configuration” tool. The configuration tool is as much a config tool as Eclipse is (which has code completion BTW, is equally applicable for the task, probably nicer to use and definitely cheaper). What it’s done is moved the effort from the development staff, to the configuration staff. Assuming staff are happy with what they do, developers are unlikely to want to join a “configuration” team, and configurators are unlikely to want to gain development skills. One may also argue that your testing and deployment efforts are more difficult, because the coding that was done by people who know how to code, is now done by people who don’t know how to code – this in my mind introduces more risk. You also don’t know which parts of the application are affected by this complex configuration activity, and this may drive for more rather than less regression testing.

I’ve also been reading recently about user stories, which are something I’ve never professionally come across. I’ve been working for my entire professional career on waterfall based implementation projects, with requirements and scope specified in documentation like traditional UML use cases, interaction/sequence diagrams, and IEEE 830 style requirements. I wonder if the large enterprise is its own worst enemy when it comes to vendor software direction and influence. We are always writing (and that’s the first mistake) very specific (and that’s the second mistake) requirements for vendors to implement, and influencing them through RFIs and RFPs which contain hundreds or thousands of these requirements. Maybe if the interaction was more conversation and (business) outcome based we’d actually get what we wanted, instead of getting what we write down – which is always going to be flawed (inaccurate, incomplete, technology based rather than business value based, and driving misunderstandings between reader and writer). Conversations about outcomes are the way to get around the limitations of written software system specifications.

What we actually want and what we get are often different things. I’m beginning to understand that outcome driven conversations between parties playing their specific roles are the way to go. In a supplier-customer relationship, the customer should tell the supplier what they want to achieve (in a business context), perhaps explaining why the current implementation does not meet their needs. The suppliers role is to understand the customers issues and the drivers behind why those issues are actually issues, and then propose ways those issues could be resolved. Often it may be a process or simple usability issue, sometimes there are fundamental issues with the implementation that require longer term efforts to fix. Regardless, the vendors know their software and the capabilities it possesses and the customers know their business drivers and understand how they are using the software. Each party should focus on playing their part in the relationship and achieving their eventual outcome (customer = achieving the business value and business purpose they want, and vendor = getting a satisfied customer, which hopefully translates into a big purchase order for them).

Ouch! Google’s response to the Microsoft bid for Yahoo.

Posted in business on February 4th, 2008 by Hamish Rickerby – View Comments

That’s some strong language there Dr. Drummond.

http://googleblog.blogspot.com/2008/02/yahoo-and-future-of-internet.html

While I am in favour of openness on the internet, I am also against protectionist measures (like enforced competition). I like the idea that if a company has the resources, they can buy another company. It is an idea that promotes liberty. Of course, in a situation like this it appears that openness may be at risk because of the duopoly that will (effectively) be created here. So, what has more weight? Liberty for the corporation, or openness and competition on the internet?

On this one, I’d be in favour of the openness and competition. The 3rd large player in this space does promote more competition, as well as another set of “standards” – IM protocols, interfaces/APIs for services, etc. I also like uk.finance.yahoo.com‘s streaming stock price service, and it would be a shame if that went the way of the Dodo.

I also don’t agree with Microsoft’s historical handling of anti-trust situations, and I see that this will happen again in the future. They seem to be a more litigious organisation than an innovative one, and purchasing the competition only stifles innovation. Buying complimentary services can help growth, but competing services? No way.

I think in the long term this deal would be a bad one for the (concept of the) internet. But the offer price is very compelling. Who knows what will happen…

Requirements of Charles Schwab

Posted in business, software on January 30th, 2008 by Hamish Rickerby – View Comments

I was listening to a Redmonk Podcast on the train on the way home from work today, and James from Redmonk said something that struck a chord with me. The quote was…

How many customers really have the requirements of Charles Schwab? That is an edge case and sometimes large software companies treat these edge cases as if they were the most sensible source of requirements.

This just really gelled with me. I’ve been working for the largest global mobile telecommunications company on earth for 8 years now, and we battle with vendors every day on requirements, features, architectures and roadmaps that we’d like them to build into their applications. What I take from that (and other things I’ve been reading and listening to) is that you have to be acutely aware of who your customer base is. If you are serving the top 5-10 companies in a particular sector in the world, then you can clearly afford to bend to their requirements, because that’s what they are paying you for. If you are trying to hit mass market, don’t try and emulate the big boys. Keep it simple. Keep the minimum. Keep the maintenance down.

I guess this aligns well with the philosophy that 37 Signals use with their rails apps, and also with the way I tried to create Got the GiST. That was an exercise in taking a painful and complex activity (tax preparation) and simplifying it so my mother could use it.

This is also something I need to remember when I start my new job in just over 1 month. Moving to the vendor/consultant side of the equation is going to be a real eye opener. I won’t always be working with very large enterprises.

The episode was only podcast 2 (very old!), I’ve only recently been introduced to these guys by a colleague. I say give them a listen if you’re keen for an alternative analysts take on IT and the industry.

Intervention multiplies like lies

Posted in business, politics on January 30th, 2008 by Hamish Rickerby – View Comments

The Economist published a story called “The end of cheap food“.

It has a couple of interesting quotes:

  • The Chinese consumer who ate 20kg (44lb) of meat in 1985 will scoff over 50kg of the stuff this year. That in turn pushes up demand for grain: it takes 8kg of grain to produce one of beef.
  • This year biofuels will take a third of America’s (record) maize harvest. That affects food markets directly: fill up an SUV‘s fuel tank with ethanol and you have used enough maize to feed a person for a year.
  • Increasing productivity means you need fewer farmers, which steadily drives the least efficient off the land.

The first two are interesting for their “facts”. The last is interesting because countries in the EU (as I have had it explained to me by British colleagues) will pay farmers to leave land fallow – ie, not grow crops or farm animals – this is in a drive to keep prices up in Europe – sort of a reverse subsidy. Local suppliers used to be encouraged to produce with subsidies, now foreign suppliers are discouraged (and this is particularly strange in my opinion because a country is giving away money offshore to not produce anything, whereas they could stimulate their own economy by spending the money internally – however this in turn will likely increase efficiency of farms, due to more funds available to farmers for RnD activity). What I find interesting (and surely obvious to all) is that increases in technology and production methods will yield greater productivity, increasing the supply, and thus, depressing the price even more. This will in turn require more intervention in terms of subsidies for supply in europe, and subsidies for lack of supply in other countries.

And of course, this all hurts the developing nations – they struggle to produce food in a manner that is as productive as the west due to lack of technology and advanced production methods.

The point I want to get across here is that subsidies aren’t good for anyone when viewing the global economy. Subsidies at home encourage oversupply. Subsidies offshore (for lack of production) artificially raise global prices and is fighting a losing battle due to advancement of production methods and technology.

My view is that if you can’t survive at a free market price, then you should seriously consider exiting that market and doing something else with your capital. Subsidies are not a long term solution. (Re)Investment is.

Confusing Marketing Messages

Posted in business, software on October 22nd, 2007 by Hamish Rickerby – View Comments

Sun, what are you up to?

Install java to experience the power of java? What is that supposed to mean?

Pointless Java Marketing

Europe in 2007

Posted in business, politics on February 6th, 2007 by Hamish Rickerby – View Comments

I’ve been reading The Economist’s “The World in 2007″ today. It looks like their predictions for 2007 in economics, business, politics – sort of a what’s going to happen in ’07.

One thing that I just get this feeling about when I read about the political situation in Europe in terms of predictions (and known events) for ’07, is that Europe is due some sort of flood of innovation. I’ve been seeing and hearing about the Europeans becoming more and more prevalent on the (please excuse the buzzword) Web 2.0 scene, and I just get this sense that something is going to happen this year. I’d like to think that Silicon Valley buzz will die down, in favour of a Silicon Continent buzz.

I’ve got little to no evidence to back this hope up, it’s just a feeling I have. It’s things like the success of ruby conferences in London and across Europe, some German entrepreneurs I know, the ubiquity and adoption of mobile services in Europe, the socialness of the Europeans, the proximity of so many different cultures and people and the overdueness of such an age. There is no reason why it can’t happen here, and I just feel the time is right.

I guess it’s just that 2007 seems to be a fairly significant year politically, and there is a lot of change in the air. I think we’ll see some movement from the Europeans in the innovation space.

Betavine

Posted in business, mobile development, telecommunications on February 6th, 2007 by Hamish Rickerby – View Comments

(Disclosure: I work for Vodafone Group Services – but I think this is a great idea regardless)

Vodafone have launched a new developer community site called Betavine http://www.vodafonebetavine.net .

From poking around the site, it appears it’s a collaboration space for mobile application developers, testers, and anyone interested in mobile communications. What I’m particularly intrigued (and keen to see how it develops) is the mobile art space.

Application developers can also create project spaces, to enable collaboration on mobile communications projects. So, there are spaces for files, blogging, user forums, private project-only spaces. Of course, Vodafone reserve some rights, so make sure you’re happy with the rules on applications and IPR before you upload – as you should with pretty much anything you do – check the T’s & C’s. The developer space doesn’t appear to be a traditional software development space (like a sourceforge, or a rubyforge), but more like a file sharing space and promotion space. I can’t confirm this, because I have haven’t got a project space yet. Maybe I’ll develop a little something with mojax, and see if I can get it hosted at Betavine.

What’s also interesting if you’re a young fella (or fell’ess) is that Vodafone are looking to run competitions, and offer internships and externships. So, get in while the gettings good I say. I’d have liked to have this sort of thing around when I was at uni… There are some competitions there now with some healthy looking prizes (€5000 for 1st – awarded to your uni to be shared with you) so check it out.

Anyway, I am very pleased that finally, the company I work for has taken this sort of initiative. I personally would have liked to see it done earlier, like, when the first round of handsets came out with development environments. However, software development on handsets has traditionally been complex, time consuming and painful. BUT, with the emergence of J2ME, and more recently AJAX frameworks for handsets it’s becoming a relatively trivial activity. I doubt the concept would have worked before, but I feel now the time is right.

  • The emergence of easier development environments.
  • The increases in bandwidth in mobile networks.
  • The ubiquity of phones in society.
  • The innovation and relative tiny amount of capital required to launch web businesses now

It all points (in my humble opinion) to an explosion of innovation and development to offer mobile web style services.