Community Server 2008: Nice Try, But It Still Leaves Us Hanging

by Jon Davis 19. July 2008 02:04

A couple years ago, we were starting to examine the need for a community / social networking solution, mainly forums and blogs, and my boss told me that I, as a senior engineer on the team, would be responsible for identifying our requirements, selecting and recommending a platform to build upon, and taking part in seeing it get tailored to the company's needs.

I always give my tasks 190%. Forget 110%. Identify requirements? Okay, let's have meetings and figure out our requirements. So a co-worker and I spent nearly a week mulling over ideas for the ultimate community system we could ask for, and documenting our brainstormed ideas as we saw fit. We started building up a rough draft. The plan was to take this rough draft and hand it over to the manager and executive and ask them to take a big, fat red pen and cross out the things that were beyond the scope of expectations. (Literally, I expected that about half of the requirements would be dropped. Incidentally, this strategy is not normal, requirements should come top-down, not bottom-up, but no actual requirements had been established so we had to come up with them.) Instead, my boss took the 3/4-written rough draft Word document we'd been exchanging around the office and sent it directly to telligent to basically ask them for a work order quote.

So first of all, that's not really what telligent does. At the time, they had no professional services team, and their closest equivalent primarily only handled themes and site integration. Second, we hadn't yet selected a technology platform, so, without explaining himself or his reasons, the boss apparently decided to cancel out on his word on making selecting a platform to build upon as a step in the process. Third, the extent of our requirements in our unrefined draft was so far beyond what any ASP.NET-based commercial community software / social networking solution delivers. The closest functional equivalents are closed systems like MySpace and Yahoo! Groups. Fourth, while begging and groaning on the phone with telligent, my boss pretty much insulted the entire team, and was overheard by me, mentioning me specifically in describing my previous job and how I was not focused on ASP.NET at the time, and how I therefore "have never done this sort of thing before". That occasion has haunted me every day since then because it was well explained that I not only have "done this sort of thing before" (software & web development, using ASP.NET et al), I actually built a rich and detailed community system from scratch in ASP Classic and SQL Server 7 all the way back in 1999 and explained all this in my interview.

