It's easier than you may think. First, If you haven't already built a few basic applications already then I suggest you do that before taking my advice. PHP is very simple to learn and use. Visit the following websites to get started: http://www.phpbuilder.com/ http://hotscripts.com http://devshed.com http://sitepoint.com Now, that you've got some applications under your belt start thinking about what you want your application to do. I group my requirements based on functionality. For more complex functionality the list is longer. So for example, if I have some e-mail requirements and I want some autoresponder features, e-mail piping, ability to detect bounced messages for me that would be a complex set of requirements (as opposed to just sending and receiving e-mail). Each set of requirements usually represents a module for me. (I'm partial to the Model View Controller architectural pattern using an Application or Frontpage Controller). Now to really put the methodology of Rapid Application Development to work I use a framework. Some programmers already have their own framework and that's great but many of us don't. So why reinvent the wheel? There are many frameworks available for you in a variety of technologies including PHP. There are some drawbacks to using frameworks as you will have to conform to the programming conventions of the framework you've chosen. I just found these blog entries that might help you understand a little more about the pros and cons of using a framework: MAINLY PROS: http://www.veikkomakinen.com/ CONS: http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 I typically give myself about 30 to 1.5 hours for each module in planning time. More complex modules (ones with a complex set of requirements) will get anywhere from 1 - 5 hours. I've read one developer who created his own framework state that he creates each of his modules typically within 10 minutes. This average is great and probably typical for a programmer who is very experienced and extremely familiar with the framework and technology she is using. For someone less experienced, some simple modules can very well take just 10 minutes to develop and others longer so the goal is to make sure that it all averages 30 minutes to develop each module. At the end of this stage, I've got a complete Information Architecture (IA) document. I am very generous with my planning and database design time. So I will spend a full day just doing that. (This could be a lot more depending if you're working on a project for yourself or not). And keep in mind the application I'm talking about has no more than 10 modules. Otherwise this application would be (in my opinion) a medium-sized to large application (app) and would take longer. Now for my next day, I've got my complete plans and database structure, I start building my app. Let's just say I'm creating a 5-module app. Cool thing about frameworks is that I can create a 5-module application and still have additional features. Many frameworks include modules already that you can quickly add to your app such as a newsletter or Content Management System (CMS). Using the framework I've chosen, I can take advantage of their scaffolding features and build a skeleton of my modules within a few seconds. Once my module's skeleton is built I then go in and edit the controllers (or model) to suit my requirements better. The final stage is the user-interface or view. Usually, this takes an hour or two. As I create the product box, logo in Fireworks. And then create some graphics for the layout which I have already planned out in my IA document. In the end, I've completed my application within 2 days. For complex applications, I give myself a literal 48 hours or more and spread it out over a period of a week or a month. A typical large application will have 10 to 50 modules. Like a good e-commerce application would have maybe 20 modules or so. Obviously, none of this is set in stone. A client could request a lot of different requirements that is not typical to an application but is specific to their business needs. For instance, perhaps a company needs to use their application as a Point of Sale application as well. Then that means your typical e-commerce application will change some. I talked about frameworks but keep in mind you can use a CMS like Mambo to create very complex applications. The Mambo system calls it's modules "components" but it is the same principle. Also, to give you an example how quickly this could work. One of my favorite frameworks, Cake, has a 15-minute tutorial to help you build your own very simple blog application. This is basically an excerpt from some tutorials and videos I'm currently creating which will include a case study. I do hope this was helpful. Best Regards! P.S. Oh, and I forgot to mention. Unless you have a client that requests the use of a particular framework, then it's best to stick to one so you can get as familiar with it as possible. I bounce between two depending on my needs. Also, some clients may want an original framework for their application which means that you will be starting from scratch. The estimates you provide to them should reflect the additional time it would take. It's important to help your clients distinguish between using a framework and let's say an complete open-source application like oscommerce. The modules you create for your clients using a framework are still proprietary and depending on the app you may also make some changes to the framework.