 Hi, everyone. Welcome back to the last half of our day two event. So I think the next session is going to be on soft skills that make a great software developer. So I think this is something which is really gentle and it's kind of with respect to your technical track. We'll all be interested to hear. And I'm really happy to welcome Wilson Anandraj, who is with me, who is joining us as a speaker for the day. So he's a vice president at software services factory and he's currently working at Infinite Computer Solutions. And there's a lot more to talk about him. He has around 22 years of experience in R&D and which includes global delivery, PCA, solution architecture. I must tell you the India leader at Alcatel Lusant India. And he's also head in India IPTC in Alcatel Lusant. And he's expertise in operations management and transformation. And he has been successful in creating offshore teams and leading people. And he's proficient in resource management, analytical skills, mentoring skills, presentation, what not, learning leadership and budgeting and interpersonal skills. So I'm really happy to welcome you, Wilson. So this is all yours. We're excited to hear you. Thank you, Pavitra. Good afternoon, friends. I'm really, really happy to be part of this event. And it gives me an immense pleasure to be here to talk to you about some of my experiences, some of the learnings that I have got in the software industry. And I know this is a Saturday and it's around two o'clock. People are wanting to go for lunch. What I'll do is I'll go through the slides. I love you to ask questions whenever it is possible, either through Slack or through Pavitra. And we'll interact as much as possible even after the session. The reason why I chose this topic is, guys, I had been very, very passionate about training people, mentoring people. I have brought in lots and lots of good, passionate software developers. And I know this industry ever since in 1992 when I took my first GW Basic class where I started writing code. When my mentor said, computers are all about idiot box and they don't do anything other than what you tell them to do. And from that time onwards, this has been a fascinating industry. And what India is today is because there has been millions of software developers who have gone around the world, have proved that India is the best place for software development. So what I'll do is I'll quickly go through this agenda. I'll tell you what is software development all about, which probably you all know, and the way soft skill fits into that and the importance of it. And what are the few important soft skills that you and I as a software development community should have? And then we'll finish it with a QA. Let me start with a very, very generic software engineering kind of a definition. Guys, I tell you this is taken from Carnegie Mellon University where they say software engineering is a branch of computer science that creates practical cost effective solutions to computing and information processing problems, preferably by applying scientific knowledge developing software systems in the servers of mankind. If I need to put it in a different way, my own Wilson's own definition of software industry, software engineering, I would call that as art. It's an art of making the silicon chips do what you want them to do for you, right? It's a communication between your brain and the and the silicon chips, which have no animate life, which do not have any life in themselves, but they are programmed, they are controlled in such way that there is a beautiful output that comes out of it, which is used for the service of mankind, right? Remember, again, the words of my own mentor who said computers do not do anything, anything. You know, you talk about ML, you talk about AI, you talk about orchestration, all these words today, but computers and networks, the systems do not do anything other than what you tell them to do. That is the power of software engineering and that is the power of software developers. We have created this industry and this industry has seen a massive growth from 1990s, from 1980s onwards, ever since the first computer was invented from there. And today what we see, it is all the brain of the developers which has gone in. It is all the skills of the developers which has gone in and computers are just boxes of silicon chips. In all this, what we have done is, remember guys, this is something that we need to remember. We as superior human being have gone down below our intelligence. We have gone way below our intelligence to talk to the computer to make it understand, to make it work the call flow that we want that to work and then have been very, very successful in making it work. And that is the tremendous change that you are seeing in the world today. Computers are doing all that now we say and for which the computers which has got no intelligence, we have made it intelligent not by bringing up the computers, but we going below with our soft skills to make computer understand what we want them to do. And if that is the case, what is that we miss in soft skills? If we are able to talk to inanimate things and make a powerful industry out of these inanimate things, what are we talking about lack of soft skills in software engineering? Let's go to the evolution of software engineering. Guys, if you remember the Pressman book on the software development lifecycle software engineering, we had seen waterfall as a methodology for developing software. Remember in software development process in waterfall methodology, we used to talk to the customers, understand what they wanted to do and develop software. And it was a pretty successful model. There were lots of computer systems and computer applications which we had created using waterfall model. There was absolutely no issue. We had seen multiple ways in which we talked to the customer, the Big Bang approach. There were some shortcomings in that. But important soft skills that we displayed in waterfall model includes when the customer was not able to articulate what he wanted to bring up in the system. We used methods like observations, interviews, focus groups, all the soft skills that we used to understand what the customer wanted and then we built systems and it was a pretty successful model. There were some features which were not used when we were building a Big Bang approach. There were issues that were coming up and then we said, hey, let's improve our soft skills better. Let's talk to the customer better. Let's understand the requirements of the customer better. Then we moved on to agile. Again, it is soft skills. Bringing in the customer into our premises. Are we going into the premises of the customer having an iterative way of development, creating a prototype showing to the customer and saying, hey, customer, is this what you like? Is there a chain that you want? We spoke, we understood. We understood what he wanted, what he had in mind. It is all about soft skills. So waterfall agile was a natural evolution. There were lots of good things that started happening on agile. We created bigger agile, safe agile. There were bigger frameworks which were created for software development. Then we still saw that there are some more soft skills that can be brought in. What is that? The requirements are collected from customers. As software engineers, we understood. We had that skills to understand, develop the product. There was software, but software connected the person who created the software engineer and the end customer. The end user of that. Between these two people, we wanted to have less of gaps. We wanted to bridge them more than it was a natural evolution on DevOps. If you see all these three models, and today we have DevOps, we have other methodologies that might come in, but all that we are seeing today is the methodology in which we started writing the software is based on the soft skills, based on identification of gaps that we had with users. There are technologies. I'm not talking about technologies and tools and frameworks which have been there, but it is all bridging gaps in terms of our soft skills between the creators of the software, which is software development community and the users of the software. That's what these evolutions have taught us. Just one point about DevOps that I liked. I took this definition again. DevOps is a combination of software developers and operations. Look again, we are talking about not about frameworks. We are not talking about the tools. We are talking about the combination of two people. There is a middleware in between. We call that as a software, but it is the creators and the users. It is defined as a software engineering methodology, which aims to integrate the work of software development and software operations team by facilitating a culture of collaboration. Take a note of this word. Collaboration is a soft skill that we are talking about. Shared responsibility. Accountability is what we are talking about. Methodologies might be different, but ultimately the creator of the software and the user of the software should have kind of an understanding. When we talk about soft skills, there are around 65 soft skills that a person can have. If you have read a book called For Your Improvement, it talks about the skills that you need to have as a leader. There are 64 skills that they talk about, and one of them is collaboration. It is a soft skill which makes you very successful in whatever you do. Accountability responsibility, which tells you what kind of maturity we have as a human being. DevOps is all about collaboration of people. Collaboration is a soft skill. Shared responsibility is a soft skill. Look at what are the goals of DevOps. It represents a change in mindset. Of course, there are changes in frameworks. We have got better way of storing the repository. We have better way of integrating continuous integration. But all that is okay, but it has created a change in mindset. The change in mindset is a culture. That is a soft skill that I am talking about. In building on top of the agile and lean practices, which have given a way to new frameworks and new tools, DevOps focuses on incremental development and rapid delivery of the software so that the end user can use it. The success relies on the ability to create a culture of accountability. Just take a note of this. If you want to be a great developer, if you want to be a world-class developer, if you want to be recognized as the best person in your company, in your industry, one thing that we need to cultivate is accountability. Success of DevOps itself relies on the person's accountability on how we are able to collaborate with a team. It is not one single person. We are not creating software for a person living in an island. Improved collaboration. Empathy is again a soft skill. Empathy is not written anywhere. Empathy is understanding what the end user wants to do and then creating a code, sitting with the computer, creating algorithms, creating this code in such a way that we understand the ultimate goal of using that software. Empathy and joint responsibility for business outcomes. So that is definition. It tells you how important it is for us to have soft skills of accountability, of collaboration, of empathy. We might be a fantastic coder. We might be a fantastic person in terms of our Python skills or Java skills. But unless we understand the reason why customer has come to us, why the customer has paid us to create that code, we wouldn't be able to be a good software developer. So therefore, the reason why software, soft skills are important for a software developer like us is when people work together on a software project, other skills are necessary to implement. Of course, there are techniques and tools and frameworks that we need to use. But apart from that, our ability to understand people, our ability to communicate what we have in our brain, our ability to interact with the team, each person has got an ego. Everybody in this world who is born has got an ego. That's what Sigmund Freud tells us. So interacting, communicating with multiple egos, with multiple other team members, other stakeholders of the project, be it customer, end user, or be it vendors, or be it the policy makers, ability to manage time, ability to prioritize what we want to present, and ability to report, presenting the progress of the project, not the Big Bang approach, not doing everything that we can do, but not communicating, presenting the progress of the project, negotiating with the customers in terms of what feature needs to go on priority, what feature can be held, what are the things that we can improve in the product? So this is negotiating skills with the customers. Solving problems for which we are paid, we are respected in this world as problem solver. Every software developer is a problem solver. Every customer comes to you with a problem statement. And what we do is we create programs to solve problems. Making decisions, decision making is an important skill among others. So that is the importance of soft skills. So guys, there are, as I told you, there are 64 skills that you need to have as a software developer, as a software engineer. And there is a big list of, probably the soft skills are getting increased these days because of the technology that we are working on and so on. But allow me to talk about few skills that I had seen as most important for software development community today. Number one, to survive in the industry. Number two, to excel in the industry. Number three, to be the best in the industry. And these are the important skills that I talk about. Number one, our ability to pay attention. That soft skill that we need to inculcate. Number two, our ability to speak and transfer the message that we have in our brain to another person, communication. Number three, ability to live this life within 24 hours a day. We have only 24 hours a day and how do we live our life? We have family, we have our own personal priorities. All that we do is we work so that we can have a good life. And if you know, if you die working, it really doesn't work. How do we manage time, management of time and organization of activities? Collaboration, getting that mindset of collaboration, teamwork, adaptability, self-learning and accountability. These are some of the important skills that I prioritize for software developers. So let's move on to paying attention. Guys, in this era where we have millennials coming in, there are researchers happening on how long a person can pay attention to anything. The span of attention itself is shrinking. But as software developers, we need to remember that we are creators. We are creators of programs. We are creators of solutions. So therefore, to be on top of this profession, we need to pay attention to detail. Just take a note of this. Paying attention to details will put you on the right track to your growth. We need to pay attention to problems. There is lots of times that we assume certain things. Assumption has become a big problem these days. It has become a big challenge while training people, while coaching people. Paying attention to details, maybe it is in the customer problem. The problems that we are approached with, paying attention to solutions and seeing where the solutions can break, where the solutions need to be integrated with other solutions, paying attention to the solution that we build, paying attention to risks that we have not seen, but might approach us at any point of time. Risk is an event that can happen at any point of time. Paying attention to risk, paying attention to vulnerabilities, these are details that we need to pay attention to. Pay attention to your customers. This is to people. People have got emotions. People have got body language. People have got tones. We need to pay attention to what customers want. We need to pay attention to how our peers feel. We need to pay attention to what our supervisors in the organizations are looking for from this project. And we need to look deeply into the weak links in our team and how do we support them. So pay attention to customers, peers, people within the organization. Pay attention to where the team can break the weak links in the team. Pay attention to the environment. We all work in a political environment. The environment in which the project is executed, if you see the PIMBOC, the project management body of knowledge, it talks about environment consists of multiple things, external environment, internal environments and political environments. We need to pay attention to that. Look at the changes. Look at the changes that might happen in the project. Look at the political surroundings. Look at the technical factors. Pay attention to the environment. And pay attention to this is my favorite statement that I tell in all my team meetings. Pay attention to what is not spoken. That is the ultimate soft skill that one can develop. Somebody might come and say, yes, I will do this, but that yes may not be yes. If you have looked at the language, if you have looked at the tone, probably he's saying he's not interested, but he's being compelled. Yes can be interpreted into a different way. So therefore, as developers, as we are growing in our career in software industry, what we need to inculcate, what we need to adapt is to listen to words which are not spoken, to read lines which are not written. I always keep saying that when you get a mail, anybody can read English in that mail. My own daughter who is in third standard can understand the English of that. But the difference between her and I is, I understand the meaning behind the email, the intention of sending that email. When you're talking, observe body languages, observe the tones. When you start paying attention to details, to people, to environment, and start focusing on what is not said, what is not written, then we become the superior software developers that the world is looking for. And this will automatically push our career ahead of others who may not understand the importance of paying attention. Paying attention is one of the great skills that software development community needs to have. Communication is another soft skill, very, very important. For some reason, I believe that instead of increasing our maturity in communication, because of the hurry, the urgency in which we are living, because of the busy world that we are living, communication has deteriorated. Remember today, all of us who are working from India today on some software projects is not because of your credit. It's not because of our credit. In 1980s, when the software engineering brand started opening up in the world, Indians around the world went to US, went to Europe, started telling, started proving that India has got the best of brains and that's how Indian industry, today Indians of the industry has grown and lots of credit to people who have done this in 1980s, 1990s, right? And they were able to communicate. And today, what we think is we have selective listening. We don't listen to the entire statement. We don't listen to the core message. We are all interested. People have misunderstood communication as speaking English. People have misunderstood communication as in a group meeting, group discussion, you need to be vociferous. You need to be loud so that people think that you are communicating. Communicating is not that. Communicating is ability to put what you have in your brain to the other person. What communication is all about. Animals communicate, babies communicate without language. It doesn't need words for communicating, but when we are in this industry where the vocabulary is big, the grammar is big, we need to speak with clarity, understand, we need to know what we are speaking, speak with conviction, speak with confidence. People will trust you only when you appear trustful. Keep yourself composed, be polite, respect the other person. Listening is equally important as part of your communication. Remember that communication includes non-verbal, only 7% of communication happens over words and there are body languages and tones which you need to pay attention to. Communication will take our career much faster in our growth. Understand time management, guys, when you have lot to do, knowing how to understand time is very crucial. You need to have the perfection versus what is required for delivery. We tend to spend lots of time trying to perfect what we are trying to deliver and then we miss our timelines as well. How much time do you spend in planning? How much time do you spend in actually writing the code? How much time do you spend working with your team to come up with new ideas? Managing your own time efficiently allows you to focus on what is most important in your task. Some of the time wastes, if you had seen there are evens that will waste your time and that is what we need to pay attention to. The spam news, the spam mails, some of the social media videos, whatsapp groups that you get, people forwarding some hen and chicken playing together, we spend lots of time. So paying attention to unneeded meetings, spam mails, social media that can give you lots of hours. If you cut down one hour in any of these activities, probably you are getting a lot more into your life. Manage your time, manage the way in which you organize your work. Collaboration and team work very important as I said for those of you who have read the seven habits of highly effective people by Stephen Arcavi he says synergy. Habit number five is synergy. If you have read 13 principles of success by Napoleon Hill he talks about principle number two which is mastermind. When you are by yourself, the amount of things that you can achieve is lot lesser than when you have collaboration with somebody else. So whenever you get a chance to talk to your customer take him as your collaborator. He is part of your team, a collaboration. When you are working with your team collaborate with your team. It is not easy because as I told you every human being have got their own understanding they are seasoned with the experience that they have got. You might have difficult people to work with but that's where our intelligence our emotional intelligence should come in and that's where we need to make conscious decisions saying that everybody has got their own value system. I have open mind I will accept the other person as it is. I tell you guys collaboration and teamwork the best way to increase that is teach to somebody something on everyday basis. Learn something by yourself go to the team, teach something be it as small as a poem that you read from Shakespeare. Go teach to them. When you teach to them, when you mentor them when you become a go giver, collaboration the rest of the world universe, rest of the people will start reacting to you in a positive way that's how we can handle teams that's how we can get better collaboration with teams kind of last but one slide adaptability and self-learning a skill which is required very soft skills when I was in my college days I used to learn a programming language called prologue which was an artificial intelligence language mobile. I used to learn fox pro I used to learn VB 4.0 all this is dead all this is not used anywhere given this nature of technological sector in which we are in the envious position that we hold in the industry developer with an adaptable and self-learning attitude has an edge today I need to learn Kubernetes I need to learn open shift and that's a mandate of this technical sector we have to learn as long as we work in this industry the day you decide to stop learning is the day you are heading for path of you become obsolete very very quickly do not be afraid of learning something do not be afraid of experimenting with some new technologies new frameworks new tools create code on a daily basis even if you have become a manager even if you have become a director put your hands dirty make your hands dirty by coding I know my own manager called Adrian who was working with me in one of the earlier companies used to code he was writing code for augmented reality when augmented reality was not even in scenes and today augmented reality is everywhere being able to keep with times and work on upskilling oneself to adapt to the current scenario is one of the best soft skills that we require in this specific industry we are not driving MTC buses for 40 years the steering remains the same for 40 years the brake remains the same whereas here the language is changed the frameworks change the tools change and if I do not learn on a daily basis I become obsolete I will be thrown out and how do we increase our value by being with the with the right technology accountability my last slide guys I know I am running short of time accountability is what distinguishes software developer from a programmer take accountability the code that I write is my own code the code that I write is going to be used in an airplane the code that I write is going to be used in an elevator do I want to get elevator struck do I want to have a mishap in any of my software take accountability to grow as a software developer you must accept and take ownership of your mistakes of your learnings accountability is all about first step towards our leadership in industry I am not talking about positional leadership I am talking about you as a software developer leadership personal accountability is the first step and as the saying goes let's stop working today let's start enjoying our hobby our hobby is to create code our hobby is to solve problems and therefore I love what I am doing therefore I am not tired of working I am not going to office to work I am going to office to play my hobby which is writing of code and solving of problems let's take that accountability and with that guys I thank you very much for your presence and over to you Pavitra Thanks a lot I think it was a really great session you have consolidated so many things which everybody everyone of us needs to invite from college students and professors so I think everybody would have really enjoyed a lot of key takeaways I should say and it's all kind of life lessons more than the technical stuff it is all life lessons and all of us should definitely know and verify so it was really great having you on our event so thank you so much I think people are so excited I could see a lot of you know this might be coming up so thank you so much thanks for the session Thank you everybody bye