Recently I have been having a helluva time trying to setup some pretty simple business systems. Basically, I'm trying my best to allow my department to work seamlessly as a team without resorting to "Daily Bullpen" meetings or spending 15 minutes logging what you just did for the last 45 minutes, and without sending mass emails to everybody, because let's face it, as much as my inbox is my one-stop-shop for everything communication, it may not be for everybody. People need the ability to consume only what they feel they need for the system to be useful. But I digress. First, a few wins:
1) Yammer - Recently setup a Yammer site for the company which has worked pretty well, we started off with a bang where usage and involvement blossomed. People were accidentally communicating where we never had before, even across oceans. However, the Holidays killed off the initial enthusiasm and it's been harder to get momentum back rolling again, but I have faith that this is still a win.
2) Instant Messaging - Because the office all uses office and microsoft products, we had everybody sign up with their work email address to MSN Live Messenger. Not only does this offer another avenue for communication with each other beyond email/phone, but it also links into our Office Products and provides presence sensing. So when I'm sending an email to somebody, and I'm logged in and they are in my friend list, I can see their status immediately and might choose to just launch a conversation rather than sending an email. This will get pretty cool if IT is able to launch OCS, or Office Communicator. Basically this means that you no longer have to sign up and login to messenger, it's just built into our Active Directory so it all happens automagically. Sounds fantastic, especially if it can be rolled into our entire international group rather than just here in the USA.
Now for the challenges....
1) Tasks - How do you setup a task list that will not only allow everybody visibility, editability, categorization, priority, and also hooks into automated systems that allow us to build workflows for common tasks like Releasing a new product or Creating Documentation? Again, we use Microsoft so Outlook was the only way to fly here. We all use it for our email, why not just use the task list in there? That's ok, however how do we allow others to see it? We could share our task lists with others like we can calendars, and this works great for viewing. However, what about a manager who wants to work with his reports on a task? He would create a task and assign it to a report, that sounds great! However, once he assigns that task he loses all control. He can't edit it, reassign it, nothing. He's now just on the outside looking in. One thing we do have in our company is a Sharepoint Site, which allows us to create subsites with task lists. If we all put our tasks on there and link the task list to Outlook, this gives us a pretty cool thing. It allows a manager to add a task, assign it to a report, but doesn't lose control. If somebody, anybody, wants to add data to a task, they just change it. Sharepoint automagically sends an email to the person the task is assigned to alerting them of a change. Not only that, but Sharepoint also allows us to create workflows to automatically assign tasks for things like Product Releases. This requires the use of multiple subsites for different teams and groups, but that's no problem at all! Once you link multiple task lists, Outlook automatically aggregates all tasks lists into a single to-do list! (Notice the copious use of the word "automatically", this means we're on the right track) Originally we had been using task categories to give a little granularity to the timeline of the task, which worked great. We synchronized our category lists so that everybody was using the same, and when a manager created a task he could give it a category and it matched into the reports list. However, if a person has tasks coming from lots of different teams, like for instance, a co-op student, how does a manager see an aggregate list of their complete list? I mean, Outlook already aggregates it for the person, can't a manager set up a similar view? Nope! Darn, we're so close, so close! The only way I could figure out how to do this was to setup a new Web Part page in Sharepoint, create a new Content Query Web Part for every person, and then you could see an aggregate list of tasks for any one person. Perfect...but wait, a manager would want to see what the report has on their list for today, we should group by our categories...oh no! Categories the way Outlook uses them is not carried over to Sharepoint, they are useless! Again, so close, an yet so far. The only thing I could see that really came close to this was to change our Task Paradigm again to use Priorities to easily identify what was being worked on / looked at Today, Next Week, and Potentially Never. By hiding all reminder tasks and Long Term tasks, we could show a reasonably good view of what was being worked on today and in the coming weeks. But really, did it have to be that hard? This can't have been the best way to approach this, can it?
2) Documentation - Good documentation is a great thing, even better is consistent documentation created fast. Keep in mind, we're not a huge company to begin with, and I work in just a small department that requires a higher percentage of documentation and training compared to the lower percentage of sales. So a lot of these responsibilities falls to the department to generate some product documentation in the form of Startup Guides and HOWTO's. We also are fortuitous in the fact that we have some smart co-op students that are pretty capable. So here is the flow I'd like to have:
1. Somebody, somewhere thinks up an idea that they need documented.
2. Somebody technical creates a series of screenshots or video of how to do it.
3. Co-op student takes the screenshots and follows them, learning how to recreate the idea, and then writes the proposed document.
4. Co-op submits the idea to the documentation committee, which checks it over for content, flow, and makes sure it makes sense. After all, we're all mostly engineers, we're not known for our writing ability. (I submit this blog as Exhibit A) (I whent to skool to b an inguneer, and now I are 1) However, sometimes the writers are not required, so the engineer will do the writing and submit it directly for review, and needs to be sent back to the engineer for editing if needed.
5. Document gets sent back for further changes, or gets approved.
6. Approved document is given to web committee to get it transformed into a PDF and put out in the wild.
Seems like a straightforward process. It also sounds like it's a job for, dun dun dun, Sharepoint! We setup a document library, create custom content types to allow people to start with templates we designed. We created a custom column to hold the state of the document and we created some workflows to generate some tasks for the different states. Problems? Yes, there are some.
1. Document libraries do not allow for attachments, and many times our documentation is a software guide that may have some accompanying documents like other Product Manuals, Sample code, or pictures.
2. I am not a professional Sharepoint integrator, so I can only scratch the surface of custom workflows and I refuse to write .NET code in order to accomplish what I need. I feel that if I need custom code I'm doing something wrong or too specialized, I feel what I'm trying to do should be easy. So the problem is, I'm unable to setup a single workflow that will trigger off the status of the document and automatically contact who needs to be contacted. Where I get really tripped up is that sometimes the writers get involved, and sometimes not. Right now I have it setup as one custom workflow to send the item for review directly, and then I used a 3 state workflow to handle the send to writers, send to review, and approve. This allowed me to keep the OOB approvals methods intact which I don't see how you recreate in a custom workflow. I also don't like the fact that I have to train people how to manually launch a workflow, rather than just change the status.
Can anybody help me? These things should be easier....I feel like there must be something obvious I'm missing. If you guys can help me answer these questions, I might post about how to handle things such as Bug Reports and Sales Tracking....but as Alton Brown might say, "Those are a different post."
Thanks!