People frequently ask me if the fact we keep information public can hurt our consulting business ? Lets keep aside for the moment amount of new business publishing this information brings to us but think it also have significant negative effect because people find information on MySQL Performance Blog and use it instead of purchasing our services ?
Sure they do. There are people searching for advice finding it on MySQL Performance Blog and so they do not need to purchase any commercial consulting. However these people are not likely clients on the first place – if not our blog they would find information in MySQL Manual or on thousands of other sites, or may be they would read some books.
Seriously speaking for vast majority of the problems you can run into there is information out there – so you only need to find it, filter the one which is authoritative and matches your case and then figuring out how to apply it.
In general “Googling” usually works for solving simple issues which can be solved by applying ready recipes, for example basic MySQL Configuration tuning. If the problem which you’re having is complex it may require experience and background to quickly find right solution for the problem.
We know extensive knowledge is important for complex cases. If we get sore throat (simple problem) we just go to the store and get over counter drug. However if we get red dots on the skin the way we did not see before we would likely go to the doctor to for advice. There are many things which causes such symptoms and special skills is required come with diagnoses. There are surely a lot of information on the Internet which would fit description “red dots on the skin” but special skill is required what you’re dealing with.
Happily computers are not humans and they do not break that badly so you can try different “medicine” for your problem though still you unlikely will have possibility to discover and try all possible recipes.
Besides experience you really need the constant practice. Doing MySQL Optimization I have to keep thousands of facts in my head which apply to the area. Many of them would be complex, something like “Innodb uses row level locks, unless you’re doing insert in table with auto increment which uses table level auto increment locks unless you’re running MySQL 5.1 with…” To analyze problems efficiently you need your brain to have these facts available and apply automatically to provide you with “blink”, intuitive decision regarding what is likely cause of the problem or what best decision would be.
If you would sit and read MySQL manual you would get large of these facts in your head, however without constant use they got quickly forgotten. This is another reason having information available does not cause competition.
Though these arguments apply to good consultants – skilled and experienced You may not be hiring the consultant, but robot which executes “internal instructions” working on your issue. In this case surely having such instructions public can hurt business badly. In other cases value could be access to the information which is not easily available, though I think it does not apply to the industry of Open Source software consulting we’re working on.
In general I would encourage all consultants to write more about their experience and do not get scared about diminishing their value by disclosing secrets. It does not happen and return from publishing is so great !