in reply to Writing a web message board from scratch
I guess my question isn't as much to do with the specifics of writing a web message board as it has to do with the general process of beginning a project of about that size.
What you are really asking is "How do I design an application?".
Answer: Employ an experienced business analyst.
Writing code is programming. Determining what that code should do and what the underlying business problems that the code will address is analysis. Too many people confuse the two, and think that any old programmer can just whip out a brand new application without any difficulties.
In fact, in any (non-trivial) application, the time spent doing the analysis, design, going over user requirements and so on is anywhere up to ten time the time taken to actually write the code.
There are many steps between "we need a foobar application" and the writing of the first lines of code. To summarise them:
- Requirements Analysis. What business problems and processes will this application support. What functions must the application perform to be considered a success?
- Logical Design. Process modeling (high level), logical data modeling, initial estimates of transaction volumes, data volumes. Noting any special requirements - security, auditability.
- Physical Design. Specification of individual modules / processing actions / physical data model. Development of testing procedures. User interface specification.
- Program Development. Now you can write your code.
- Testing. Often requires loops back to program development, even changes to the physical design.
Others may have different names for the steps, the "Extreme Programming" advocates will criticise my proposal of outdated development methodologies. But the functions I have listed still need to be done.
Bottom line: If you don't have people with analysis skills and experience, you will most likely repeat many of the mistakes of other failed development projects. An anaylst can determine if an existing product (slash, zope, whatever) meets your company's business needs, and whether the stated requirement of "we have our unique requirements and have to write our own program" is really a furphy, and which of the build / buy (or adapt) alteratives is properly cost justified.