Our ability of expressing ideas, thoughts and feelings through language, so that we can connect with others to achieve goals that that benefit us mutually is what defines human beings as a race. It is this capability of ours to grow through observation-based innovative learning that is one of the most significant gifts we have.
Many of us imagine learning to be an individual effort towards the pursuit of knowledge. Many would picture a guy sitting at his desk or at his computer as an ideal image of learning. However, with the world going global, there are more things to learn than ever now and while that’s a good thing mostly, it often does come with its own unique set of challenges.
To handle these situations and challenges, the new idea is to merge collective knowledge in such a manner that immediate relevant details can be provided in a real-time situation. Professionals worldwide are forming communities where they learn about common interests and pursue their passion by mutual sharing of knowledge and interaction.
It took 1000 unsuccessful attempts for Thomas Edison to invent the electric bulb. After he invented the bulb, he was asked one day how he felt about failing a 1000 times. Edison replied, Each failure was a step closer towards success. A question that springs to my mind after reading this anecdote is, if Edison were living in today’s time, would he have taken that many attempts to make the bulb? How efficient it would have been, if he had a chance then to compare notes and learn of methods that failed so that he could have taken a fewer steps towards success.
Scientists are now witnessing that working individually on select projects alone are not effective, as there is very less progress in mega-projects that way. They find that by sharing experience and expertise together, many of them can realize if their initial approach is correct. But no other industry perhaps realizes the need for Social Learning today as Information Technology.
As a programmer puts it so beautifully, “there was never a time when I felt so close to another soul, and yet so alone, when I googled an error and the search returned only one result- a thread by another programmer with the same problem. And no answer.”
There is a growing demand for social learning as Software developers feel the need for a learning portal or tool, where they can learn short-term skills that helps them in their immediate task, as well as working on long-term skills that will benefit them throughout their careers.
For example, consider these following two scenarios −
Scenario 1 − A developer comes into a co-worker’s office and notices him using a coding sequence tool that had many user-interactive development commands for restructuring his code. The developer realized that he could have also done the same restructuring to his codes using these development environment’s refactoring tools and saved a lot of time, only if he had known about it.
Scenario 2 − While going through a blog, a software developer read about Scrum, an interactive online meeting interface that helped teams reduce communication issues by allowing them to status updates. The developer realized that her own team faces the same issue, and tried Scrum. This experience was so good that she made this as a working principle for her team.
Social learning in software engineering is the practice of referring to the efforts of past software engineers so that the effort and time taken for present software engineers can be minimized. As we could see from the above two scenarios, social learning in software engineering is not new. On the contrary, it is applied in many stages of day-to-day functioning and helps us find the solutions to our most immediate queries.
The cycle in which social learning is used in software engineering −
Relevant elements of the old task are presented to the new programmer as a recommendation to improve that immediate or future task. This not only provides a real-time assistance for fixing issues immediately, but also builds a database of working examples of similar cases for future programmers.
After sufficient iterations, these development tools would have gotten so optimized that the new programmer would only have to make small, customized changes to the largely unchanged script and deliver his work faster and accurately.