Fog Creek Software
g
Discussion Board




Low cost intranet solution?

We have a customer (a professional association) who have asked us to build a intranet/extranet system for them. Not rocket science, really.

However, we've found several problems in chosing the technology to be used becouse of the following facts:

- Requirements are vague and imprecise. They don't really know what they want, as usual. We don't still know the level of customization that would be required.

- The budget is really low: 2 MM (man month) of work, which will be scheduled as one single engineer (unfortunately me) for about two months (including requirements analysis, testing, ...). I guess this project is doomed from the start to be at least 50% late (as the previous one a was assigned,  but that's a different story...), but I can't do anything about it right now.
 
- We have the additional requirement that the platform to be used must be either free software or own technology (which would be a JSP/Servlet solution).

Our initial chose (some months ago) was a PHP based solution, Postnuke. However, the local administration (which really pays the project), doesn't seem to appreciate too much a PHP based solution, since they are setting up a J2EE based platform.

Our thoughts are that, thinking in short term only, it's better to follow the Postnuke path, at the expense of increasing project risk (there are several requirements that may not fit in this solution, and we don't have any experience in PHP projects).

On the other side, although we have a great amount of expertise at building J2EE solutions, I don't think we can build a custom solution whith that minimum budget and resources (=me) assigned.

Any advices, thoughts, comments, whatever would be really appreciated.

Thanks in advance.

P.S. Excuse my poor English, but I think I'll improve it soon, since I believe that in about two or three months I'll have lots of spare time ;-)

Z
Friday, October 10, 2003

My thought is to look at your long term relationship with this client.  If this is somebody that you have a long term relationship with, or you want to have one, it's probably worth the trouble to sell the j2EE system.  Not because of any particular merits of J2EE, but because it aligns with their own development directions and your own abilities. 

While PHPNuke is in wide use, it doesn't match well with your own organization's skill set or the client's desired direction.  Unless you're planning to deliver the project and ride into the sunset, this is probably a real problem.

Clay Dowling
Friday, October 10, 2003

This is absolutely a losing situation, and be wary of the "we'll do this one at a loss, and reap the rewards in follow-on work." We tried that, and once we'd built the infrastructure, the follow-on work went to the new IT Director's husband.

1) Do not - I repeat, do NOT do an ounce more work than necessary. You have to take off your geek hat for this. Minimize work on management interfaces, error checking, and even scalability concerns.
2) Try to be in iterative development mode as much as possible - get rough builds done and in front of the users quickly, so you can react to changing minds.
3) Strongly specify when things are out of scope.
4) I'd say go with PHP. Tell them they're not paying enough to get to pick the technology.
5) Something to be mindful of concerning #2 - manage deliverable expectations. If you show progress 2-3 days in a row, they will suddenly want to see visible progress *every* day. This gets you into "demo cycle" mode, where you're coding to the demo instead of to the project.

I've lived through this (can you tell?) so feel free to contact me offline for more warnings. :-)

Philo

Philo
Friday, October 10, 2003

Z

You might want to look at phpcollab. It is much better than phpnuke for an intranet type site. I have used it successfully on a couple of projects. It is open source and is in active development.
http://phpcollab.sourceforge.net

Another app you might want to look at is openACS. It in TCL, and runs on AOLserver. It has been used for intranet type solutions by companies as big as Siemens. I personally have not used it in a production environment, but I have played with it, and I think it is great.
http://openacs.org

What might be more up you creek, is Open For Biz. It too is open source, and more importantly is in Java. I have never used it, but it does look quite robust. It seems to be growing in a direction I quite like... check out the forums. It might turn out to be overkill for your project though.
http://www.ofbiz.org

The problem with your request is that it is very difficult to recommend something without more information. A number of opensource solutions do exist, from the most basic to fairly complicated ones. What exactly are you looking to build....

how many users?
do you just want something to publish info to staff?
do you want project management features?
do you need shared calendars?
do you want a mail reader with it?
discussion forums?
HR functions?
Timesheets??

