I came across a Rails problem last week while writing the VAT validation plugin. So based on the open source principle of 'he who finds fixes' I submitted a patch, and it has been accepted!It's nice to be part of the process.
Honest opinions - freely given
I came across a Rails problem last week while writing the VAT validation plugin. So based on the open source principle of 'he who finds fixes' I submitted a patch, and it has been accepted!The customer and the consumer are very often, if not always, different people. You are writing the software for the person who wants 'Ebay with knobs on' and only superficially for the person who is going to use it. The marketing fluff builds to get the customer to sign. Delivery becomes a matter of doing the minimum possible to get the customer to sign the thing off and pay.
Nobody knows if you are any good or not. So customers don't go for the best solution, they go for the one with the least perceived risk. You reduce perceived risk by fluffing up your marketing - hire more PhDs to sit in a corner and twiddle their thumbs, up the impressive graphics, work on your brand, give lots of slick superficial presentations and bridge away from the difficult questions to "The Big Picture (tm)". To pay for this you cut corners at the back-end where nobody will look. After all you will have sold out before the first power cut won't you.
Your 'tool' is not as good as you think it is and frankly nobody but you gives a monkeys about it. Why are you so sure it can't be replicated by a keen script-kiddy in a couple of weekends? And if it can, why do you think you have a sustainable business charging £10 per month for the privilege? Fancy graphics? Force of ego?
Most of the 'tools' out there are largely superficial. I got into this game to make people's lives easier by automating and eliminating drudgery. Yet the tools created seem to turn people either into Mrs Doyle ("some of us like drudgery"), or human versions of Pavlov's dogs - desperately waiting for the next IM or twitter to give meaning to their existence.
Get away from the focus on the product. In a modern development world products are easily replicable. Any product is merely an enabler for creating a service - a set of people and connections - and it is these people and connections that have the value, not the product. Concentrate on the people and their philosophy not the product.
Try to automate the process. One of the disturbing trends I see is humans used as the ultimate flexible middleware between niche point web applications. Find a way of getting the machines to do the hard work.
Start charging for what you are actually selling. Why do we sell the products with free support? The product has an incremental cost of zero, and the support involves expensive people. So charge for the support and give the product away for free. That way you can move to 'branded' individuals or branded small teams of individuals and they can charge more. Any decent architect could have designed The Gherkin, so why did they pay for Norman Foster?
Merge your customer and consumer. Try and make sure the person laying out the cash (or at least making the buying decision) is the one using your services. Concentrate on those markets where this applies.
Build your FY fund. It worked for Humphrey Bogart, it can work for you. If you have to earn something today then you are not in control of your destiny. You have no capital in a capitalist society and once again those that own it will be telling you what you can and can't do - whether you are employed, freelance or whatever. So if you're in an area where there is a rich seam of cash to be mined, then grit your teeth and mine it. Then put it to one side. The world will wait until you are ready.
Get good with money. It's always amazed me the number of people who are quite happy to do several hours overtime, but won't spend fifteen minutes to change their utility suppliers to a vastly cheaper offering. If you are building a capital sum so you can control your destiny then obviously it builds faster if it doesn't leak. Go learn how to plug your leaks. You probably don't have to go as far as I did (by training in accountancy) and I admit I have a genetic advantage when it comes to cost efficiency :-), but if you remember one thing, remember this: £15 saved is as much as £25 earned when you account for tax. (£33 if you access tax credits - seriously!).
Be the Investor. He who pays the piper calls the tune - always.
Founders as partners, where partner is more an ownership mindset than a legal structure. In all other professional fields partnership is the primary model, where capital value is owned directly by the individual. Few in IT understand the partnership approach and the way capital value accrues in such a structure. Often what you find in IT is a pseudo partnership approach sat under a Limited Company.
Build one to throw away. Where you get involved in a capital project and use the proceeds of that to do what you really want to do - an income project. Ubuntu falls into this category.
Internal project. Where you build your product alongside your standard agency work and gradually convert over to an income business. 37Signals worked this way. I'm just not convinced that the 'tenner a month' software leasing model is sustainable in the medium term.
#Use the SOAP checker on the Internet to see if the VAT number is live
#The driver is created on first use and cached
def active?
if valid?
@@vat_check_driver ||= create_vat_check_driver
result = @@vat_check_driver.checkVat(
:countryCode => country_code,
:vatNumber => identifier
)
end
result && result.valid == "true"
end
private
require "soap/wsdlDriver"
def create_vat_check_driver
wsdl = "http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl"
SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
end
class ActiveEuVatNumber < ActiveResource::Base
self.site = "http://3accounts.co.uk"
end
ActiveEuVatNumber.find("gb123456789")
script/plugin install http://accounts4free.rubyforge.org/svn/plugins/validates_as_eu_vat_number
piston import http://accounts4free.rubyforge.org/svn/plugins/validates_as_eu_vat_number
class VatNumber < ActiveRecord::Base
validates_as_eu_vat_number :full_vat_number
validates_as_eu_vat_number :vat_number,
:with => :country_code
end
Neil Wilson is an expert in finance and information systems.
He has delivered projects in a variety of scenarios from small web boutiques to large corporates using skills as diverse as Perl programming, Linux Systems Administration and Project Management. When he's not doing that he's creating open source applications and packages or generally making something happen.
Neil is a regular contributor to forum boards and blogs such as Motley Fool UK and Billy Blog on topics as diverse as economics, investment, taxation, and software development. He has a keen interest in finance, is an advocate for the free software community and loves to make things happen. If you've got a project you'd like Neil to take a look at, then please get in touch.
Neil is married with two children and lives in Halifax, UK.