An office based administration system also available to home-workers, a customer web site and field-worker apps all working seamlessly together? Desktops, laptops, tablets and smartphones all doing their bit.
Many companies have done this (and have been doing this for years) but the costs have often been huge with big gaps and issues in terms of features and reliability making it the domain of some of the larger companies and even then with limited function.
It’s easier than ever before and several of my customers are embarking on some serious integrated apps and I can’t help thinking that the timing is perfect.
We are in a world where native tablet and smartphone apps and web based apps are common place and the communication mechanisms are easy, robust and well-proven.
If you need this kind of environment but are getting high cost and other barriers put in your way, push gently to break through, it’s not that difficult to do.
Software without a design can very quickly grow into an unmanageable mess
Making changes to this mess or even maintaining it in a working condition can be a costly and time consuming exercise. I have recently come across two applications whose owners refuse to work on them any more – for fear of upsetting something and then never to work again. These are strategic applications, not just tiny insignificant bits of code.
In both cases, the companies can’t move, they can’t afford to re-engineer them – they are stuck.
A good design and some guiding principles can prevent the mess happening in the first place. It can even be retrospective to un-stick the project – so to speak.
I use the analogy of a building – very few would build a house without a design. And software can be far more complex than a house (and sometimes more costly too). You live with both.
Just a thought, but it occurred to me that the best way to pass an exam is to write the test paper.
Now before you say “obvious, you dopey dude” (use your own vocabulary) I’ve been using test driven development on certain types of project for years and am quite surprised that not many others do.
Like you build the tests before you design or write any code …
No need to over-do it of course, but it saves a huge amount of time and in fact helps with the requirements up-front too – one of the benefits is that it overcomes the “it always works this way … except for this little scenario that I forgot to mention” problem. Lots of other reasons too but I get boring …
Some of the quickest, largest and most successful projects I’ve been involved with have used this approach.
I’ve been working on the content for our workshop event in January and am trying to use real-world examples for this and to find some common themes that would be useful to everyone.
I was just in a conversation about “lock-in” (my term meaning suppliers who design apps in a way to ensure you spend loads along the way and can’t use anyone else) and was asked whether I thought a latest quote from a software supplier was too much as the change seemed quite small.
Now remember I am in the business of software development so I immediately felt I was on both sides of the fence (i.e. uncomfortable!) – first reaction was “yea that’s a bit expensive”, second reaction was “well actually the change is a whole new area of functionality and will deliver a huge amount to the business”.
So you know what conclusion we reached?
It’s not about the cost of providing 178 lines of HTML and ASP code and 3 PNG images and comparing the pounds per line and whether it would be cheaper to go to China.
It’s about the people, relationship, dialogue, trust, value for money and business objectives.
Epilogue: End result was they spoke to the developer about their budgets and by taking some functionality out could reduce the cost a bit – simple, everyone was happy.
Note: It doesn’t always happen that way …!
Cumulus or Stratus?
Wow so much talk of cloud computing these days.
- Start with owning some server hardware in your own offices (own data centre even, if you are lucky)
- Move to rack space rental (you still like to own those servers)
- Move to server rental (maybe you got fed up with them but you still like to know what colour they are?)
- OK now over to the cloud (half a kilogram of power, two feet of storage, and about a dozen bits of functionality would do the trick nicely)
Quite simple really?
Would you ever build one on purpose?
Now I really love spreadsheets, they are so flexible and powerful. But would I ever design one or more into the core of a multi-million pound business?
I don’t think I would.
But a lot of companies have mission critical spreadsheets (it takes a while to admit to them …) – often these spreadsheets start as a good idea and become key to the business in a very short time. They must have something to offer then?
They can’t really be beat in terms of viewing and analysing data (I know I have tried!).
But as a source of data and data transformation well they are very good but anything can happen; from an incorrect cell lookup (oops it’s the purchase price and not the sale price I just quoted …) to some duff maths (how do you calculate net margin then?). And I’m assuming regular backups are taken, they are locked in a safe overnight and have secure logins … ?
So not so good at the security and robustness tests then maybe?
How about we compromise then – hold the data itself in a nice tough, secure, fast and flexible SQL Server database and allow the users to access this though an Excel spreadsheet?
Saves a lot of development work on analysis and reporting tools, you can sleep well too …