Quite often when dealing with a client -- particularly a new one -- I spend a great deal of time simply educating them on the need for sufficient planning prior to actually beginning a project. Like most IT firms, we call this the requirements phase, and out of it comes (naturally enough) the requirements document. Smaller clients often put up some resistance to this, and, much like an eager new developer, just want to jump right in and begin work. There are a number of rather serious problems with this approach. I find analogy usually helps in cases like this.
"Would you build a house without a blueprint?"Well, they say that confession is good for the soul, and it is time to come clean. Perhaps it is the unusual feeling of relaxation that comes during the holiday season, or perhaps it is simple laziness, but whatever the case, I have not put sufficient planning into my "let's find a free, or at any rate reasonably inexpensive alternative to Microsoft Exchange Server" project.
"Well... No..."
I haven't even clearly articulated my objectives to myself, let alone in this particular forum.
Accordingly, I am making an early resolution this year: find out exactly what Exchange does, which of those features are going to be a requirement for my project, and enumerate other features that would be nice to have, but don't exist yet. Once an appropriate platform is chosen and installed, perhaps we can even complete add ons for whichever platform we choose, and release those for the benefit of others.
A quick read through the product features list on Microsoft's site lists these as must haves:
- shared calendars
- shared address books
- easy integration with Microsoft Outlook
- anti-spam
- anti-virus
- messaging records management
- webmail access
- pop3, pop3s, imap, imaps protocol support
- smtp and smtps protocol support
- flexible and sophisticated calendaring functionality
- integration with popular PDAs for to-dos, calendars, etc.
As I work through my research, I'll construct a "nice-to-have" list as well.