Page 1 of 2

Need Advanced Cake PHP Coders to review this code

Posted: Sun Aug 23, 2009 6:51 pm
by exoticpublishing
Hi there,

I'm in the market to hire a PHP programmer & I'm still torn on which way to go...

1. PHP (it's still only 5 right, 6 is still too new)
2. Drupal
3. Now someone has come to me saying he knows Cake

How does the owner of a company decide?

I have this programmer's code I want critiqued for the usual:

1. Security
2. Organized
3. Anyone can take over the code if I were to hire someone new
4. Whatever else one would look for when deciding if it's top notch code.

I don't want to post it here as it's not nice to do that, so if you can PM me, I will either PM or e-mail you the RAR file.

Thanks


Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 11:24 am
by John Cartwright
1. PHP (it's still only 5 right, 6 is still too new)
2. Drupal
3. Now someone has come to me saying he knows Cake
Firstly, you need to understand the differences between these 3 things.

1. PHP is the language that the other two are written in.
2. Drupal is a CMS (content management system). It is essentially a ready made program that you need only input the content into.
3. CakePHP is a framework from which you can build applications. It provides certain implementations and standards to facilitate development.

Now.. if I was looking for someone I would certainly need to know what my requirements are?

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 3:00 pm
by exoticpublishing
Hi John,

Ok, I get it now, so why did this previous programmer I had (who disappeared) tell me he was thinking of redoing the entire application using Drupal so it would be faster & less expensive to develop?

I think maybe he wanted to use their Shopping cart & their calendar, but that still wouldn't explain redoing the entire thing in Drupal, right?

So would one prefer to hire someone who knows Cake b/c it would ensure that the code is better since they have to follow a format?

My application will sort of be like a CMS, but specifically for my clients & of course the features are only for the industry I consult in.

Thanks


Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 3:49 pm
by Eran
so why did this previous programmer I had (who disappeared) tell me he was thinking of redoing the entire application using Drupal so it would be faster & less expensive to develop?
Lets say this - every programmer would probably recommend the system that he is most familiar with. Drupal, despite being a CMS originally, had developed into a basic framework itself. Programmers familiar with Drupal stuck with it, despite much more mature and factored frameworks appearing on the scene (CakePHP, Zend Framework, Symphony to name a few). Drupal can be used up to a point to build more complex applications - but any experienced developer would advise otherwise.

Of course, using Drupal would be faster and cheaper than building an application from scratch - but it will not be as maintainable or extendable as using any of the high profile frameworks.

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 4:06 pm
by exoticpublishing
So when you say high profile, do you mean...

CakePHP, Zend Framework, Symphony

To be clear again, he had never used Drupal b4 when he recommended it, & I'm screening a programmer now who knows Cake, so that's why Cake is being mentioned.

I just want to get my application done already, it's been almost 3+ years since it was supposed to be started & finished & my clients are getting upset to say the least.

Thanks


Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 4:15 pm
by Eran
So when you say high profile, do you mean...

CakePHP, Zend Framework, Symphony
Yes, there are several more but those are probably the top 3 as far as source quality is concerned. If I were you, I wouldn't care too much about which specific framework the developer would use (cake or otherwise) but that he has a proven track record of using it successfully to build significant sites (ie, not just his own portfolio site or something similar). Definitely don't take someone who has never used one of those platforms (including drupal) and wants to learn at your expense.

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 4:31 pm
by exoticpublishing
k, thanks & are you able to screen code for me, or is that not your thing?


Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 4:35 pm
by Eran
Screen code? you mean code review during development or for hiring purposes? you should probably hire someone to do that for you if you think you can't trust your developer (not me though, thanks ;) ).

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 4:45 pm
by exoticpublishing
Yes, to hire & maybe once or twice down the road once development has started.

I can't seem to find anyone to do that & even if I did hire, how would I know if THEY know what they are doing LOL

Thanks anyway


Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 4:48 pm
by Eran
Well, I guess you should probably find someone you can trust, and let them do their thing ;) there's no other way, in my opinion

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 5:04 pm
by exoticpublishing
LOL, easier said than done. I've hired 3 programmers in the last 4 years, they all turned out to be terrible.

Todah


Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 5:11 pm
by Darhazer
:offtopic:
Why don't you outsource to a company? Or hire an HR company to hire a developer for you?

Re: Need Advanced Cake PHP Coders to review this code

Posted: Mon Aug 24, 2009 11:12 pm
by exoticpublishing
I haven't been able to find a good recruiter (this isn't a salaried position) & we are a small company, but if you have someone in mind, please pass them along.

To me based on my experience, just b/c it's a company, doesn't mean they know what they are doing any more than a single human being.

I've hired a couple of companies before that did worse than a stand alone person.

I like dealing with one (maybe two) people, so I know who's doing the work at all times & there's no switching back & forth, especially with code where one person's code is totally different than the other person's code.

Thanks for the suggestion though.

Michelle

Re: Need Advanced Cake PHP Coders to review this code

Posted: Wed Aug 26, 2009 5:11 pm
by alex.barylski
Like pyrtin said above, every developer will advocate the CMS or framework they are most familiar with.

I've used Joomla in past projects, which is the most popular CMS (second maybe only to Drupal but I dought it).

