If you’re managing or developing custom applications, chances are you have a few users updating at least one database. These users need to know how to interact with the database, but they don’t need to understand what’s going on behind all those forms, right? Actually, a little knowledge in concepts could lead to improvements in performance, efficiency, and even value-added features that often, only the users down in the trenches can fully appreciate. A basic understanding of database concepts can help otherwise-clueless users offer innovative suggestions and even point out potential hotspots before they turn into real problems.
1: Hire someone with an expertise in teaching beginners
You might have been the professor’s favorite student, but that doesn’t mean you’re a good teacher. Teaching database concepts to most users isn’t for the faint of heart. Users aren’t stupid. In fact, many are not only able but also quite eager to learn. You just need easy-to-understand examples and scenarios. And for better or worse, most developers and managers just don’t think that way. Your would-be scholars don’t care about Codd or cubes — one will bore them, the other will totally undermine their confidence! If you really think you can do it, go ahead and try, but be mindful of that deer-caught-in-headlights stare. It means they don’t understand you, not that they’re stupid.
2: Work with associations
It’s okay to acknowledge E.F. Codd, but your goal is to introduce users to relational database theory and possibly even the SQL language. You could easily provide slides of bulleted rules and guidelines, but don’t. Information provided that way won’t mean much to most users. Instead, take advantage of their familiarity with other common tools, such as spreadsheets and file cabinets. You know that a spreadsheet is not a database, but a sheet is a good way to introduce rows as records, columns as fields, and sheets as tables. Compare what they already know to what they have to learn. You might think this method is old and worn out, but don’t push it aside just because it’s old. It’s old because it works.
3: Avoid development tools while learning
You’ll probably want to use an actual database while teaching concepts to run simple examples. Although you could supply a set of client management tools, don’t. All you’ll do is teach your students bad habits — habits that rely on a specific set of management tools rather than concepts. It’s important that your students understand the basics before they learn to interact with the data via visual tools. If you want to apply examples to data, use a command-line interface. In the long run, learning how to type query requests directly will benefit them far more than learning how to use a specific set of tools. Once your students understand the concepts, then introduce them to the visual interface tools.
4: Use familiar data
Your users are already working with data that in some way relates to your business. If possible, work with simple examples that rely on that familiar data. It may not seem like much to you, but you’ll eliminate time needed to introduce example data and give users a boost up the learning curve.
5: Set aside enough time for implementation and study
Your users won’t retain much if they don’t have an opportunity to put what they’ve learned into action. Assign additional time outside of classroom training for individual experimentation and further learning. Assign homework by presenting a real-world problem and give students a little lab time to find a workable solution. I realize that it might be difficult to get upper management to agree to this request, but nothing can replace hands-on experience.
- 10 common user questions — and some analogies that help clear things up
- The 10 most important things to teach your users
- 10 ways to explain things more effectively
- 10 dumb things users do that can mess up their computers
- 10 habits of superstitious users
- Five tips for working with difficult users
- Five tips for preventing user screw-ups
- Five tips for helping your users switch to Linux