I had a long chat with Dinis yesterday, and it got me charged up about TeamMentor.
I see TM being used to help development teams (the entire team, not just the coders) to build more secure, robust applications. This means the tool has to be genuinely helpful and increase productivity. So things that inhibit productivity, frustrate the user, or overwhelm the user are not helpful and must be eliminated from TM. This concept applies to TM admins as well — make it easy to administer.
Thus, I believe we need to make sure we are constantly considering the user — how would the user do X? Is it obvious? Easy to do? Intuitive? Fast? Spot-on?
Another consideration is making TM more engaging for the user. Granted, it has a fun UI, but that is not sufficiently engaging. You might ask, “What do you mean? It’s a tool. Compilers aren’t engaging. Why should TM be any different?” A fair question. I’d argue that an engaging tool is one that is more likely to be picked up and used. When it comes down to it, in order to TM to be useful, the DevTeam needs to use it all time. That means keeping it open in the IDE or desktop and referencing it all the time. The hard part is getting the user to do that. I’d suggest that making TM more engaging is one way. I don’t have the answers, but I do have some suggestions.
So here are some suggestions for helping to make using TM more engaging for the user.
- Allow the user to hit a button that will display a random article, based on current filters or from any of the libraries.
- Create a library called Most Popular. It would have one landing page, and it would list in rank order the most popular articles. This should be dynamic, so articles would move up and down the list over time.
- Create another library called Must Read or Hot Topics. This would have the 5 or 10 most important articles for a given technology or topic. Perhaps even broken out by basic, intermediate, advanced.
- Have another button or library called Today’s Topic. This topic would be displayed by default when a user would login to the site or when the user would click the Today’s Topic button. This could be set by the admin.
- What’s New: show users what the new or updated content. Don’t make them work hard to find it. And with new content showing up daily, folks know that content isn’t getting stale.
- Games/Quizzes/Puzzles: Many developers like a good challenge. Perhaps do a 3 or 5 point quiz after certain key topics (things a developer MUST know). The scores could be used by the company to foster healthy competition among the developers. Or have a button that will pop a random chunk of bad code so the user can play “Spot the vulnerability” (maybe something they can copy and paste into their IDE. They would have to fix it.) There is an interesting tool at NIST that has examples of good and bad code: http://samate.nist.gov/SRD/view.php Perhaps some of the most common issues could be used for “Spot the vulnerability” games. If not that, then the SAMATE database had lots of examples of code to include in the detailed write-ups in TeamMentor.