CMS frameworks let you build the bulk of the application very quickly, using Joomla for instance I did not have to build an authentication or menu system from scratch and the backend admin panel looks very complete and professional, so within 2 weeks I had a solid looking application. It's a facade more than anything, because the last 10% of the application took me about 3-4 more weeks and the client was sorely disappointed, as was I.

The difficulties arose from the client adding features which are not easily supported by Joomla, like SEF/SEO URI's for a custom component I had built.

Had I built the application from the ground up, custom URI's would not have been a problem, but Joomla requires a lot of extraneous work to get nice URI's to work properly and required knowledge which is not easily obtainable via Google.

Likewise, I have used WordPress to build basic sites, clients are happy at first because they see admin panels and everything very quickly, but new features come in, and tihs requires building custom modules/plugins. WordPress has a notoriously bad codebase, very difficult to work with, IMHO.

So you see, unless you hire one of the core developers (someone who is intimately familiar with the entire design of the system which there are about 100-200 globally) your developer is going to hit road blocks sooner or later, likely grow tired of working with a unknown complex system and jump ship.

You developer disappearing is not unusual, hiring freelancers, this will happen probaly in one of every three developers.

Freelancing is really difficult in software development, it's been romanticized over the last decade with the proliferation of outsourcing to India and companies claiming amazing success. The reality, in my experience freelancing doesn't work.

1. Communication during software development is mission critical. Solo developers are rarely interested in having phone conversations, I never charged for my time and I know many others don't take phone time into account when quoting a project.

2. Freelancing is synonymous with fixed price. I realize as a client your concern is a project will last forever and constantly cost you money. The reality is, software really does become a living system. Features are added, techniques are changed and code is improved to meet new requirements, security patches are applied, new attacks are discovered and fixed, etc.

To make matters worse, it's almost impossible to quote a project cost with any amount of accuracy. Smart developers charge a markup of three to four times what they initially estimate, in which the client usually pays more than they need too, likewise, non-business savvy developers make an estimate and under cut the competition to try and get your contract. In the latter case, you still lose as a client, because working for free sucks and that developer will eventually find a better job and leave you high and dry. Iv'e done it and I know most others who have attempted freelancing have done it at least once.

The best thing to do is find a developer and hire them on a quarterly basis. Don't expect the project to be 'finished' as that simply doesn't happen in software, unless the project dies and serves no one any purpose.

You can ask for milestones every week, ask the developer to have certain features implemented with a week or two, ask them if they feel it's fare and continue working in this fashion. Fixed budgets do not work in profesisonal software development.

As for hiring someone to perform code reviews. Two sets of eyes certainly wouldn't hurt, but realize that every developers idea of quality is usually wildly different. If a developer is interested in architecure and design, then keeping dependencies to a minimum and keeping them abstract if possible is probably their modus operandi, whereas less experienced programmers are not even aware of the consequences of weird dependencies, until they post their code on these forums and one of us bring the mistakes to their attention. Even then it takes an open minded programmer to accept their faults before they fix them. And sometimes, techniques really are subjective.

You could hire somoene who specialized in security and ask they go over your code looking for XSS, CSRF, SQLi and various other exploits, but this would probably be a slow process, as they essentially have to step through your code line by line and possible use an interactive debugger to really dig into the code.

There are many attributes you can request from a developer to ensure you are getting higher quality code, but the more experienced the developer the more they cost, which as a small company is probably a concern for you.

1. If they use an existing framework -- good indication they have been around enough to know they don't want to reinvent the wheel. Don't accept custom frameworks, most of the time they are simply garbage, nothing but the interpretation of MVC from a single developer after reading a single article.

2. Existing projects. This at least demonstrates they are capable of 'finishing' (for lack of a better word) a project.

3. Forum participation. Most of the developers on here, sitepoint, etc that are active members are who I would hire if I were looking for developers. Some are sitll newish to developing but activity on here shows me dedication and usually a willingness to learn and desire to be the best. I'm being biased here as I'm #9 or #8 :P but still I stand behind that 110%

4. Ask them what best practices they adhere to, ask them for a definitive list and post that list back here for review. I'll tell you whether it's a lot of redundancy, bulls**it or otherwise.

Re: Need Advanced Cake PHP Coders to review this code

Posted: Wed Aug 26, 2009 5:24 pm
by Eran
alex made some good points, though I'd have to disagree about the freelancing bit. Obviously, it's case by case but I've been freelancing for a couple of years before opening my own firm, and I have mostly good experiences overall. And projects do get finished - by that I mean that a predetermined scope has been reached, which is what was labeled as "the project". Often, more support and feature request come later, but that is usually priced separately and is not considered a part of the main scope.

The one point I would to emphasis is indeed the cost - I've said so before, but you get what you pay for. Experienced developers ask for higher rates - but often deliver much more in shorter time spans. Companies ask for even higher rates to cover expenses that freelance developer are willing to eat (project management, specifications, QA), but give a more complete package and often higher credibility.

You need to think ahead and try to understand what the total cost would be - if you built it for a smaller upfront cost, but it never gets completed or the source code is not management / maintainable then in the long run your costs will run much higher. Try to find the best value, not necessarily the best price.