A rough sketch
- choose applications: discussions, announcements, manage info, manage documents
choose server: Like MSIIS WebProgramming
- choose database, SQL Server is a good choice
- generate content: Using Front Page works well, Python XML libraries, libraries to generate HTML
generate navigation buttons: GraphicsAndImages
- test: urllib, htmllib, xmlrpc
- use Python to automate deployment, testing, documentation
- ????
- Profit!
The free way
Well, the above looks like been written by and for "Microsoft people".
A potentially more stable and definitely more free way to build an intranet is like that:
- choose applications: discussions, announcements, manage info, manage documents
- choose server and OS: Apache on Linux
generate content: use a wiki engine like MoinMoin (it is like that thing you are looking at right now)
teach yourself and people to do it the WikiWay
- just use it - you will see that you can do LOTS of things with that setup without needing to extend it.
The traditional way
If you need a more traditional Intranet solution, you might do it like this:
- Find out what applications you need:
- Announcements - this is often needed, but where do they come from, how are they entered?
Discussions - are these really required? Do employees really get to have a say on announcements and other things?
- Other information - project databases, competence databases - are these already around, or is it some Excel spreadsheet someone is keeping?
- Manage documents - are they structured or categorised in some way? What kind of documents are they?
Now think about WebProgramming solutions for a moment.
- Would Zope and some add-on application (like Squishdot, for example), or even a stand-alone solution do the business?
- Or are you looking at some development on top of a framework?
- Now choose a server! Apache on Linux is quite nice, but you may not need Apache if you're set on running a multi-protocol server like Zope.
Generate content: if you're lucky, you get to choose one of the PresentationTechnologies. And there's probably lots of existing documents lying around anyway.
Navigation buttons don't really merit a "top level" mention.
Integrate into business processes - not only merits a "top level" mention, but an entire Web site devoted to it.
Test! It's nice if your WebProgramming framework allows development and testing outside a Web browser, XML-RPC, SOAP, etc. Like from the command prompt, for example.
Any profit will come from reducing those costs which come from people shuffling paper around all day.