I could go on, but I hope you get the drift. While you are at it, you might also want to look at
http://www.hotscripts.com/PHP/Scripts_and_Programs/Groupware_Tools/index.html
and other scripts on that site

Tapiwa
Friday, October 10, 2003

you are fucked. the best tool for this sort of thing is sharepoint 2.0. if you can convince them to use that, you are set. However, you won't be able to convince them to use that. Your next best bet is to use openacs.

rz
Friday, October 10, 2003

"However, the local administration (which really pays the project), doesn't seem to appreciate too much a PHP based solution, since they are setting up a J2EE based platform.
"

Yep, you're up shit creek.

Just me (Sir to you)
Friday, October 10, 2003

Produced a schedule as detailed as possible for your boss showing realistically when you expect to finish. Some jobs are simlpy not worth taking.

John Ridout
Friday, October 10, 2003

ooo - if you have the expertise in PHP and J2EE, do both timelines. [grin]

Philo

Philo
Friday, October 10, 2003

"Requirements are vague and imprecise. They don't really know what they want, as usual."

"However, the local administration (which really pays the project), doesn't seem to appreciate too much a PHP based solution, since they are setting up a J2EE based platform".

Okay, let me see if I got this straight:

  * You don't know what they want you to do.
  * You not dealing with the real stakeholders.
  * They're already decided what they want to do and are going on without you.

RUN!  RUN!  DON'T LOOK BACK!  RUN FOR YOUR LIFE!

Alyosha`
Friday, October 10, 2003

Thanks for all your comments.

What really pisses me is that I strongly suspect, according to the few amount of informating I've gathered, the whole process has gone this way:

- (Customer, in their own non-technical vague language): We want to clear this mess of platforms, web aplications, host and excel applications, databases, logins .. we have, and start to use internet to improve our processes.

- (Salesperson): Oh, I see, you DO want a intranet, no problem. It's easy. Do you want your collegians to manage their own information (which is spread along several DBs, Host applications, Access databases, ..)? No problem, we'll just set up some kind of HTML form, and we're done.

- (Customer) Yes, we want that internet stuff.

....
(Months later, when starting the project).
....
(My manager) - Remeber that project about setting a intranet for our customer XX? Tomorrow is the kickoff meeting. There will be all the parts involved. You'll probably won't see most of them never again.

(Z) - Great, (after reading documentation generated in the previous months). I see some dangerous points in all of this, but I'm almost sure it's just my natural arrogance and tendency as engineer to concentrate on "details" rather on doing my job. Let's see tomorrow what we find...
...

(After the meeting, while the current customer's software provider -which has been working on things that clearly overlap with ours for the last 3 years- starts to tell us "interesting" things about the customer's internal politics)

(Z, thinking while listening) - This project is going to be fun...At least as fun as than the previous one.

...
(While having lunch with my coworkers -and friends many of them-, the term "manage expectations" is applied to another starting project (this one is really really really condemned to fail miserably, I still have a ray of hope). It seems to fit well in the current context.
...
(Later, casual conversation among my manager, the COO and me).
- Me: I don't think they really need what we are going to do in this project.
- Manager: I know, we are going to release crap, (at least we ALL notice it in advance, bravo!, a new corporate strategy is applied! )
- COO: Don't let this project go out of scope (again). Just center on visual behaviours (I guess I'll use Dreamweaver instead of my favourite java IDE as a "developing" tool to to build this project).
- Me: You're both right, let's start this "intranet" project right now. Clicked on "download postnuke" and started evaluating it...

To be fair to my company (and me), I must tell we usually release good quality work (at least a little above average), and we have a almost-healthy job environment (when there aren't massive layoffs, you know). We need this job. We need it to make it profitable. But I can't take my geek hat that easily (by the way, great advices, Philo), and just deliver whatever I'm asked without taking into account the real customer's needs.

I think I should attend a MBA course to learn how to "manage customer expectations" and other interesting stuff.

Z

Z
Saturday, October 11, 2003

*  Recent Topics

*  Fog Creek Home