The Journey : Early Days to How I Got Here
As Chief Architect of MindTrees Product Engineering Services (PES) and IT Services (ITS) groups I play the role of Agile Evangelist. I have more than 20 years experience in the IT industry. I have published papers at international conferences on topics related to code quality, distributed agile development, customer value management, and software estimation. My areas of interest include global delivery models, agile software development, requirements engineering, software architecture, software reuse, customer value management, knowledge management, and IT outsourcing. I am a member of IEEE and the IEEE Computer Society. I interface with educational institutions, offer guest lectures, and write for technical conferences. I write for magazines such as Agile Record, Cutter IT Journal and SD Times. I can be reached at firstname.lastname@example.org or via my blog at: www.mindtree.com/blogs/category/software-product-engineering
.Decisions That Mattered
Let me share two of them with you.
I worked in the US during mid-90s. I decided to return back to India because of personal reasons. I moved back to India in 1999 and got an opportunity to work on Product Engineering and Outsourced Product Development.
Later, I decided to specialize in something that could increase the relevance of my skills and experience to my professional life. This is when Agile Software Development and Agile Methodologies were becoming popular. IT organizations realized the need for Agile experts or evangelists who can nurture and promote Agile adoption. I spent several years in implementing methodologies based on iterative and incremental lifecycle such as RUP, XP, Scrum, etc. This experience was very enriching.
The Turning Points
During the initial years of my career, I was part of a small team that went through an elaborate training program on Relational Databases and Oracle RDBMS. This training program was conducted by the trainers from Oracle Corporation. It helped us understand the implementation aspects of Relational Model and relate it to business solutions. It helped us think broader as well as deeper about data models and architectures. For many of us who went through that experience, it continues to remain a major inflection point.
Another inflection point worth mentioning happened when I started publishing white papers and articles. There is a constant need in the industry for good white papers, articles and blogs. Content creation enables knowledge sharing. It is a great opportunity to validate our thought process and share our experience in reputed forums.Work and Role: Then and now
I used to manage project teams and major accounts. It involved responsibilities that fall under project management, customer management, team management, etc.
At present my focus is on organization wide Agile adoption.I am involved in:
What I Learnt Along the Way
During early 90s, I developed deep expertise in Oracle RDBMS and was one among the top two or three techies in my organization. I was about to get into a mode of complacency and stop picking up new skills. That is when I learned that learning is a continuous process. In an industry like IT, one cannot afford to ignore this fact. We must be ready to learn from all levels of professionals as well as from unusual sources. Also, it is important to remain hands-on and tech savvy.
The second lesson I learnt is on work-life balance. At work we do under go peaks and troughs. There are months when we stretch a lot to put extra efforts. In some projects this can become a consistent or continuous syndrome. However, we need to take breaks and recharge ourselves. Sedentary lifestyle results in serious health problems.
From the time I realized learning as a continuous process, I got an opportunity to learn many things on areas related to interpersonal relationship, work ethics, customer orientation, conflict resolution and various other areas.Changing Days: Lessons Learnt
When I started, IT professionals had to deal with a limited set of platforms and technologies. UNIX, C RDBMS and Local Area Networking were the niche areas. We had adequate time for self-learning and experimentation. Some of us had the luxury of spending weeks together in learning something new. However there was no Internet during the initial years. We had do timeshare on limited resources - both computers, and printed books or manuals. We had limited opportunities to work on real-time systems or production systems of large enterprises. We used computers for software development only. A vast majority of us were not the users of applications and products. There were no desktops at home.
Nowadays the scenario is different. The number of platforms and technologies has increased. For aspiring professionals and learners, resources are galore on the Internet. Interestingly a vast majority of software engineers are end users too. They use several applications and products. Having a home computer with high speed internet connection at home is a common phenomenon these days. However there are other challenges.For example, the daily commute hours of professionals has increased significantly over years. Work-life balance, a term that was not very popular those days has become very critical to keep up with the demand of personal and professional life.
When I started my career I was involved in developing applications that were meant for managing National Games across sites. Also I was involved in implementing the first computerized evaluation system over Wide Area Networks. They were challenging projects too. These days, programmers get to work on projects that involve high complexity, scalability and data volume. For example, at Mindtree a team of engineers built the technology engine for the worlds largest Identity Data Management project. As you know, I am referring to Government of Indias Aadhaar (UID) project.
Trends to Watch Out For
Convergence of computing devices and Cloud Computing are two major trends that I do see. Over the past decade we have seen a set of key influencing factors (http://www.mindtree.com/sites/default/files/resource_center_files/sdtimes_10_top_influences_0.pdf
).These factors have created a positive impact on the industry. On career stand point, such trends mean two things:
1) renovation or transformation and
Organizations need to undergo adequate transformation in order to accommodate such trends. Focused investments or reorganization are two examples. For this to succeed, we need to learn, adopt and anticipate challenges. The challenges of IT professionals during the 21st century are quite different and multifold because of factors such as globalization and technology evolution. In order to face these challenges, 21st-century IT professionals (www.cutter.com/offers/forceofhabit.html
) will need to transform successful practices into habits so that these practices become second nature.My Advice If You are Starting Out
As I said earlier, learning is a continuous process. The ability to learn and adopt multiple technologies and platform is very important. That is necessary to become a wholesome technical leader or technical architect. In addition to technical skills, soft skills such interpersonal skills and team skills are very critical. One has to be emotionally intelligent in order to effectively manage complex situations. Developing business skills, customer management skills are very important too.
When you work on any project, you spend the initial few months in learning and the next few months in performing tasks of low or medium complexity. It takes adequate time to become a contributor in your project. This is when you become a go to person and start helping or mentoring newly inducted team members. This is not the end. One needs to master the domain concepts and implementation techniques specific to a project in order to suggest valuable improvements that can provide benefits to customer. Such benefits, for example, can be in terms of enhanced user experience or increased performance or reduction in maintenance cost. The objective of working on IT projects must not be restricted to gaining knowledge and offering what is expected on a daily basis. Professionals need to commit themselves to go beyond that.
There are several books available in the market for young as well as experienced professionals. I recommend the books Go Kiss the World and The Professional written by Subroto Bagchi.
Link to The Professional http://www.mindtree.com/subrotobagchi/the-professional/
Link to Go Kiss the World http://www.mindtree.com/subrotobagchi/the-book/Must Focus Areas For the Future
I believe in building the basics. Programmers need to have a clear understanding of Software Engineering concepts such as Object-Orientation, Design Principles, Programming Principles, and Design Patterns. Also they have to be disciplined enough to write high quality code instead of making quick fixes. Code Refactoring is a technique to improve the structure of the code without changing its behavior.
When a programmer builds strong foundation in these areas, it becomes easy to catch up with emerging utilities or specializations that happen within a technology or language.
At present as well as in future, there is going to be huge demand for professionals who can build User Interfaces and write applications that can run on smart phones and tablets.
Do We Need Certifications?
During late 90s, I underwent the extension programs offered by University of California, Santa Cruz. I took programs on Object-Oriented Analysis, Object-Oriented Design, Java Programming, Object-Relational Mapping, etc. More than the certification aspect, these programs helped me acquired deep acquaintance in these subjects. We used to have 3 hours of intensive class room sessions twice a week along with individual or group assignments. I learned Design Patterns and wrote programs to implement patterns such as State Pattern by developing a system that emulates automatic traffic signal.
Any certification program from recognized institutions carries some value. However, we must not undergo a certification program just to pass a test and get the certificate. There has to be a genuine intent and passion to acquire knowledge - both theoretical and practical.Books/ Websites I Recommend
There are several books and websites. Suns Java site (http://java.sun.com
) is an authentic place to start with. Dr. Dobbs Journal is a renowned online journal (http://drdobbs.com/
) that publishes good content on Java as well Design and Architecture. Another site I would recommend is TheServerSide.com (http://www.theserverside.com/
). I recommend the website and blogs of authors who contribute to such journals and magazines.