Wednesday, June 28, 2017

Software change automation

Are you really thinking this as your research area? You want to live with this goal in your life? Obviously, you might change the area later, but you will be the doctor on this. Are you ready? Lets put the flash lights on this, and examine objectively. I was thinking of this idea for a while, but this is the first informal writing. Lets do brainstorming while the experiments are running.

Software development and maintenance are not easy jobs, and they cost lots of effort from the humans. I believe these tasks will also be delegated to the robots at some point in the future. In the SDLC, software change is the most time-consuming task since all software products are bound to change. You cannot stop it ever! People changes, so are their requirements, and so are their software products! Now, human developers cannot be and should not be stuck with room service and house cleaning stuffs. They got more creative things to do, like solving even more complex problems than the machines. So, software change tasks should be automated for effective usage of human intelligence. For example, upgrading the legacy systems is a machine job now. When did you convert VB code to VB.net by hand? Did anybody ever do that? I do not think so. So, yes, the maintenance tasks should be automated and will be automated. Now, the question is, will you be the part of it? Will you put your mark on it? Why not? Thus, it looks like a good and promising research area for the next 20 years! What do you say, pal?

OK, now the big picture. This automation is a more complex thing than developing some IDE plug-ins or standalone tools. From numerous conferences, I have experienced this--software developers do not value our efforts. They say that we, the researchers, develop craps which are not usable. Well, folks, you are using all the IDE features comfortably, and they are the output of hundreds of research works. I think companies possibly consume the research outcome without knowing that. Do they cite the tool ideas? Recently, I am watching a lot of IDE features in VS which are similar to various techniques proposed over the last decade. For example, "Developer Assistant" of Visual studio. Man, I have been doing those stuffs like local code search, auto-completion, exception handling support since 2012. But, I bet, you will not find paper cited by that damn corporate IDE. But I confess, I liked VS IDE as a developer! I just do not like attitude of MSFT, and their corporate greed.

So, developers! my goal is not just to develop some petty tools for you guys! My goal is to revolutionize the software change process that will eliminate the "maintenance developer" position from the company. This will involve natural language processing, AI, static analysis of source code, IDE feature improvement, regression testing and automated deployment. So, a software will basically take care of the feature upgrades and bug fixation of another software tools. Looks like a big deal, right now! Yes, it is. But, 10 years from now, I will come closer to this insha Allah. I will possibly have gray hair then if I live. My daughter, Anisha, will be a teenager then reading this blog probably. I love you, darling so much!

My current focus in PhD is-- automated support to software change tasks using effective information retrieval and crowd sourced knowledge from Stack Overflow. Lets see how it goes. I am soon planning for the depth exam of PhD. Lets go forward!

Research career goal

[This is a very random article. Please do not expect much. My experiment was running, and I spent that time in this article :)]

I never thought I will be  a sole researcher! That is, I have to earn bread by doing research. In fact, before 2012, I did not know what is research or how it is done. But, then things changed! I am a full time PhD student now, and looking for a faculty position in North America. Did I ever imagine that? I am not sure. But yeah! when I was flying for Canada, I knew that I have to do something extra-ordinary. After all, I am an ambitious man, and never content with the intermediate success!

Well, I have got some success in research---18 publications in 4+ years, and lot more to come. Besides, I had been awarded the Geddes Award for the outstanding academic and research performance. But, yes! I have to get the best paper awards in some good venues like ICSE or ASE. That will make you a researcher for sure! Yet, it is still a good position to be I guess.

The most challenging part will be looking for the job after the PhD. I felt like I do not like much to teach rather I get enjoyment from complex problem solving. But, this is not like ACM programming. I like research problems where I can exercise my ideas. I can do experiments at my speed. My brain does not work too fast. It takes time for me to grasp a problem properly which is actually good. You will have a deep understanding about everything if you just slow down a bit. But yeah, I can solve the problem quickly compared to many other people. From that point of view, research is a perfect job for me. But I also do not like company's culture. They like to own you, even your publications. For example, you cannot have a personal page with your publications, which is ridiculous! On the other side of the spectrum, I do not like going to class and teaching the students. It feels like a stress to me! You got to prepare slides for some non-willing punk asses, and answer their questions! This looks like a little gain for my research. It sounds selfish, but it is also the truth. But at some point, you have to teach, right? In short, it feels like, I am not yet ready to teach research to others. I am still not expert enough. But yes, I can teach the research students, I like the intellectual discussions if people are interested. So, can I just teach SE to the grad students only? We will see.