Our work is changing, as is really the entire nature of what many of us call work. Thanks to the World Wide Web, our ability to create and share resources has never been greater. The Design Mission is going to be getting back to its roots and has started a new project for inquiry based curriculum; Inquiry-Teaching.com
Look for new and returning lesson plans with an inquiry and active learning focus to be live in August of 2017. We’ll continue to update the site with new lesson plans and resources. In two years, we hope to be doing nothing but curriculum writing as our work focus.
While we like to focus on Open Source software, sometimes, there’s not much offered in a specific category. So far, we’ve not found a very good diagraming tool in the Open Source world. Open Office and its children have a fairly good tool, but these don’t have all of the features we really need to work in the business world. One key piece lacking in the OS world of diagraming tools is the ability to export to Visio format for cross platform compatibility.
OmniGraffle from the Omni Group is what we use extensively here. It’s made for Macintosh only, but covers more than we could ask for in terms of ease of use and it does export to Visio format for PC users to import and use, too. With OmniGraffle, one can build complex diagrams for infographics, network diagrams and process flows. The available objects are easily extended and one can add more “stencils” quite easily.
I suppose it sounds funny — thinking about how to managing disruptive work. If it is disruptive, how can one manage it, right? Most people have plans for their day, goals or tasks that they hope to accomplish, and many (perhaps most) people also have the kind of work that one simply cannot plan — things that halt, or turn sideways, all of those big plans you had for your day.
My place of employment has what is known as an “open environment” – no cubicles, an open floor plan, with lots of people in a common area. The theory behind open environments is that with no barriers, there will be more communication, sharing and collaboration. In theory, that’s how it’s suppose to work, and it may well do so for some. For me, however, it means wearing headphones and listening to music or something to provide white noise as a sound blocker is now an imperative. (This blog post, “Why Open Floor Plan Offices Suck, Hurt Employee Productivity & Satisfaction” nails it for me.) I’ve consequently become a Ninja at managing disruptions.
Here are the things I find work for making a disruptive work environment less so: Read more →
Writing documentation and specifications for developers is a big part of my day job. Writing clear, concise documents is very challenging. It’s one thing to write notes for yourself, quite another to explain complex systems and the desired outcome to others. Not only is determining a format or standard way of writing things important for clarity, but so too, are the tools one uses to communicate. This post will focus on the tools for sharing documentation and specifications.
The standard documentation and specification writing tool of most businesses is Microsoft Word, Visio for diagrams, and Excel for spreadsheets — or other similar tools such as Open Office, Apple’s Pages, Numbers and the Omni Group’s Omnigraffle. I have used all of these, but found each lacking in one fundamental way; they make ongoing “knowledge transfer” difficult, if not down right impossible.
When I say “knowledge transfer”, I mean the ongoing care and feeding of systems, troubleshooting a problem or implementing an enhancement to an existing system, or set of systems. Unless the developer, project manager or end user knows where to find the original documentation, be it a specification or write up of a process, it is much more likely that these individuals will seek out any human specialist thought to know about this program or system first and ask for a verbal “download” and knowledge transfer meeting. Not really something that is efficient in the long run as it relies on the ongoing staffing of these so-called specialists. I for one don’t want to be the first stop for questions about systems and programs I have documented in the past — I want my documentation to be the first thing end users turn to for help and guidance. Document management tools such as SharePoint, LiveLink and others help by providing a search function, but I have yet to see anything beat a simple wiki for knowledge transfer. (My favorite wiki being DokuWiki.) Hands down, they win out.
Let’s compare using SharePoint and Word/Visio/Excel to using a wiki to better clarify this comparison. When using SharePoint, an end user can search the contents of the SharePoint site and get a really excellent search results set showing screen previews of Office documents, filters for last updates and more. (Truly, the search results in SharePoint are great.) However, if all of the information is stored in a file, the file must be downloaded, or at best viewed online and edited with browser plugins. A large dataset of Office files also becomes something that must be indexed regularly and is processor intensive. What’s more, there’s ample opportunity for the document to be shared with others outside of the document management tool which may be seen as beneficial to some people, but for me is tantamount to storing the same data in several places with things quickly getting out of sync.
If all of the documentation is done directly in an easy to read, highly searchable wiki page, then even the questions the end user may have can be added directly in the document with updates and improvements to the documentation being done by the community of users. Every wiki I’ve ever seen tracks changes well and is extremely searchable – this is exactly what wikis were created to do. There is no additional application needed, you just use a web browser.
So why not use a wiki for both your documentation, specifications and runbooks all in one fell swoop? If even somewhat organized into separate namespaces, a single wiki can provide an organization with a very powerful knowledge transfer tool that doesn’t require any desktop application or special licenses. Diagrams are really the only tool one needs an application for to create outside of the wiki. (I would also argue for using a diagraming tool such as Open Office’s drawing tool, Visio or Omnigraffle – a future post on diagraming seems like a good idea.) A single reference point for all documentation helps prevent fragmentation of the process documents and helps facilitate a culture where knowledge transfer is done routinely, and information hoarding is no longer the norm.
[I’ll be updating this post shortly with some tips for how better to construct a wiki page, too.]
Who do you go to when disaster strikes? I’ve been told I’m a good problem solver, and am often a “go-to” person for others when there are difficult technical issues to resolve. What am I doing to be tagged in this manner? Note, I don’t know that I actually believe I am better at solving problems, I’m just aware that I do indeed work and get paid to do so, frequently.
I decided to put together a list of attributes that I think make for good problem solving in the technical world. I hope this perhaps helps others. I am more than open to feedback for improvement on this list – please weigh in if you see something missing or that can be improved.
Traits of a Good Problem Solver
Has A Good Memory
If you can’t remember what systems are “touched” by a specific action, you’ll be forced to rely on others that do. Or you will have to look up and research these dependencies on your own first, or discover them in a longer, even more painful path.
Solving a technical glitch can be difficult, especially when it is something that is difficult to reproduce. The most difficult problems I encounter are the ones that appear to happen randomly. The reality is that with a technical issue, this is really never the case; the challenge is in determining what conditions must be met to reproduce the issue. Is it only happening on a specific server? Could it involve caching? Have we established the exact steps taken to create the issue? What conditions in our testing environment might be missing in the production environment that could be part of the cause? It takes persistence to work through all of these permutations.
Has Patience While similar to persistence, this is a different trait in my view. Perhaps an example will help highlight why I think so. Often in web development or other technical fields, we are working on custom code or at least an integration of something in a unique environment. How long will it take to figure out what’s wrong when you are diagnosing something that perhaps has not been seen by others before? It could be two minutes due to some clarity or luck, or two days, or even weeks. Being patient and persistent is what will get you through these sorts of problems.
Documents Everything Very similar to having a good memory, being one who documents everything, including problems and their resolution, really helps problem solving. Have we seen something like this issue before? What did we do to fix it before? There’s nothing worse to me than diving down the same rabbit hole because you forgot how your resolved an issue previously. Write it down in a tool that has good search features, like a wiki, or Evernote.
Can Write Effective Search Engine Queries
Learning to broaden or restrict your search query is a skill. So is knowing what keywords to include in your search. LetMeGoogleThatForYou.com is often used as a joke by me as a none-too-subtle means of poking fun at someone’s poor attempt to solve a problem, but there are skills to using a search engine for sure. Develop them!
Has a Process for Change Management The first question I always ask when there’s a problem reported at work is “What’s changed?” Having a good change management system in place with a code repository as well as a testing->stage->production deployment path for your code makes answering this question easier. If code hasn’t changed, how about data? If neither, is there a new browser or an update that has been rolled out? Some other environmental variable change? Stable systems don’t usually just “break” — something has been changed that caused a problem or exposed an issue kept hidden previously.
What other traits make a good problem solver for you? Please let me know what you think.
Two tools I live, eat, and breath using are Things (from CulturedCode) and Evernote. I use Evernote for notes including captured images, documents and links and Things for task management using Getting Things Done (GTD) methodology. In theory, each could stand alone and I suppose I could get along with Evernote alone, but sometimes it’s better to not stretch a tool to be used beyond its primary purpose.
Evernote is ideal for note taking and capturing, well, anything. Use your camera on your smart phone or tablet to capture white board meeting notes, or a page in a book (Evernote will use OCR software to make this text searchable, too), or a group of people you just met — anything. Take notes on your desktop, phone or tablet – or use a web browser to login to the web app version.
The free version does all I need it to do. I can take a photo of each of our car’s license plates and know that I’ll never need to look it up again or remember it. I can take notes on my iPhone, company iPad or laptop — it all gets synced and is available to me on any device I need it on. I can search the data, tag it and organize it in any number of ways. If you love GTD like I do, you’ll quickly understand how this tool is the perfect one for capturing all the data you need to sort and organize.
Things is light weight and simple for me to drop my to-do lists into as well as do a mind sweep of all the various “things” my brain is over analyzing and trying to remember. (GTDers, you know what I’m talking about here.) I can capture a task quickly on my iPhone and then process it later. If I tag it, my tags can reference Evernote tags, too. Just like Evernote, it has a custom iPhone and iPad app, too, because mobile devices are used differently than desktops or laptops — and everything syncs across all of my devices. Things is not free, like the basic version of Evernote is, but I’ve never regretted buying the desktop and iPhone apps once.
If you are looking for a way to increase your GTD adoption, I really recommend using both Evernote and Things together.
Having long been an advocate of several open source content management systems, I’ve also done the difficult task several times of moving content from one system to another. Given these systems rarely (if ever) have built in export and import abilities (WordPress being one of them however), you can expect to do much of such a conversion by hand, one article at a time. If you have a large amount of content, obviously, this is a very time consuming and expensive endeavor. Moving users and passwords would require several complex database queries and testing as one must also understand how the passwords are encrypted. It’s a painful process and often too expensive for many clients to consider doing.
Here’s a resource to make this no longer an issue. CMS2CMS.com can make the conversion from one CMS to another in a matter of minutes. They’ve written the complex scripts needed to perform these tasks and appear to be adding to the list of what they can support all the time. They even have a script that will spider a site and push the content into the CMS of your choosing — take a look at the HTML to CMS path. Here is the full list of supported platforms.
I used their services to move a Joomla based website running on 1.x Joomla to the latest WordPress version and their tools captured all of the content and most importantly, moved all 138 members of the old site to the new. This was done in about 10 minutes time, including the time for me to put their “bridge” script on the client’s server. This allowed me to get the conversion done in an amazingly fast way — my client could not be happier. Me, too.