Practical Tips for Teaching a Software Package
I was working for a software company called System Group for almost four years. One of my activities was to teach software to the company’s experts so that they can implement the software and support customers. In this post I want to share my experiences and suggest practical tips to enhance learning experience. These experiences are based on teaching a desktop software at an enterprise level, a point and click one (not a programming language) in a traditional face to face class.
Here are the tips. Note that the sequence is not representative of the importance. I just tried to cover the most important topics.
1. Start by the software mission
What happened if the software never existed? How people were doing their tasks? Were they satisfied or reluctant to do the job? Was their job tedious? Software programs have come to solve a main problem. Discuss that problem and say how it can help make the world a better place.
Answering these questions will determine what the software mission is. To explain that, if you want to talk about a warehousing software, remind people of the era when inventory management was done manually and how warehouse staff could keep track of INs and OUTs of a plethora of goods. This will give your students an outlook and guarantee they will not get lost in details. Moreover, sometimes software programs gain insight from innovative activities done by individuals to optimize a series of tasks. It is what students would better be cognizant.
2. Talk about the value
After the software mission, talk about the value it can provide to customers, personnel and generally saying stakeholders. Some value examples are: cost reduction, faster processes, better customer retention, brand promotion and so on. While explaining any feature of the product encourage students to ask themselves “what value it can provide?”
3. Talk about the importance of business process re-engineering
Talk about the idea that in general, simply making processes computerized may not be the case. Successful implementation of software implies that you must think and design everything from scratch; redefine goals, processes, activities and so on.
4. Provide scenarios and problem solving experience
In learning a software program, it is proved by experience that people learn by working on scenarios, experience problems, solve those problems and finally gain knowledge. Remember the expression “if you tell me I will forget; if you show me I may remember; but if you involve me I will learn”. Sometimes it is not easy to teach scenario-based in the class due to time constraints and this activity is often left to workshops. Anyhow, try to approach this method as much as possible by raising questions at the beginning of every section such as “what happens if ...” or use your storytelling skills to break the monotonous rhythm of teaching.
5. Do not forget the “who does what” method
In a typical mid-sized to large company, there are many different roles involved in a process. Consider simulating a situation for students.
Ask students to play a role to make the process understandable. As an example, if you want to describe a procurement process, ask Ali to submit a request for a printer for his room and Mahsa to play the role of his manager and accept his request. Arash, a warehouse employee, receives the request and having no printer available submits a request for buying a printer and it goes on until Ali has a printer in his office.
6. Describe the software Dos and Don’ts
Talk about what this software can do and cannot do for an organization. Also talk about any precondition for using the software especially when it is industry-specific. Subconsciously, some people have the inclination to see a software program as a magic toolbox. Try to elucidate the benefits of using the software and disambiguate any vague point. Last but not least, do not forget to talk about software drawbacks. Do not suppress students’ critical thinking about the software. Being aware of the dark points, they would be able to suggest new ways to improve the software or to propose solutions to overcome the shortcomings.
7. What to teach? Pick up what is really needed.
Think of what can be inferred from the software user interface and what cannot. There are some features of the software that do not need any teaching. Users will learn them quickly and easily by playing around and experiencing on their own. Focus on what is the underlying surface and cannot easily be guessed. Needless to say, the more user friendly the software, the easier it would be to teach.
8. Discover the bugs
During my teaching period, I observed many bugs appearing for the first time in the classroom. Mainly because new learners have no habit in working with the software and somehow instinctively try everything possible to test software.
9. Think of ways to improve software usability
Working with first-time learners is an invaluable situation for an observer to discover design inconsistencies and problems. Again, because students are not used to work with the software, any inconvenience is outstanding in their eyes. Encourage students to express their experience, feelings and thoughts. They are really important for the company that made the software.
10. Describe levels of implementation
A software program can be used in numerous ways. For example, 30 percent of customers are using the software quite badly, using only simple and basic features and not getting much out of that. 60 percent of customers are using at an intermediate level, using some advanced features and interesting reports that really adds value to their own company. The remaining 10 percent are using it exceptionally, taking advantage of many advanced features and complicated reports.
It is really necessary to have a vision about levels of implementation. This level can be improved by training the customer and sometimes offering some consultancy services to them. One thing you must mention is the borderlines: what features or processes or facilities can lift the software
Usage to a higher level? Why those aforementioned 30 percent cannot make better use of the software? This vision can help the students have an overall view of the problems of implementing the software they are learning.
11. Let students structure their mind before you do it
Let’s start by an example: if you want to teach a software program for a library, at the very beginning let students design an ideal software for a library in their mind or on a piece of paper. This can be done individually or in a team. After that, you go step by step to supplement or correct their model and finally come up to the as-is software.
12. Talk about control and flexibility trade-off
One common issue in almost any software is the trade-off between control and flexibility. They often have a negative association: The stricter the control, the lower the flexibility. Make sure to explain cases where this trade-off plays a critical role and mention pros and cons of both extremes and the middle area if existing. If this software has the ability to manage and customize that level, make sure to talk about it.
13. Give a man a fish, and you feed him for a day; show him how to catch fish, and you feed him for a lifetime.
Teach students how to be an independent learner. This is far more important than the material presented in the class. Teach them how they can troubleshoot any problem occurring, how they can control their activities with different forms and reports and how they can make use of the software help. Also, how they can get additional help either face to face or by telephone or using online communities, chatting services, FAQs, mailing lists and any newer sort of ways one can access. Also if there are newsletters, webinars or regular meetings that help them keep up with changes, make sure they are aware.
I hope you enjoyed the tips. Do not forget to say which ones do you find the most useful and practical one.
Just finished an IT contract teaching Social Workers their New Software. It has been a success, but I wish I had read your tips before starting, although we did implement some of your ideals, there are areas which I can use for my next posting. Thanks I enjoyed reading.
What I find so humorous is the amount of time spend on software training because the dopes creating the software don't know or care how people work. These dopes can't even be consistent on something as simple as what button to press to use credit or pin number on POS card readers; is it enter or cancel? What a bunch of useless dopes! Spend a little time learning how human beings work before attempting to make human interfaces; we are very predictable.