Monday, November 19. 2007
I've seen this about a million times at various clients working in the services business, so I thought I might take a moment to mention it on my blog -- perhaps someone will find it valuable. From where I stand, there is a huge portion of the development community in general (not only PHP really either) that seem to think their job is nothing more then to write code without consideration for anything else in the organization.
Guess what? Your boss doesn't care how awesome your code is, or how slick your super-duper AJAX auto-complete wiz-bang thing is if you write something which doesn't support the business needs of the company.
Here are some of the classic blunders I've seen:
* Spending two days refactoring a piece of code which not only were they not asked to refactor, but it was working just fine before (no, the fact it was ugly is NOT always a good enough reason to refactor)
* Trying to be the developer version of Vincent Van Gogh -- code
can be art, but it is
always a means to solve a real business need. Over-architecture doesn't make you look cool, it makes you look like an idiot when the next guy shows you how to solve the same business need in 30 lines of code instead of 400.
* Not understanding you are responsible for your own time lines. I don't care if you have a project manager or not working in the group -- ultimately at the end of the day as the guy writing the code if you say it's going to take 3 weeks to develop something and it takes you 3 months that is entirely your problem. What does that mean? It means when your boss comes over and constantly changes the scope or features of what you are trying to build if you don't push back and make him decide between getting the project done in 3 weeks or his feature that's your fault.
* Know your business - its amazing how many developers are out there writing code without having any idea what-so-ever why they heck they are getting paid to write it. If you can't speak intelligently about the business your company is in and why your application is going to benefit that business for at least 30 minutes then you aren't being a very good developer. We all sometimes like to imagine that the world revolves around us, but let's face it -- you're working in a company and that company is trying to do something which you probably should understand before you try to write the code to do it.
I'm sure there are more if I had more time, but that's good enough for now. Bottom line: Code is not the most important thing in business, even though it might be in OSS. If you want to be a successful professional OSS developer you need to understand both and react accordingly!