I don't normally put technology stuff on my blog; it feels too much like work. However, I recently read an article on computerworld's site called Protecting your software investment.
I have never read so much technology drivel in my life. It is obvious they were drunk when writing it, and they show a complete lack of understanding about the real issues facing businesses that undertake bespoke development projects.
Firstly, a disclaimer, have I, or my companies (Red Toad Solutions currently, and Synergy Software historically) always got it right? No. Unfortunately not. It is really hard to get the balance between delivery to the customer, profitability, reusability and more importantly ensure people do what is expected of them.
I have a mantra about projects:
Projects seldom fail because of technology, they fail because of people.
The article waffles on about escrow services, virtual machines, licensing of the codebase and various other things the typical SME owner/decision maker knows nothing about. What's more, the article fails to raise the key problem of developing bespoke solutions to the SME market. Budget.
It all comes down to that one word. I'll say it again. Budget.
When dealing with SMEs, bespoke development eventually comes down to price. Not whether you are the best in the business, or the most highly qualified to undertake the work, or have the best track record and testimonials or can show all this with white papers and case studies. It comes down to can you say you will do something for a price that is worth it to the customer.
[Note to self: this is gonna be a LONG entry in the blog - sigh]
I will share with you a little project that started over two years ago for my company. It was a relatively straight-forward CRM solution. The initial estimate for bespoke solution was close to $50,000 from memory or several thousand a month for an off the shelf solution using something like Microsoft Dynamics. The client was a start-up; they had limited funds and it was too much for them. I suggested open source with some customization, but no - their business was "unique" and they wanted bespoke.
The question put to me was "can I cut the costs down". Regretable I said "I will see what I can do".
So... out came the scalple. We cut out the following:
- proper discovery stage and design stage - we relied on a very rough excel spreadsheet as out "specification"
- various bits of functionality
- documentation
- full Systems and QA testing - relying on the client to do this
- no project management
Well, two years later, we still have issues passed to the client waiting for retests, the client is unhappy with the system, and we now look rather less than professional. It cost them less than 50% of the original estimate; but they got what they paid for.
In hinde-sight I should never have allowed the project to get past the "could you cut some costs" stage.
Now, back to tweedle dee and tweedle dumb [Note to self: probably better remove that - might upset Chris and Mark]
None of what they say makes sense really. As I have "picked up the pieces" from several Glazier Systems, Agility Group and Intergen provided solutions over the years, the article re-enforces my believe it is very hard to get it right.
However, I do have some rules that protect both the client and the vendor in this process.
- Always have a dicovery stage; if the client doesn't won't to pay for it they don't value your time or their own business. Next client please.
- Use tried and true technology; let the corporates with shit-loads of cash blow it on new technology. The SME can not afford to be guinea pigs.
- Documentation is your friend; make sure you document everything. It is the best "escrow" service you can have. It means there is no dispute about what is delivered, how it is delivered, and how it can be maintained. Despite many client's expecting it for free, it is as valuable as the code itself, and therefore should be a charged item.
- Regular meetings; don't be shy! Meet regularly and often. Communication is essential to a successful project. And again, some client's seem to think meetings are "free". Wrong. They are part of the process, they take time and therefore are a chargeable item.
- Don't discount; Discounting does no one any favours. The price is the price. If the client doesn't want to pay for it they don't value your time or their own business. Next client please.
- Testing; testing is part and parcel to all bespoke development. Never avoid it, and never "remove it" to save costs.
- Maintenance fee; Insist on it. 15% of the inital project should be considered a normal annual fee for ongoing fixes and maintenance. Client's may think this is unreasobable, but quietly suggest to them they go to Microsoft and ask for a free upgrade from Windows 95 to Vista. See what happens.
Now, as to who owns the source code, thats a subject for another blog. In fact I could probably write a book on it.
Something providers and potential client's need to remember is your are both "in business". The provider's responsibility is to build a professional system that meets the client's known needs. Emphasis is "known needs", providers generally don't have a crystal ball (note the importance of 1, 3 and 4 above). The client's responsibility is to impart as much knowledge as clearly and efficiently as possible to the provider. It is also the client's responsibility to value the provider's time.
Companies like Intergen are great at preaching about process and new technologies. There are so many companies out there, some of them award wining, that say they are very good at what they do. So far in fifteen years in ICT, most of them as a senior consultant, I have yet to find a company that gets it right all the time.
It all comes down to that one word again. Budget.
When the budget is tight, which it usually is for bespoke development for SMEs, usually the first three things to go are design, documentation and communication.
The provider needs to be firm about the necessity of these, and the client needs to value them. These are areas that are directly influenced by people.
Projects seldom fail because of technology, they fail because of people.
Anyway, enough! I need to pee and get myself a glass of wine! |