Communications is one of the most important elements on any development project. Project specification, customer relationship, project documentation, and almost all elements on a development project are involved in good communications to make it a successful project. How the project manager controls the project and their developers, and how the account manager delivers the product to the customer can make your project a successful project only if you have good communication basis.
On my case, I do not use face meetings, instead of that I can communicate my perspective to my customers only using video conferencing software, without the need of doing a meeting on a coffee shop or a meeting room, and similar places. I just need an Internet connection and my customers are happy, all of them. Usually on the past I have worked with people interfacing the final customer, without me to receive the requirements and even to negotiate milestones and salary. I think that it was the worst mistake that I have made, due to the lack of technical understanding of many of those project managers. Today I only have direct customers, and I do not allow people in the middle.
As freelancer I cannot allow past mistakes like project managers that are not able to handle requirement changes properly, making my workday a heavy duty with many overtime hours, that usually were not paid due to the lack of knowledge of change management process, a mistake that I see every day with many people working in the wrong company. I feel lucky because I know very well that I cannot make a gift from my job. So, there are some project managers that still are thinking that some changes on the requirements should not be charged to the customer. Apparently their project management basis are too old to be used today.
The best part of my work as freelancer, is the fact that those customers that do not want to pay for their changes, usually scream at the other side of the phone or video conferencing software that I am charging too much money and they finally seek another provider. The fact most of them are back to me once they see their solution half implemented and overfilled with bugs, requesting a lot of corrections and new features and disposed to pay my price usually make me laugh. Some of them are reading my blog frequently, so they are welcome.
Without people in the middle handling requirements, my customers are very happy and they enjoy the software that I develop. That is because they have exactly what they want, no matter how complex is it. I can work with many languages — I can write code in more than 5 languages because I am continuously improving my skills — so I do not have problems implementing complex software. So, I am capable to speak in non-technical terms to my customers and handle every requirement that they want. But I have left some markets. For example I have left the PHP market, usually I do not offer PHP developments, because most customers requiring PHP development are thinking on PHP as the new Visual Basic of programming languages, easy to handle, getting quick results faster than with other platforms, so it «should be cheaper». But they have no idea about software development.
Well, someone that wants to spend only USD $60 per month to host a dynamic web page, rather than creating an application, is not able to think on a real application and what does it really needs. And usually I do not handle those projects. Dynamic web pages are a subject of the past, now you should be able to construct applications using third party APIs and doing real programming tasks. You cannot make a custom Google using Joomla. So, the scope of those projects are not generating any interest from me.
I really enjoy some that ask technical questions on the interview. The same applies once I am asking technical questions to some programmer, I really enjoy when they are capable to answer with a very good perspective on the technical issue that is being discussed. But I can explain the stuff good enough to make the customer understand what I am talking about.
Nice article.
Just one thought: you said: “…is not able to think on a real application and what does it really needs”, referring on some humble PHP implementations.
It’s true that PHP doesn’t allow many things, but there’s times that the created solution with this is all what the client needs. And it’s fine if you don’t offer PHP implementations, but I’m a little offended with the treatment that your article “implies” to PHP based solutions, quoting: “Dynamic web pages are a subject of the past, now you should be able to construct applications using third party APIs and doing real programming tasks”, like there’s always the need of “real programming tasks”, right?
But there’s a question. What is the software that you are using on this same blog? WordPress?
Is that written in PHP? Yes?
Oh. I thought so.
Cheers!
Why to care?, If you read the article carefully I’m talking about those pseudo-developers offering ERP, CRM and similar stuff build on top of Joomla, WordPress and content related application, where they are not capable to handle real programming tasks. If you are good enough to build applications with PHP without offering WordPress as the ultimate framework to work with PHP to build a CRM, ERP and similar business solutions, that’s OK.
At the other side have some serious bugs making from PHP a bad option to be used as solution, like this one «PHP can’t add hex numbers» and if you remember there are bugs that are subject of DoS attacks on many servers, like this one «PHP hangs on numeric value 2.2250738585072011e-308». So, that is why I’m leaving PHP development. And this is just a blog, not an application, at least you have to input data for comments…