Posted on

Project Management / Online Collaboration Tools Review

Project Management Banner

If you’ve been following my threads for the past month you’ll know that I’ve been searching for a new project management and online collaboration tool for a new company that is launching in early 2015.   For the past year I’ve been using Trello for Charleston Software Associatesbase projects.

As a single-man operation with occasional support from outside contractors, Trello worked well.  For a larger project, however, it quickly became overwhelming.  10 lists, 300+ cards.  It was a nightmare to find what people were working on, what should be done next, or just finding an important document. The quest was on to find a new task and project management tool.

After reaching out to a half-dozen of my highly-respected CTO-level peers I’ve come to a realization.  There is no good online collaboration / project management tool.   The answers that came back often were accompanied with “it seems to be working OK, I guess” or “we never found one we really liked”.   This is from people that are running operations with anywhere from a dozen to hundreds of employees.   They’ve done their homework.    Nobody came back with a “you must use THIS, it rocks”.

What Are People Using?

It seems a combination of tools, many of which I’ve already explored.  Most corporate teams are using a project/issue management tool for the tech team, a basic task management tool for the rest of the team, a group chat application, and Google Docs.

JIRA for Tech Issue Management

JIRA was a common refrain, but only for the technical team and usually directly related to code development and issue tracking.   Apparently it is good for tech geeks but not simplistic enough for executive and management teams.   Having used JIRA in the past, I know where they are coming from.  It is great for complex technical projects where code commits, issue tracking, bug reports, and other software development lifecycle (SDLC) tasks arise.  Not good for general business task/project management.  If you need a PHD in computer science to use a web app it is not a good tool for the entire business team.

Basecamp, Trello

For task management there was no clear answer.  The answers were different from nearly everyone that responded.  Basecamp was repeated twice. Trello had two “votes”.  People are all-over-the-map on this one.  Apparently there is not a single outstanding task/project management tool for executive teams.  This is where everyone seems to be making a compromise between “too simplistic” or “overly complex”.   Personally I think Basecamp could run away with this category, but it is readily apparent that they have been established for so long that they are no longer in competitive development node; meaning no significant new features will be released any time soon.

Skype, Google Hangouts, HipChat, Slack

Group chat was another area where I received a different answer from everyone that responded.   Skype seems to be the go-to default for many people I’ve worked with in the past, but in my small sample-set there was literally not a single repeat recommendation.  Personally I prefer Google Hangouts.  Their recent updates work far better on a variety of devices and OS deployments.  Google Hangouts has also added a quick-download for doing live broadcast streaming, audio conference calls, video conference calls, and screen sharing from a fairly simple UI (they call it “On Air”).  For my deployments Google Hangouts works far more consistently than Skype.  Skype, however, seems to be the defacto standard as 90% of remote teams I work with all seem to have a Skype account.   I think Google Hangouts with their free International calling minutes and improve broadcast/screencast options will soon make a dent in Skype’s dominance.

Google On Air provides broadcast live video, live screencasts, conference calling, video conferences, and more.  Too bad they make it a "hidden" feature.   Go to Google Plus and start a video chat.  It's easy if you find the link!
Google On Air provides broadcast live video, live screencasts, conference calling, video conferences, and more. Too bad they make it a “hidden” feature. Go to Google Plus and start a video chat. It’s easy if you find the link!

Google Docs

This is the only option that was fairly ubiquitous.  NOBODY mentioned Microsoft Office as an online document sharing/collaborative editing tool.  Seems like Google has run away with this category much to the chagrin of Microsoft.   Microsoft Office was, and still is, the desktop document editing standard.   In the online world, however, they have ceded this position to Google Docs.   From my personal experience Google Docs has a long way to go to match MS Office when it comes to document formatting and related tools, but for online collaboration is is simple, free, and easy to setup.  Microsoft makes it too difficult and costly to get started with their online collaboration tools.  The other downside is it would take a month to port the hundreds of documents from my Google Drive to the online MS Office offering.  Bottom line, if you are doing online document sharing use Google Docs.   Another bonus –  Google Drive, where you Google Docs live, integrates with all of the up-to-date web apps including most of those noted above.

THE Online Collaboration Tool

I’ve not found THE perfect online collaboration tool.   It simply doesn’t exist or has been created but is so low profile it isn’t on any radar including Google search.   I’ve tried over a dozen products at this point and have run into a myriad of issues as noted in my past articles.

As an aside, I have migrated my personal and CSA tasks from Trello to Asana as I have outgrown the simple format of Trello.  However Asana is not a perfect fit but is my compromise solution as anyone on my CSA team will be technophiles and won’t need training on using Asana.

The trials and tribulations of searching for the right tool included:

Trello – too simplistic for large projects.  Basecamp – search and document attachments suck.  Asana – too confusing for most users and no project-level tasks/docs is a major setback.   Teamwork – too complex.  JIRA – too tech-centric and too complex.   Glimp – too young and buggy.  There are a dozen others.    Including recent tests from companies pitching their wares to me on Twitter such as Proofhub that starts off with a blank screen after signing up; not a confidence-inspiring start.

ProofHub Initial Sign-On Screen
ProofHub Initial Sign-On Screen

Seems like online collaboration and project/task management is a market ripe for a new entry to take over the market.

Posted on

Back to Basecamp ; Asana No Longer Viable

Asana Market Research Banner

That didn’t take long.   After spending a few days with Asana my team decided that they could not work with that project management tool.   After spending several hours on training email, live screen casting, and phone calls I agree.

Deal Breaker : No HTML Formatting

One BIG issue was the complete lack of HTML formatting including inline image retention and CSS styling of content that is pasted into discussions and descriptions.  Asana has the annoying habit of stripping any-and-all HTML elements down to bare text.    Cleaner and more consistent interface?  Sure?  Boring as heck, hell yes.  LOSING CRITICAL ELEMENTS like charts and graphs that were part of the original content?  A deal breaker.

Asana’s response to that issue:

Chris
NOV 11, 2014  |  05:23PM PST
Hi Lance,

Thanks for the request for HTML formatting and hyperlinks in discussions of Asana. We don’t have these additions planned for the near term, but we will note your suggestion to help inform future product developments.

We appreciate knowing what you think about the product. Let me know if I can help you with anything else.

Thanks,

Chris

No Project-Level Documents or Discussions

I told my team that EVERYTHING needed to be attached to a task.  It is the only way to get documents into the system or to hold discussions.    After a few days it became clear that this is a really horrible design flaw.   A perfect example, creating the pitch deck.   That was the first task “Finalize Pitch Deck”.    It had all sorts of relevant comments and discussions.   Most importantly it had the in-progress and eventually FINAL Pitch Deck attached to it.
Guess what?  You CLOSE tasks when they are finished.
Guess what else?   My team started asking almost immediately “where the hell did that pitch deck link go”?   Now try explaining “go find completed tasks, it is hidden in there, no go find the task that is one of hundreds completed this month to find THE task with THAT document”.    A nightmare.
One of the things we need is place to store and find final versions of documents.  You know… the type of documents that perpetual beyond the life of a single task.    Things that are project-level or even corporate-level documents.      Asana completely fails in this regard.
Asana’s response to that issue:
Terrence
NOV 10, 2014  |  03:39PM PST
Hi Lance,