Somehow, telligent agreed to sign up for the tasks, refusing to use our specifications but indicating that they'd figure out their own subset, and after they took the boss's money they called him up and let him know that they would basically make all the changes in the actual product instead. He didn't get his money back, we basically just received ultimately useless alpha build drops of what would later become Community Server 2008 and did our own QA'ing for them (on top of their own QA'ing). By the time the features we had agreed upon were done, CS 2008 was just a couple months away from its first public beta, so the boss decided to scrap everything we had received from them in private, and wait for the final product.

CS 2008 is actually pretty extensive, and it has a lot more features in various places than we ourselves had asked for (it is, after all, their product, not ours). But we couldn't use it up front. In the process of adding features we didn't ask for, they added new support requirements that required us to resolve, and meanwhile there are still features we had been in need of.

I was again tasked to lead up the project of getting CS 2008 set up and out the door, but even before delving into documenting the specific tasks that would be required--tasks that I submitted for review 900 times and were never reviewed by management to detail for proper truncation and elimination--the MS Project gantt chart (using it as a calculation tool, not as a "BS to the boss" communication tool) showed truthfully and accurately that there was another half-year of functional customizations development involved, particularly considering that there were nine seperate web sites each in need of a community solution. In response, instead of the boss having the whole team go gung-ho and focus on the project to get it out of the way, instead the other team members were immediately pulled off the project and I was left on the project by myself. Not a single senior member of the team or manager bothered to read the tasks I had written up for the project, to detail, and to this day after about three months of full-time focus the tasks are only about one quarter finished, with the entire QA process dropped and close to zero theming comps or implementations by me, by the graphics designer, or by the cross-department magazine leadership.

I posted part of our change list on telligent's own forums, and they locked the thread as moderated so that people can't discuss it, hence the reason why I'm posting it here now (not that people would discuss it, but call it a mega-bump).


Features We Had To Implement, and Wish Were Already Implemented.

I wanted to share a list of things we have been having to make in order to make CS 2008 usable for our own purposes. We're still not there yet but we're getting close, and I'm sharing this because, in my opinion, there is no louder message of "please add these features into your product" than the willing efforts made by the customers to do it on a proprietary basis. (Note that these customizations are not being redistributed.) Most of these I had to do single-handedly, and so far it has taken months of SDK tweaking.

  1. Make the top navigation bar data-driven for sort order, data-driven for additional links to custom URLs, and administratable from the Control Panel. (We implemented.)
  2. Auto-generate a blog for each user, and make certain that no errors occur if there are no posts. (We implemented.)
  3. Auto-generate a media gallery for each user, and make certain that no errors occur if there are no posts. Note that the new "My Files" feature is not adequate for this purpose as it doesn't support ratings, comments, etc. (We implemented.)
  4. Hide inappropriate admin options in the control panel from "normal users" in their personal Media Gallery settings, such as e-mail notifications.
  5. Add a "My Blog Actions" component on the sidebar for the Blogs section, so that users can jump straight into managing their blog from the Blogs portal. (We implemented.)
    • Add A New Post
    • View All Posts
    • View Comments On My Posts
    • Manage My Blog
  6. Add a "My Gallery Actions" component on the sidebar for the Media section, so that users can jump straight into managing their media gallery from the Media portal. (We implemented.)
    • Add A New Gallery Item
    • View My Gallery
    • View Comments on My Gallery
    • Manage My Gallery
  7. Add a link to the user's blog from the user's profile. (We implemented.)
  8. Add a link to the user's media gallery from the user's profile. (We implemented.)
  9. Replace the general Media section on the user's page with a "My Media Gallery" section.
  10. Wanted (we have not implemented): Albums inside a gallery.
  11. Restore the drop-down menu for selecting what area to search. (Where'd this go?!)
  12. When searching for users, always assume a wildcard (*) on prefix/suffix. (We implemented.)
  13. Add prominent link to browse people from the user's portal. (We implemented. We added "Members" to the Welcome control on the top right, which links to ~/user/Members.aspx?search=1&t=&sb=1&so=1.)
  14. Make gallery RSS feed PicLens-compliant. (See
  15. Replace the slide show with PicLens Lite.
  16. Aggregate the media with statistical roll-ups:
    • Highest Rated[in the ..]
      • Last 24 hours
      • Last 7 days
      • Last month
      • Last year
      • All time
    • Most Talked About ...
      • Last 24 hours
      • .. etc
    • Most Viewed
      (We are implementing.)
  17. Show randomized gallery items on sidebar based on statistical aggregate roll-up data. (We are implementing.)
  18. Add "Share with friend" functionality to media galleries. (We implemented.)
  19. Each group/hub gets an events calendar. (We are implementing.)
    • Users can "subscribe" to events to receive an e-mail reminder 24 hours prior to group events. (We are implementing.)
  20. Add the following options (and implement what they infer) to the Edit Profile page:
    • Share Friends (Yes/No)
    • Show Profile Comments (Yes/No)
    • Share Blog Link (Yes/No)
    • Share Gallery Link (Yes / No)
    • Share My Activity Logs (Yes / No)
    • Share My Files (Yes / No)
    • Share My Bio (Yes / No)
    • Show My Announcements (Yes / No)
    • Share My Groups (Yes / No)
      (We implemented.)
  21. Make profile comments and announcements distinct, so that the comments can be treated like a thread and the profile owner can actually respond to a comment without it being a broadcasted announcement. (Think FB 'wall'!!) (We implemented.)
  22. Flag new conversation messages as unread. Any unread messages enables a "new mail" icon to appear in the Welcome control on the top right. Mark the message as read by the recipient when the user accesses the actual conversation message, so the icon disappears. (We implemented.)
  23. Support site-wide survey questions that show up in the user's profile as an additional tab. (We implemented.) These questions are data-driven, and the site administrator can create questions that consist of:
    • Drop-down menus
    • Multi-select list box
    • Textbox
    • Textarea
    • Radio buttons
    • Checkboxes
  24. Support hub-wide survey questions that show up in the group as a Q/A or Polls section. These questions are data-driven, and the hub administrator can create questions of the same types that are supported in the site-wide survey (previous item). (We implemented.)
  25. Support multiple TOS agreements. Make TOS data-driven to point to either a URL or full text field, with a TOS modify date, display each of the TOS agreements in a seperate IFRAME with an "I agree to these terms" checkbox below each, and log the user agreeing to the TOS with timestamp, so that if a TOS modify date ever changes, and any member accesses any member-only section of the site (such as Add a New Post), the user must agree to the latest TOS. Same behavior as World of Warcraft. :) (We implemented.)
  26. Fully integrate live chat support, and link out to a chat room from groups/hubs. (Each group gets a chat room.) (We implemented.)
    • Log chat room activity such that a user can mark a chat room as a favorite and a "Recent chat rooms", "Favorite chat rooms", and "Group chat rooms" are aggregated on the user's portal page with a quick link into the chat room (We implemented.)
  27. Restore into Hawaii the statistical and history data for forums that was enjoyed in the Calypso theme. (We implemented.)
  28. "Write a New Post", "Mark All As Read", and "Reply" need glyphs! (We implemented.)
  29. Make the Control Panel themeable, and make the theme managed by the site theme directory. (We implemented.)
  30. Implement site aggregation in an alternate portal page, magazine-style.

Lots more, but these are enough to mention.

Makes me want to go and build a new community framework from scratch. It's still not too late, although it would take me at least a few years to catch up to telligent's product as it is today.

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Software Development | Web Development

Add comment

(Will show your Gravatar icon)  

  Country flag

  • Comment
  • Preview


Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  May 2021  >>

View posts in large calendar