This question is meaningless...in a programming community...I'll explain
Every developer has different techniques, styles and solves problems differently...
I consider myself an experienced developer...about as experienced as one can get for my age...but projects take me typically longer than other developers I have worked with...
Why...because I debug like crazy...every line I enter I test and I step through code line by line whenever a change is made...I design very modular (especially when programming in PHP) systems and use a combination of both OOP and procedural...
I comment my source like crazy...spending a great deal of time making sure the comments actually reflect what the code does, both for the client and implementation developers...this takes time...
I also create flowcharts and other documentation so I can clearly understand whats going on at a later date...
I refactor code like crazy...not because my original designs are garbage...but because I try and find a balance between planning and implementation...
Any experienced developer will tell you it's 110% impossible to get a design right the first time without some implementation for any system other than something super simple...
This subject is something of big debate, but I've found what works best for me and have refined my approach over the years to yield the best overall results...
I seldomly have design flaws in my final resultant applications...being only human it's natural I have some occasionally...but their few and far between...
Yes my code is often buggy...but these are trivial bugs that once discovered/disgnosed they can corrected quickly and permanently...like missing characters in a regex or using OR instead of AND, etc...
Because of my planning, commenting, designing, refactoring, documenting and attention to detail (I have my own coding conventions which I try and follow diligently - which causes me to often go over my code and make sugar changes) projects likely take me longer than even inexperienced developers...
But you get what you pay for...I *could* crack out an application as fast as anyone (realistically any human will only be able to code so fast - our fingers only move so fast and most time is spent thinking anyways) even as fast 40 years veterans...the difference is is the final product...
General applications are pretty much the same kind of complexity...business logic...it's pretty straight forward...
If your designing auto pilots for the space shuttle...thats a different beast altogather and way more complex as your understanding of the principles behind the theory of flight, etc are then required on top of programming knowledge...
Anyways, my point is...your question cannot be truely answered...as no two programmers will give same answer...
Software development suffers and benefits from it's dynamic open nature...there are no absolute standards one must follow, like when building a car...or excavating a yard which is 10x10...there are no easy, concrete formulas for estimating development time...as a project grows in complexity it's development time is not proportional but almost exponential IMHO but thats not accurate enough to use as a estimation in project development.
You can use pre-written code or write your own...and as you will see from existing polls the majority of developers prefer to write their own code...so thats a hex working against you right away...as it takes time...
Software development embraces/requires both the artistic and logic in every developer...
What you should be asking is the following:
1) Whats more important to you...project longevity or quick and dirty results
If it's the latter....the look for the cheapeast developer...but projects that don't evolve often die, in fact they always do...so you better reconsider if you want the Q and D option.
2) This project will evolve, so...you need to ask developers the following:
- Do you have a library of pre-written code, do you use existing libraries/frameworks, etc...
- Do you comment and generate easy to follow documentation
- You you follow any given standard or coding convention
- Do you have a security policy/standard which you follow on every project
- SQL injection
- XSS attacks
are the two most commonly carried out attacks which *every* developer should be aware of...
- Do they follow industry defacto-standards like modelling code after well known design patterns (do they seperate implemention from interface)
- Are they experienced OOP developers - although this doesn't really matter as anyone can claim to be an expert in OOP and not really know anything outside of the basics
3) Are they capable of working in groups or are they lone soldiers
4) Do they use any kind of project management software like CVS or subversion
5) Will they generate progress reports or keep you updated as the project is developed...
Alot of this might seem useless and mostly it is (especially the reports their as useless as business case studies) but the fact is...if your not a developer...you don't what it takes to write software...
I could fake an application or some of it anyways and have you pay me only to leave you with garbage and you wouldn't be the wiser until you actually tried the application...the same idea of whipping up a quick prototype...
The more effort developer(s) put into project management and completion the more serious you know they are about doing and conducting ethical business...
It's alot of work for a developer to write docs (which are important) as it's a task most developrs frown on...
Anyways, again...there are more important questions to ask *before* asking how long this project might take realistically...
HTH
Cheers
