One thing I wanted to write a bit about is selling your skills to clients. Though not the immediate concern of most developers, it is still something that someone has to do. On Friday I was with Micah M. and Micah B. as we sat down to meet with a possible future client. These were the same guys who had the PHP code from the seventh realm of hell. These poor guys had an excellent idea, and they needed someone who could make it a reality.
They had a website with thousands of hits every week and nearly as many bug reports. The founder spoke about how he wished he could wake up in the morning and not dread all the emails he was going to have read about the many bugs people kept finding. They had gone through many developers and a few different companies, just trying to get any sort of website out there to start getting a fan base. After first having a group of developers fail, they found another group which got the website started, and then another group after that to try and maintain and slowly start getting rid of bugs.
These guys had no idea how different this process could be. They didn't know that there was an Agile process with developer - customer interaction and iterations. They had no idea there was this test driven development thing. I don't know that they could fathom having a good experience working with programmers.
Micah had to break to them that they had been working with people doing it all wrong. He had to hit them with the bad news... but then he got to lift them with the news that a better way does exist, and that he knew what it was.
First, he went over, and it took quite a bit of time..., the list of things that were wrong with their current website's code. It was possible that the clients still thought it would be possible for 8thLight to work on the existing code base. Micah made it exceedingly clear that this was simply not reasonable.
Hahaha, there was one moment I recall when the clients proposed that 8th Light would take over the upkeep of the current website. Now, you must understand that the entire time Micah was presenting all the reasons why this code was awful, he had a rather stern and tensely maintained expression. It was pretty tough to tell what he was feeling, all you could see was that he was being honest. But when they proposed that he actually work on this code, it was as though all the muscles that had once been tense had suddenly gone limp and a wave of what can only be described as disgusted terror washed over him. They started laughing, and quickly after Micah regained his composure. The point was received.
After describing all the issues, and basically the reasons why it wouldn't be worth it for them to have anyone continue working on their existing code, Micah proceeded on to the good news.
This part was pretty amazing. Even though, and probably because, Micah remained just as calm and collected while presenting the good new, the clients were radiant with excitement. Here are these guys who have been waiting in Pergatory for a long time, and suddenly they see the light (the 8th Light ;-) ). And its not some preacher or enthusiastic peon overly excited to take them to a better place, but instead it is an experienced traveler who 'has been down both paths and will take them on the one less traveled by. And that made all the difference.'
The way I see it, these guys were in unfamiliar territory. They didn't know exactly what was right and what wasn't in this whole software world. They could only go on their instincts and their ability to decide who is worthy of their trust. And this is the point. It doesn't matter if you are selling the right product or the right idea. What matters is that your customer trusts you, and by that trust believes that YOU are right. The product could be flawless, but if you customer doesn't know much about it, and doesn't trust you, then the products perfection counts for nothing.
This is what Micah did. He wasn't trying to hype up 8th Light's methods and the Agile methodology. He wasn't trying to sound really excited about how excellent this manner of developing was. He was just being honest, straightforward, clear, and precise. He convinced them, through expertise and experience, that HE was right. It then follows that the ideas he was sharing with them were also right.
They, of course, got really excited. The clients began talking about how excellent it would feel to not have to wake up to bug reports. To be able to press one button, see a lot of green, and know that their program is working. Then there was the excitement for the future, and all the amazing things their website would do.
It seems that the key is to demonstrate an understanding, and to be clear and honest in order to build up a very important trust that is necessary for all business interactions.