Thank you for writing in with your request for project-level attachments. We don’t have that functionality at this time. I will note your feedback for the product team to consider.

As a workaround, you can also find all attachments across multiple projects using Search Views (https://asana.com/guide/learn/basics/search#gl-search-views).

Please let me know if you have any other questions or suggestions.

Thanks,

Terrence

The Other Stuff

There were also the “smaller” issues.  Important but not deal-breakers.  Things like…

Calendar Times

Adding times to event due dates so that the “Meet with Cecil and execute contract” task will be USEFUL when syncing to Google Calendar.  Without a time you end up creating TWO calendar entries, a day-long entry from Asana (the only option) and a time-specific entry in Google.   Asana’s response:
Terrence
NOV 11, 2014  |  11:45AM PST
Hi Lance,

Thanks for the request for time options with due dates. We don’t currently have this on our near-term roadmap, but might consider adding this in the future.

In the meantime, I would suggest including this information in brackets at the beginning of task titles for visual clarity (see attached screenshot):

[2:00 – 4:00PM] Long walk on the beach.

Let me know if you need anything else.

Thanks,

Terrence

Markdown

The ability to add [My Website](https://www.storelocatorplus.com) to make simple text links would have been nice, especially for the 255 character URLS some sites create these days.   The response?
Chris
NOV 11, 2014  |  05:19PM PST
Hi Lance,

Thanks for the detailed request for markdown support in Asana.

While we don’t have related changes planned for the near term, we will consider it and note your suggestion.

When we receive a request for a feature that’s not on our current roadmap (usually because we’ve discussed it and decided to save it for later), we label the inquiry so that when we next set priorities or decide to work on that feature, we can easily find customer requests. We prioritize on a number of factors beyond the number of requests (including staffing, cost, overall product goals), but that is certainly valuable information and we appreciate hearing your case.

We appreciate knowing what you think about the product, and your experience as a new user.

As always, you can review existing functionality in the Asana Guide:
https://asana.com/guide/learn

Let me know if I can help you with anything else.

Thanks,

Chris

Summary

At the end of the day I did not find Asana a bad option.  I liked it better than Trello and Basecamp in many ways. However it is not about me, it is about making my team more productive and giving them the tools they need to communicate more efficiently.    The resounding vote was “use Basecamp it is far easier”.    That is saying something as they had used Basecamp for exactly two days and Asana for exactly two days and easily voted for Basecamp.
Given the fact that I spent a total of 6+ hours training my people on Asana and 15 minutes on Basecamp, the choice was clear.   If we are going to be productive Basecamp was the only choice at this juncture.
Sadly an easy-to-use yet full-featured project management and online collaboration tool has yet to surface.  I’ve tried dozens and none fit the bill of “easy enough for my executive team without lacking significant functionality”.
Do you have a project management/online collaboration tool you use and LOVE?   Tell me why!
Posted on

Asana Intro – Creating Tasks

Asana Market Research Banner

This article is from a note I sent to my team about a new project that I am helping drive forward.  Hopefully the post will give people that are considering Asana some insight on how to use the app despite the shortcomings I’ve noted in other articles.    Asana isn’t completely unusable, I just wish they would respond just once with something other than “sorry you cannot do that and is not being considered for development at the moment”.

On to the “task creation and management” cheat-sheet for my team:

 

First step – CREATE A TASK
This gives you a place to log / attach stuff.    If we are not trying to accomplish a goal (aka “a task”) in relation to what you are sharing then you need to ask if this truly warrants going in Asana.
There are about 20 ways to create a new task like this the 2 simple ways:
1) Team Discussions In Asana
BTW – this should be how we do ALL BASIC PROJECT COMMUNICATION versus sending email.  It keeps the project stuff out of my inbox and in an organized/self-contained/searchable space we can all reference (Asana).
Click “Team Discussions” in the left sidebar just under the team name “Executive”:
Team Discusions
Team Discussions

Now that you are in there start typing your message.
Use the AT SIGN TRICK (@) to notify Ed that the message is for him.  Whenever you type @Ed and tab-complete the entry it will put the message in Ed’s inbox on Asana as well as post it on the board for everyone to see.
Notifying A Team Member
Notifying A Team Member

As you enter the message use the at sign trick again to create a task.    When you type @do this you will see a drop-down where it will say “New Task “do this”.  Select New Task and fill out the pop up box with the task details.
Asana - adding a task
Adding a task from a discussion.

​Fill out as much of the dialog box as you can.    The more you add the better IMO.  Assign a person, assign a due date, attach to a project, attach any relevant files or screen shots, add a description.
Asana - adding task details.
Asana – adding task details.

When you are done you can go to that task and add your commentary to the task.
That is where Ed can paste his dialogue and where Vincent can add his notes.
Just remember to type @<name> when you are doing stuff like “@Lance – please check this out and comment”.  That ensures it appears on my “Asana Radar” under tasks, inbox, etc.
Where To “Attach The Task”?
The big question is often “where the hell do I attach this”.    The short answer: don’t worry about it.    Make a best effort to put it somewhere sane.
Asana search is pretty good at finding stuff.   To give Asana more hints attach tags when creating stuff such as tagging that message with “Mojo” (just click the sales tag icon).
If you put something in the “wrong place” it can easily be moved  by clicking the right-side of any task on the “box handle” and dragging it somewhere.
– Move to different project:  drag it to the project list on the left of the screen.   It will go to the very top of the task list for that project.

– Move it into an existing task as a sub-task:  click on the target task to open the right-side-screen (1), drag the task to be moved into the now-open details for the “parent task” (2 & 3):
Moving a task.
Moving a task.

Organizing Things
 
I don’t have the “secret formula” on organizing this stuff.     Should tasks like “Mojo Research” and all others like it be a whole separate project called “Competitive Research”?    Maybe.    Then the task would go there.
Should it just be under one of the tasks under the “Market Research” project?  That is how I started organizing that topic.   Maybe not the best fit.  Luckily you can easily drag tasks around should we create a new “Competitive Research” project, dragging the “About The COMPETITION” task under there.
SIDE NOTE : it just dawned on me…. this dragging stuff around means we should probably have created SUBTASKS under the “About The COMPETITION Articles” task.    One for each competitor:   “Mojo Research”, “Spojo Research”, “Pojo Research”, and “General Co. Research”.    The reason?   If we did create a Competitive Research project we could “explode” the subtasks by dragging them out of the parent project and making them individual entries under the new project. 
The last option?    Make it a subtask under Finalize Business Plan since that is why we need to do competitive research TODAY.
The question to ask is “Why are we doing this NOW?”   Why are we researching Mojo?  For the hell of it?  Or are we trying to accomplish a short term goal?   IMO Mojo Research is critical to answering questions from investors.    As such it should go under “Obtain Seed Funding” and further should be in the “Finalize Business Plan” task.     That is our “guide to answering investor questions”.
By asking “Why are we doing this NOW?” and “Where does this BELONG?”   we will avoid “going down too many rabbit holes” (to steal Kent’s expression).
Posted on

Asana Project Management, Close But Not Perfect

Asana Banner

After spending the past 2 weeks looking at Project Management tools as a replacement for the overly simplistic Trello, we settled on Basecamp.   Within a week of using Basecamp and not being able to find the content and documents we were looking for in the deluge of newly-added content to the project we decided it was making the team LESS productive.    Time to move on.   After reading another half-dozen articles on Project Management software and what other people found and liked/disliked we decided to give Asana a try.

It looks promising out of the gate, but it is not without its flaws.  Some of those flaws are significant but not significant enough to make it unusable.   Overall we decided that Asana was better at finding and referencing information.   We also liked the near real-time chat feature called “Team Discussion”.  Thus, we are moving to our THIRD project management app within 90 days.   Sadly we are doing so knowing we are making compromises.    For something this important it feels wrong making compromises, but we have yet to find the right app for us.

What We Like

Everything is driven primarily by tasks.    That keeps all content emanating from a single objective-based origin.   However projects are not always so well structured and team collaboration often needs to be more fluid.     Task-centric project management is both a blessing and a curse for Asana.   It is a blessing because you always know to look under a task for most discussions and to find a related document.   It is a curse because some things, like an over-arching project document should not be buried deep inside a task.

The near-real-time updates on the screen are helpful when multiple team members are working on a project.  You can see what other people are saying without refreshing the page.  That is nice.

It is easy to move to other projects or tasks without having to always go back to the main starting point.  Basecamp always seems like you have to “jump back to the beginning” to find what you are looking for.

The search engine and tags are great.   It is far better, and faster, than Basecamp at locating relevant items.  The personal tags on items makes it even easier to find stuff you mark as important to a specific keyword. Very nice.

Tasks can have subtasks.    That is a great feature as the main project can stay focused on primary objectives.  Subtasks and their related commentary get buried in the main task, which we feel is a good thing.

 

The Shortcomings

NEARLY ZERO HTML formatting in discussions    Grab an article and paste it into Asana; goodbye images, text links, and most of the text formatting.    That is a good way to make most research articles useless as graphs, charts, and related hyperlinks go away.

Asana v. Basecamp Copy and Paste Content
Asana v. Basecamp Copy and Paste Content; Basecamp is the clear winner here. We can live without out this feature, but it will be painful.

Inability to create text-based hyperlinks.  Paste in a full HTTP address and you get a nice link.   Have a long link like this: https://basecamp.com/2785054/projects/7505219/messages/33557010  and that creates a long sucky message in Asana.  Especially if you have several such links.    Something like this Basecamp Ed Sheeran Article would be far nicer.  Markdown anyone?  Not in Asana.

You can close a parent task even if the subtasks are not completed.  No warning.  Nada.  It just closes out the parent task.    I guess that can be good in some cases, but I would like to at least have a warning come up saying “you are closing this while sub tasks are not completed, is that OK”.

You cannot assign a task to multiple people.    I guess the Asana folks subscribe to the same flawed thinking that Basecamp subscribes to when it comes to project management.   One person is responsible for a task.   That may make sense, such as setting a project lead, but smaller companies often assemble teams where any member can work on, and close, a task when completed.     I want several people to have responsibility for a task.  ESPECIALLY when you have parent tasks with subtasks.

You cannot attach a document to a project.  You can only attach documents to tasks.    That means there are no over-arching project documents.  That is just not reflective of how the world works, even in a pure Project Management sense.

You can only email content to add a task not augment a discussion.   Yes, they are trying to eliminate email.  However when I am traveling the best and fastest method to communicate on my tiny phone screen is a simple email app.   I should be able to subscribe/unsubscribe to  a task or discussion and thus turn on/off the “email spigot”.    However it should be a two-way spigot where I can reply and have it append the ongoing discussion in Asana.

 

Summary

So far it seems better organized than Basecamp, but this is our first 24 hours with the app.    Having already discovered some major shortcomings makes us nervous.    Hopefully we don’t run into many more issues as we’ve already burned enough time on the team switching project management apps.    That is what happens when you are a lean & mean startup that is trying to move quickly.   No time to thoroughly review and test project management apps while we are already speeding down the runway for takeoff.

Posted on

Basecamp Falls Short, Still The Best Option

Project Management Banner

As the lead on a major new project, Perpetual Media, I have been searching for a better project management app.    For the past year I’ve been using Trello.   Trello is great for simple task lists for myself and for the single-man-show that is Charleston Software Associates.    However Trello falls far short when it comes to large complex projects with a big team, many tasks, multiple documents, due dates, task dependencies and more.

Enter Basecamp

Having been at this software and management gig for two decades, I’ve come across Basecamp many times in the past.    I’ve used it both for my companies and as a consultant for other companies that ran the Basecamp projects.     After a brief search for alternatives I moved the Perpetual Media project from Trello to Basecamp as the project team grew and task management became more complex.  Within 48 hours I had logged a significant number of shortcomings.

Sadly, every time I communicated with Basecamp support they very quickly responded to my inquiries with “Sorry, you cannot do that in Basecamp at the moment.”    Yes, Basecamp support was lightning fast.  That was great.    But fast support is easy when you only need to press the canned “you cannot do that” response button.  Makes it easy to work through an incoming support queue.

What Is Wrong With Basecamp?

Here is my short list compiled in the first 24 hours of use while managing a team of 3 other people that are not as geeky as I.   The biggest problems by far are the TONS of duplicate links and content, disconnected discussion threads, and search that does not always find what I need within the project.

Cannot link existing discussion to new task.

Start a discussion, then derive a task from that discussion.  You cannot make this discussion the default thread for the task.

This is an issue as now any comments made under the task creates a second discussion.  Which leads to the next issue.

Cannot merge discussions.

See above.

Not too mention you cannot merge multiple related threads into a single discussion.

Every Task, Discussion Etc. Creates A New File

Start a discussion, attach a Google Doc file (GD file) i .e. a Pitch Deck .   It adds a file to the file list on the project.

Create a task based on that discussion.   There is no way to reference that pre-existing GD file.    Thus you need to attach the very same GD File, creating a second copy of the GD file.

Cannot Assign Task To Multiple People

Create  a task to assign to a team or a few individual people?   Cannot be done.   Hugely lame.    Should allow for at least assignment to a team.

Cannot Create Subtasks

Create a task that has subtasks?  Not possible.     Good-bye any concept of dependencies or “this needs to be done before that is done” or even “this big task requires these several small tasks be done”.

BC Docs (Notes/Text Docs)  has no indent feature.

Docs, like this on Basecamp, has no way to indent paragraphs.   Or bullets lists so you can have standard bullet indents.

Create a Link in a BC Doc – links  you off-BC

Add a link like this: http://www.google.com/ to a BC note and now every time you click it  you are off BC instead of having it open in a new tab.

Cannot Rearrange Order of Primary Sections on a Project

You cannot re-arrange the page layout of a project.   For example you cannot put the To Do list above the discussions.  As per the above topics the current layout leads to people creating stand-alone discussions first when they should be discussions attached to a To Do item.   Since there is no merge discussions this creates threads about the same topic that are never connected.  It become a laborious process to track down all relevant comments/discussion.

Seeking A Solution

Gahhh…. the more I use BaseCamp the more cumbersome it becomes!   I’ve reviewed at least 6 other PM tools.   Most are overly complex.  BaseCamp is the best SIMPLE interface I’ve found so far.

However, after searching for a phrase I know I had in a discussion and getting 12 WRONG results,  I’m on the PM search again this morning.

Someone, somewhere MUST have made a Project Management Tool that does not SUCK!

Before we make another jump, which consumes far too much energy, I am going to research and setup, and try to get things done in whatever tool I find before inviting anyone to the app.   For now use BaseCamp but I don’t think it will be long-lived.

Based on their canned “sorry BaseCamp cannot do that now” response and how many people I’m finding that have complained about the very same shortcomings for YEARS, I don’t think BaseCamp has any real interest on improving their user experience. Sad for such a good start.

A lesson for PM:  continually innovate & improve or die.

 

Alternatives To Basecamp

Here are some alternatives I tried.  I did not perform in-depth reviews.  My primary goal is to get a job done.     If something was difficult/confusing when getting started I dumped it.    Apps should be intuitive and get you “out of the gate” without performing 10 hours of setup or reading 12 pages of documentation (yes, I know I MUST improve that for my Store Locator Plus experience for my customers!).   If a project management tool required me to perform ANY setup other than start typing a project name, inviting some people, and typing a task name before using it the project was out.    Here is  what I found.

Trello

Pros: Simple account creation, simple setup, good user interface that makes it very easy to start creating “task groups” (lists) and tasks (cards).   Easy to assign multiple people and due dates to cards.

Cons: Hard to find and manage the calendar interface, event/time based entries seem secondary, no good overall document management/pool, no over-arching “view or discussion” for a project as a whole, my users found it difficult to find things.

Bottom line: for a large complex project you quickly end up with far too many cards and lists due to the “task list is king” focus of Trello.   Great for simpler projects and to-do list.  I use it for my personal “do this today/tomorrow/next week” reminders and task management.

JIRA

I’ve used JIRA in the past.  It is a big complex beast that takes some time to setup.    I didn’t evaluate that tool this time around due to multiple crashes and problems when trying to get it setup as the “next step” in my Bitbucket repository management.   I tried to setup a small team of programmers to help with Bitbucket tasks, but JIRA imported things incorrect, took an inordinate amount of time to configure and setup, and after spending hours on email and live chat with the tech support team to be left with a “we need to look into this” result, I decided JIRA was not for me.   A week later they got back to me to tell me they “reset the project” and “try again”.    Try wasting 12 hours getting it to work for a second time and hope it went OK?  No thank you.

Why I didn’t consider it for this project?   I am familiar with the UI and it  is far too complex for my team to work efficiently in the system.

Software should NOT be training users it should be serving the users silently and without fail.

Mavenlink

I signed up for Mavenlink and tried to get my first project and tasks started.   After 15 minutes answering questions to get the project configured, half of the time spent on “set the template and look-and-feel of the project”, I gave up.   Far too much time configuring and “turning dials” rather than “jumping right in” to creating projects and tasks and attaching related documents.   I should not have to decide on the best UI for my users.   They should provide a default and let me tune it later.  I don’t want a tool I need to configure.

There are also far too many buttons and menus all over the place.  This will confuse the members of my team as they hunt for “what to click” to get their job done.

I quickly dismissed Mavenlink due to the “overloaded UI”.

Podio

Podio, now owned by Citrix, was written off almost immediately.   It took me far too long to dig around their overly-enterprise 90’s style web menus to find screen shots and information about the Podio product.    Once I found what I was looking for I could tell that simple UX and modern design style was not their strong suit.   They are geared toward large bloated enterprises that are used to 80’s and 90’s style user interface architecture with 3,000 menus and a myriad of complex setup rules that they feel make an app better.    Bigger is not always better.    Sometimes simple works best.

TeamworkPM

I got a little further with TeamworkPM than some of the other apps I tried.   The sign up was simple and the interface is a decent compromise between overly-complext menu-driven systems like Mavenlink and Podio and the simplistic UI of Basecamp or Trello.    I created projects and tasks quickly but the next major element for my project management tool was adding Google Docs to the tasks.

The failure to quickly and easily attach pre-existing Google Docs to the tasks was a failure.     We use Google Docs extensively as I prefer their collaborative editing and discussion suite over solo desktop-based solutions.   The inability to easily add Google Docs to the project was an immediate set back and terminated my evaluation of TeamworkPM.    When I go to files/add files it should provide me with a Google Docs or Upload option.   Basecamp nailed it.   TeamworkPM would do well to emulate that part of the Basecamp experience.

Next.

 

Still Searching

I am on the quest to find the right PM for  us.     I need  a simple UI.   I need to be able to add my team members, create a project, assign tasks, and attach Google Docs with ease.     When I attach a document or start a discussion I should not end up creating 300 duplicates of the same content.   Finally I must be able to search and find the relevant content within a project or across all projects with ease.

On to some more project management app reviews.    I may even post about my findings if I find the right one or add to the list of failed attempts.

Have a suggestion and not a “pitch”?   Share!

Posted on

Daily Update, Trello, BrowserStack

The past few days I’ve been mostly working on client projects related to the plugins, helping people with their websites and server issues, and dealing with my own server issues.   Along the way I’ve learned some new tricks.

Tagalong 0.9

Tagalong version 0.9 is in development.  I am working through some reported bugs and trying to iron out the kinks.    This version also has patches to make it  work with SLP version 3.10.4.   This is where my focus will be until I get some of the more notable bugs squashed.  As soon as this is ready testing will ensue on SLP 3.10.4, EM 0.7, and Tagalong 0.9.

This version will require SLP 3.10.4

Store Locator Plus 3.10.4

Store Locator Plus 3.10.4  is entering testing.  There are no notable features but there are hooks and filters as well as minor updates that help make a new Enhanced Map v0.7 feature come to life.

When this version is ready you will need to update Enhanced Map to version 0.7+ and Tagalong to version 0.9+.

Enhanced Map 0.7

This version is entering testing.  As noted previously, the most notable feature of Enhanced Map 0.7 is the ability to set per-location map markers.

This version will require SLP v3.10.4

Store Locator Plus 3.11

This is in development.  Future release date is not yet set.    I am trying to get a version ahead of the public release that is in beta/testing in order to give the beta group more time to test an upcoming release.   This version has some notable improvements to how the plugin information is loaded and passed to the JavaScript process on the UI.  This lightens the load on the server when processing the map page load.  This all came about due to the Enhanced Map 0.8 tweaks.

Enhanced Map 0.8

Another future release.  Thus far the notable feature is the “center_map_at” shortcode attribute that a few people have asked for.    It was a lot of work to get this wired into Store Locator Plus, which uncovered some of the produce inefficiencies in the code logic that loads the JavaScript.

Trello

While exploring Easy Digital Downloads I was introduced to Trello.   I’ve only been playing with it for a few days and already love it.  It has a super-simple interface for task management.    If  you are juggling a half-dozen tasks at once, this is a great list management tool.   I already like how it organizes my thoughts and visually lets me see what I’m working on which allows me to easily see dependencies and move tasks/projects around in the queue.  It is all AJAX with a great drag-and-drop interface.  I’d love to emulate some of this user experience into Store Locator Plus but I need to up my UX skills first.

BrowserStack

I discovered BrowserStack while testing IE8 for a client.   They have customers that are complaining about compatibility with IE8.    There are some issues with the location sensor on IE8 that I thought were resolved.   It looks like SLP 3.10 through 3.10.3 have an issue which is resolved in 3.10.4.     Using BrowserStack is a simple solution for doing multiple browser tests on different platforms.  You can get a 3-month free trial if you follow the link from the modern.ie website.    It is costly, at $20/month.   However if you don’t want to fire up a dozen virtual machines to test IE8 on XP or IE10 on Windows 8 then this may be worth the expense.

Posted on

Time Tracking Software

While I don’t work on per-hour billing projects very often these days, they do come up every couple of months.  When those projects come along the clients expect detailed invoices for the time I log on their projects.  As an executive-level technical advisor and consultant my rates reflect the 25-plus years of experience I have in the software industry, 15 of which I have been spent launching and selling several successful companies.    As such I need to produce easy-to-follow invoices that account for my time on a per-minute basis with enough detail to justify any time that has been billed.

For years I used the built-in systems from Intuit.  However in recent years their online time tracking system has become more of a hassle than a helper.  It has crashed numerous times.   I have lost data many times after compiling 2-weeks worth of time entries, and to rub salt in the wound, Intuit support is not only expensive but the ultimate answer on more than one occasion was “we don’t know what happened”.   I paid support for THAT answer?   Ouch.

With several large long-term projects looming on the horizon I decided to start re-evaluating the time tracking applications that are out there.   I want it to be quick and easy to add a customer, add projects, and add tasks.   I want it to track time by the minute.   I want a web, mobile, and desktop version of the app with a stopwatch that assigns the recorded time to a task.   All 3 platforms must sync at the end of the day, if not in real time.   Most importantly it needs to be able to produce pre-project invoices in a clear legible format that shows each task with minutes-per-task breakdown.  Bonus points for syncing with QuickBooks and/or PayPal.    Extra points if it can create custom invoice layouts with my own header and footer including logos, contact info, and messages.

Here are the time trackers I’ve come across and my opinions about each.  Some I tried for minutes, some for days.

Paymo

www.paymo.biz

$0 : 1 user : unlimited clients & project : 1 invoice/month  : 50MB storage
$10 : 2 users : … : 30 invoices : 5GB storage
$15 : 3 users : … : unlimited invoices : 15GB storage

2-star
2-star

Looked promising from the start, however the honeymoon was soon over.   It was easy to  sign up.  It was free for basic use.   They have a desktop (Air app wrapper) and a web version.  They may have a mobile version but I never got that far.   The web interface is easy enough to follow, but could use some improvements along the way.   However I started running into problems within a day.

The desktop app has a known bug.  I could not move or close or resize the window.   I wrote to support, they acknowledged the issue and said “close and restart the app, it will fix itself”.  Not a good start, IMO.  If you know about the bug fix it.  It is the first thing the users sees.

Entering and tracking time was easy enough, but I found myself having to go to the website fairly often as I could not create new customers or projects.   I could only add tasks to existing customers/project.     I also could not edit details.    Not very efficient.

On the web side I found that if I clicked on a box to try to move or edit the task it would close and hide the task.    When I figured out what was going on, I unchecked the “hide closed tasks” on the sidebar.   Unfortunately it only stays in effect for that one page load.  It shows all closed and open tasks but as soon as you do ANYTHING all closed tasks are once again hidden.

However the deal breaker on this one was trying to send a client a report on time worked to-date.    I simply could not find an easy way to do this.   There is no way, as far as I can tell, to generate an interim report.   Even worse, the few ways I thought I could show them tasks completed v. still open, such as printing the browser window, leaves all the completed tasks with strike-through attributes, so you cannot read the tasks easily.    Not a great design.

Close, but poor interim reporting and a kludgy invoice generation system are not going to work for me.   Next…

Make Some Time

www.makesometime.com

$0 signup – terms not disclosed openly

3-star
3-star

After a quick Google Search I came across a Life Hacker article that seems to tout the Make Some Time web app.    Sure enough, creating clients, project, and tasks was easy.  I got my first project in place within 5 minutes.  The sign up was quick and painless, and it is free.    However I did notice multiple screens are not rendering properly in Chrome.    Not a big deal, but it gives the app a distinct “not finished yet” feel.   That makes me nervous when time tracking is a key component of my monthly income.

I was able to quickly and easily generate a project report, modify my time entries, and get something that was almost EXACTLY what I needed for an interim time report for my clients.   Exactly what I could not get PayMo to do minutes early after an hour of “screwing around with it”.  Nice start.

But then I realized something.   There does not appear to be any way to add details or notes of any kind to the tasks.  I looked for 15 minutes and gave up.    If I can’t find it in 15 minutes then the user experience needs work.  My assumption is there is no way to add notes to tasks.  That is a deal breaker.   Too bad, it looks promising but this plus the “not quite finished yet” feel makes be a bit nervous about burning more time learning this system.

Time for another option…

Harvest

www.getharvest.com

$0 : 1 user : 2 projects : 4 clients
$12 : 1 user : unlimited projects : unlimited invoices
$49 : 5 users : … : … : timesheet approval
$99 : 10 users : … : … : …

3-star
3-star

The initial interface is fairly well polished and the design of the site is clean.  Sign up is quick and easy.   The very first thing I want to do is track my time for a client project.   I go to the clock image on the to bar and go to start my time for a new project.  Wrong place.    Goo to “timesheets” on the top bar.  Ok… took eme 2 tries but I found what I need.

Already I am faced with the bane of most time tracking software… you must follow THEIR work flow not your own.   Turns out I cannot freely create a client or project from the time tracker.  I must go to another interface first and create these elements.   Boo.   Already an extra step that is no necessary.

So now I need to go setup a project.  Manage/projects is fairly easy to find and the entry form is easy enough… sort of.   The invoice method already presents me with a choice and forces me to learn THEIR terminology.   I invoice my clients by the hour.   Yet I have several options on “Invoice Method”.   Project is not billable, project is billable / do not apply hourly rate, project is billable / task hourly rate, project is billable / person hourly rate, project is billable / project hourly rate.   Already I am put off by the complexity. What do I choose?   What if I choose the wrong thing?   Will I need to change it later?  Why do I need to be educated on what to choose or find help for what should be a simple “bill hourly” selection.   Not fun.

I also have a budget section with several options and check boxes.  This should be hidden, as should the above options, under an “advanced” tab.   Then when I go to start the project I have a tasks section with “Admin” and “Project management” both with a billable check box an hourly rate.  Again, a bit much for a simple setup but at least this is a simple UI.  I also have a people interface which, as a single user as I selected at the start of this thing, should be hidden until I add other users.   This system is obviously built to be all-things-to-all-people and is overly complex for simple task management.

So now I start tracking my time.  Oddly if I stop it too soon it does not track anything, so I let it run a bit longer.   It takes a while but eventually puts 0.01 in the time log.  The granularity appears to be 1/100th of an hour which is a very odd metric.   Either that or they are showing time as 0.00 with the second digit being minutes but that is quite confusing.  Maybe they think replacing the standard minute (‘) and second (“) marks or hour/minute (:) delineation with a period is cooler because this it he age of dot-addresses but it makes you wonder what the heck the actual time is tracking.

While the UI here is clean, I don’t like that I need to click the pencil icon to add a note.  I should be able to edit on-field using standard AJAX editing trickery and type my added note/detail right in place.   So far, however the UI is fairly clean and modern.    Not exactly what I’d like as far as functionality but a good start.

So let’s try out invoices.   The create invoice is a multi-step process but fairly intuitive.  However something odd here.  My test case uses a base $100/hour rate.   Guess what I learn here?  That 0.00 IS hundredths of an hour.    Ok, that is an odd way to track the time.  Easier for math, sure, and that is how some law firms work but it is not clear from the start.   At least they are using standard notation.     I just have not seen a timer that actually logs in hundredths of an hour right from the start.  No harm no foul.

Harvest does have a native Windows 7 desktop gadget available, so that is a bonus.  I did not see a Windows 8 app listed but if they don’t have one I’d imagine they are working on it.    The gadget itself comes with a small clean UI which does not clutter the desktop.   However, this slick looking desktop gadget does not appear to work.  It is pulling my new project and tasks, but the “leave time blank to start timer” just plain doesn’t work.  You leave it blank and press save and nothing happens.  Boo, again.   I shouldn’t have to be guessing how to get a simple desktop timer working and I refuse to keep a browser window open to track time. Not only does that take up valuable desk real-estate, eventually I close the window or the system shuts down and something funky happens.  Typically losing all my tracked time for the day.

Not a great start.

Already frustrated, though the UI is nice so I may come back to it.  However at this point a simple desktop timer and Google spreadsheet seems to work better.

A day later… I closed the account. I was being spammed with a “you left a timer running”, which I did not think I had.  Turns out the sample task in the account was automatically set to “run” and was still going, only to spam me 12 hours later.   In addition, they don’t stop it automatically they require you to sign in and stop it manually.

TimeIQ

www.timeiq.com

$5 : 1 user
$15 : 5 users
$25 : 15 users
$35 : 25 users
$50 : 50 users

No rating.

TimeIQ has an nice updated site since my last review 5 years ago.  However it immediately brings up my concern for lack of attention to detail and quality issues that we encountered years ago.    Right on their pricing page a few lines away from “same great level of quality and service” is “please feel welcome tget in touch with us”.   So much for the quality aspect.

The  “Widgets and Gadgets” graphic front & center on the home page showing “Vista” and “OSX” as the main operating systems tells me they are not staying current.  Vista has essentially been dead for 2+ years now with Windows 7 and now Windows 8 the go-to version of Windows for most business users.   They also have minor grammar issues like using employees’ instead of employee’s.

These oversights on the main “marketing pitch” of the website combined with dozens of odd phrases, typos, and grammatical errors have me leery of trying this company again.   On to the next vendor…

TimeCamp

www.timecamp.com

$0: 1 user
$6 : per user at 2nd user+

Rating:

The sign up was dead simple.   Username (email) + password.  Done.  You are signed in to a sample setup with sample tasks to give you a feel for the project.  Not bad… but that wood background needs to go.  Yuck!

timecamp wood
timecamp wood

Like Harvest, but not as polished IMO, the UI is simple and easy to follow.   That is good because one of the first things I had to do was figure out why time was wanting to log in on Monday even though it was Sunday night.  Turns out they default to an 8-hour day Monday-through-Friday and apparently you cannot easily add time to a day that is not pre-approved for working hours.  Once again we find a system that is trying to force you to build your contract work setup around their pre-conceived notions.    Easy to override, but why even limit this in the first place?  Over-thought and over-implemented.

I was able to fix this issue and modify the default Sample Project / Sample Task very easily.   I did not like that the “Save Project” label on the button was “Save Task” or that pressing enter did not auto-save which meant I had to go back and do it twice.   Exiting the popup change info form in ANY WAY should ask you if you want to save your changes.  Better yet, just save them.  Once that was out of the way, however, it was very easy to start the timer.   It uses standard hh:mm:ss notation and you can see the time changing.  I already like that feature better than Harvest.

Not a bad start.  Let’s go get the desktop app.   Hey.. and guess what?  There is a link right here in the sidebar “Install / Application”. Sweet.  So easy.  Click, downloaded. Done. Open to install what appears to be a native widget for Windows.   It opens a window where you enter your username and password and syncs tasks with the server. I right-click to get my options, select the task I was working on and start the timer.  It happily starts adding minutes to my task list.  Exactly what I want.   Not too mention it is small an takes almost no space on my desktop.   Perfect.   Now if only I could change that “HEY LOOK AT ME NOW green”.    I’d love to be able to mute that color so it is less distracting, but that is a minor issue.

Sadly the TimeCamp system looks like a very promising start, but again there are shortcomings.    They have several typos on the settings page with things like “metting, lanuch” instead of “meeting, lunch” right on the second line.    QA an attention to detail is missing.

However the big deal-breaker for me?   No easy way to create a report or invoice for my customer.    It is great to be able to easily track time but not when you have to re-create that time in an invoice for the client.  I want the time tracker to at least create a simple web or PDF based invoice.

Another issue?  The desktop widget tracker never seemed to sync with the web server.  I could not get my time to show up.  I had to re-open the preference and re-enter my user info, which was obviously correct as it collected the tasks from the server to show them on the task list.    After I re-entered the data the app synced but then crashed.

TimeCamp is dead
TimeCamp is dead

Fanurio

www.fanurio.com

$60 per year : 1 user : desktop app
$12 per additional year

4 Stars
4 Stars

This is a bit different than the other apps, this is a full blown desktop app for OSX, Windows, and Linux.    Download an installation is quick, you also do not need to register on their site which is nice for a change.

Getting started is easy and intuitive.   I added a client and a project by clicking icons in the interface and filled out a couple of fields within minutes.   I quickly found and started the desktop timer, closing the main app window which starts a system tray icon to get to the interface.    I was able to start a timer and after seeing “no service” I could easily find the “edit timer task” icon and assign the right project and set up a standard billable item I called “hourly consult” at my base rate.

The interface is certainly more intuitive and user friendly than the prior online based system, however there were a few mis-steps while setting up the tasks.  I thought I was setting up an hourly contract item, however  I was editing the current task at hand which is what the client would see.    Easy enough to fix but not perfectly intuitive.

The product is somewhere between the more advanced and over-loaded features of harvest and some of the simpler interfaces.  Not a bad compromise but  not dead-simple everything is so intuitive it always does exactly what you expect.

After a few weeks of using the product it turns out to be one of the better solutions out there.  However invoice integration and coordination with QuickBooks and/or PayPal is lacking.  So, once again, I am searching for a better solution.

Posted on

Upgrading Redmine From 0.9.6 to 1.0.0

Much of this post is repeated in the Upgrading Redmine from 0.8 to 0.9.3 post we did a few months back.  Now with Redmine 1.0 RC out, the upgrade process is once again not as simple as doing a subversion update.  If you are downloading tarzips and installing “manually”, we recommend saving some time and learning basic subversion commands.  Subversion checkout and update is much faster and easier once you have the initial installation in place.

These are Cyber Sprocket’s notes from our upgrade. For more information you may want to visit the official documentation site.

Our Environment

The environment we were running before upgrading to Redmine 1.0(RC):

  • Redmine 0.9.6
  • Apache 2.2.7
  • MySQL 4.1.22*

* Note – we have had discussions with the Redmine development team regarding the MySQL version.  We are running MOST features with no problem on MySQL 4.1, however custom fields on the issue table that are anything but character type will break many reporting and sorting features.   According to some of the developers MySQL 5.X has been required since Redmine 0.8.X.   In reality Redmine works for MOST features on MySQL 4.1.22 though you will need to patch around some things if you want to use custom int fields in Redmine.  There are no guarantees as to what other things will creep into Redmine.     Also, it should be noted that on the official Redmine documentation site it states MySQL 4 is acceptable, even though there is some MySQL 5 only code buried deep within Redmine.

Preparation

The first thing we ALWAYS do before upgrading a system is to store a local copy of the database and the source code. In order to make the archives as small as possible we post a note on the system that Redmine will be offline and at the posted time remove all the session “crud” that has built up. The process includes a mysql data dump, a file removal, and a tarzip.

  • Go to the directory ABOVE the redmine root directory:
    cd /<redmine-root-dir>; cd ..;
  • Dump MySQL Redmine data:
    mysqldump –user=<your-redmine-db-username> -p <your-redmine-databasename> > redmine_backup.sql

    Note: getting an error doing the dump because of LOCK TABLES?   You can add the –lock-tables=false option to your dump command, but be 100% certain nobody else is going to be on your Redmine system when you do this or you will lose data.

  • Remove the session files:
    rm -rf <redmine-directory>/tmp/sessions/*
  • Tarzip:
    tar cvfz redmine-backup.tgz redmine_backup.sql ./<redmine-directory-name>

Setting Up 1.0

The instructions here are based on our installation where the live Redmine site is accessed via Apache and lives (according to apache) in a directory named redmine.

Setting Up Redmine 1.0 Summary

Go to the parent directory ABOVE the one where your current redmine install exists.  The process here is to pull down the new Redmine code, move the old system to an “offline” location, copy over the old version config files, symlink the old directory to the new name, then restart Apache.

cd <redmine parent directory>

# Get the 1.0 Redmine Code
svn co http://redmine.rubyforge.org/svn/branches/1.0-stable redmine-1.0

# Copy the old config info
cd redmine-1.0/config
cp ../<old_redmine_version_directory>/config/database.yml .

# Upgrade the database

rake db:migrate RAILS_ENV=production

# Upgrade the data structures

cd ..

rake db:migrate RAILS_ENV=production

# Initialize the session store on the new redmine
rake config/initializers/session_store.rb

# Move the old directory

cd ..

rm -f redmine (this was a symlink to redmine-0.9.6)
# Hook up the new redmine

ln -s ./redmine-1.0 redmine
# Restart Apache

service httpd restart

Checking Logs

If you have problems check the log files in your Redmine installation directory, such as ./log/production.log. You may also want to check your Apache log files, assuming you’ve set those up. To log Apache messages you need to have an ErrorLog statement in your httpd.conf file that tells Apache where you want your log file written (normally /usr/local/apache/logs/redmine-error.log).

Our Customization

Once we got the basic 1.0 install in place we had to bring over our custom page headings and other tweaks.  Be sure to leave your old install available in an easily accessible place in case you need to do the same.  Some of the tweaks we need to do on our end:

  • copy over the public/.htaccess file
  • set our default environment to production in ./config/environment.rb
  • copy over the vendor/plugins/redmine-google-analytics-plugin/ plugin
  • copy over the vendor/plugins/redmine_my_menus plugin
  • copy over the public/themes/cyber1 theme
  • update ./config/locales/en.yml to change some menu wording
  • make these patches to get int custom fields working in 0.9X and higher
    • ./app/models/query.rb
    • ./app/models/custom_field.rb

Need Help With Redmine?

If you need help with your upgrade, give us a call.

Posted on

Redmine Wiki Formatting with Textile

We use Redmine rather extensively for managing both our consulting projects and our commercial product releases. While the default commands listed in the Redmine help pages are useful, here are some additional formatting tricks to help you get the most out of your Redmine posts. This also works quite well in forum posts and issue reports.

Formatting a Paragraph

These simple tricks work quite well for headers as well, simply replace the p with h1, h2, or h3.  Remember to put a space after the period that ends the formatting directive.

Align the paragraph to the left (default):
p<. The paragraph text.

Align the paragraph to the right:
p>. The paragraph text.

Center alignment:
p=. The paragraph text.

Left side indent by 1em (character):
p(. Paragraph text here

Left side indent by 3em (characters):
p(((. Paragraph text here

Right side indent (margin) by 1em (character):
p). Paragraph text here

Forcing some style into Textile:
p{padding-left:12px;}. Paragraph text here

Posted on

Upgrading Redmine From 8.6 to 9.3

After more than a year of using Redmine to help us manage our projects it was time to upgrade.  Redmine helps us manage our bug lists, wish lists, and to do lists.  It helps us communicate with our clients effectively and efficiently using a web based media in a consistent format that is easy to use for both our developers and our clients.  However, during the past year there have been several changes including the significant upgrades that came out in v9.x some months back.   Our busy schedule kept us from upgrading as each new release came out, and sadly we had fallen far behind.   This past weekend we decided it was time to upgrade.   The notes below record some of the problems we ran into and outlines how we resolved them.  If you are using Redmine for your own projects we hope this guide will help walk you through a major version update of your own.

These are Cyber Sprocket’s notes from our upgrade.  For more information you may want to visit the official documentation site.

Our Environment

The environment we were running before upgrading to Redmine 9.3:

  • Redmine 8.6
  • Apache 2.2.7

Preparation

The first thing we ALWAYS do before upgrading a system is to store a local copy of the database and the source code.  In order to make the archives as small as possible we post a note on the system that Redmine will be offline and at the posted time remove all the session “crud” that has built up.   The process includes a mysql data dump, a file removal, and a tarzip.

  • Go to the directory ABOVE the redmine root directory:
    cd /<redmine-root-dir>; cd ..;
  • Dump MySQL Redmine data:
    mysqldump –user=<your-redmine-db-username> -p <your-redmine-databasename> > redmine_backup.sql
  • Remove the session files:
    rm -rf <redmine-directory>/tmp/sessions/*
  • Tarzip:
    tar cvfz redmine-backup.tgz redmine_backup.sql ./<redmine-directory-name>

Issues

Updating Rails

We realized after some back & forth that our RoR installation needed to be upgraded.  Redmine 9.3 require Ruby 1.8.6 or 1.8.7 (we had 1.8.6 luckily) with Rails 2.3.5 (which we needed to upgrade) and Rack 1.0.1 (which we never touched).

gem install rails -v=2.3.5

Fetching 9.3

We could not perform a simple svn update since we are on an 8.X branch.  A new svn checkout was necessary.  We opted to move our old Redmine install to a different path and do the checkout in our original location:

svn checkout  /redmine

Generation session_store.rb

Later version of Redmine (even 8.X versions beyond 8.6) require a secret key in order for the session system to work.  If you don’t have this you can’t login.  After much trial & error we found that the following command WILL WORK if you have the latest Redmine source (Fetching 9.3) and the latest version of Rails (Updating Rails).   There is not file named config/initializers/session_store.rb in the code repository, it is created by the following rake command:

rake config/initializers/session_store.rb

Updating The Database

The database then needed to be migrated:

rake db:migrate RAILS_ENV=production

Database Upgrade Errors : Migrating Member_Roles and Groups

While performing the database update we immediately ran into a couple of errors about a table already existing. Turns out a simple renaming of the tables fixed the problem, no apparent harm done.

The error message was:

Mysql::Error: Table 'member_roles' already exists:

The fix was as simple as logging into MySQL from the command line and renaming the table:

mysql> rename table member_roles to member_roles_saved
mysql> rename table groups_users to groups_users_saved

Switching from CGI to FCGID

It turns out that RoR does not play well with plain ol’ CGI processing via Apache when running Rails v2.3.5.   We ended up having to upgrade our Apache server to enable mod_fcgid and tweaking our new Redmine install to use that.  We started by following this excellent guide go running Redmine on Apache.  Below are our notes about this process to help save you some time:

  • Do not install fcgi, instead use Apache’s mod_fcgid
  • chmod 755 /var/log/httpd so fgcid can run from Apache and access the socks directory it creates there
  • Modify <redmine-directory>/public/.htaccess to prevent looping with mod_rewrite

Installing FCGID

“Official Apache mod_fcgid”:http://httpd.apache.org/mod_fcgid/ this is the Apache version, seems newer and we had more luck with this than the Coremail hosted version below.

Fetch the code

cd /usr/local/src/
wget 
tar zxvf mod_fcgid.2.3.5.tgz
cd mod_fcgid.2.3.5

Configure and Install

./configure.apxs
make
make install

Permissions

chmod 755 /var/log/httpd
service httpd restart

Install Ruby Gem fcgi

You will need to tell Ruby to work with fcgi for this to work:

gem install fcgi

Errors Installing fcgi gem

If you see this error:

Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

You probably need the fcgi development kit. Get it from here, build it & install it… THEN do the gem install fcgi again.

http://www.fastcgi.com/drupal/node/5

Prevent Redirects

You may end up with looping with mod_rewrite if you had a CGI version installed first.   We commented out the non-fcgid lines and that kept things running smoothly.

Edit <redmine-directory>/public/.htaccess

Comment all the lines for the Rewrite rules for the dispatcher except the FCGI rule for fcgid

#<IfModule mod_fastcgi.c>
#       RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
#</IfModule>
#<IfModule mod_fcgid.c>
       RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
#</IfModule>
#<IfModule mod_cgi.c>
#       RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
#</IfModule>

Getting Errors With FCGID?

This is a very common error.  For some reason Ruby + mod_fcgid do not always play well with each other.  We have two near-identical servers running CentOS 5, Apache 2.2.x, and the same exact versions of Ruby + Rails + gems installed.   Yet on one server Redmine works fine.  On the other we get this:

undefined method `env_table’ for nil:NilClass

The “magic pill” seems to be running Passenger.  While we didn’t believe this at first since we got it to work fine on our development server, it turns out that there are some gremlins buried deep within the bowels of Ruby & mod_fcgid.    These few steps fixed the problem on our production server:

gem install passenger
passenger-install-apache2-module

Edit the httpd.conf file and add these lines (check your paths that Passenger gives you during the install – they may be different on your server):

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/local/bin/ruby

Restart httpd…

service httpd restart

Test your Redmine install.

Checking Logs

If you have problems check the log files in your Redmine installation directory, such as ./log/production.log. You may also want to check your Apache log files, assuming you’ve set those up. To log Apache messages you need to have an ErrorLog statement in your httpd.conf file that tells Apache where you want your log file written (normally /usr/local/apache/logs/redmine-error.log).