Sharing excerpts from my interview with the Methods and Tools, Professional Communications team @ Sapient
HOW IT ALL BEGAN
Describe your earliest experience with a computer.
My first encounter with a ‘computer’, an exclusive gadget in those days, was in 5th standard.The first things I learned were GW Basic,Logo,and drawing diagrams based on coordinates. It was fascinating! Cyber cafés were new in the market and I remember browsing the Internet at 50 INR per hour on a dial up connection.
What books/blogs/sources of wisdom do you value, and what would you recommend to others?
I am not a big fan of reading books especially now when there are several online forums where experts discuss trending topics in real time. I started my journey with JavaRanch(www.javaranch.com and found it quite useful while working onJAVA/J2EE projects. I was active on the site for around three years and made some good friends. I still discuss complex project issues with them. With a hard-core interest in technology, I started contributing to the Tomcat (http://tomcat.apache.org/lists.html), Castor (http://castor.codehaus.org/), and Andromeda (http://www.andromda.org/forum/) forums where I couldinteract with industry experts.
Practical API Design: Confessions of a Java Framework Architect is a good book for people who want to learn writing API that will stand the test of time. It is written by the designer of the NetBeans API at Sun Microsystems (now Oracle).
I have learnt a lot from online discussion forums and strongly recommend that all technologists should join forums that are relevant to their field of work.
What are your interests outside of technology e.g. music, sports, and who are your idols there?
I have a supreme love for dancing and I have managed to learn a few forms of professional dancing like jazz and contemporary. Dancing de-stresses me and is a welcome break in my daily routine.ShiamakDawar (master of contemporary dancing) and Michael Jackson are my role models.
Apart from dancing, I write blogs (www.agrawalsaurabh.blogspot.com) to share my personal experiences and my observations.
I am also a sports enthusiast and was a part of the Under 16 Cricket team of Madhya Pradesh (a state in India).
What is the thing you worked on that you were most proud of?
When I was in 12th standard, as part of a science project,I designed a smokeless chimney to control air pollution. The aim was to help the textile industries change the way waste is recycled. This project was adjudged second-best in India and was presented at National Children’s Science Congress (an international science fest) as a testimony to awareness of environmental pollution. I consider it as an achievement in my life because I received this acclaim at the very dawn of my adulthood. I had just started playing around with technology for the betterment of life in general.
If you had a superpower, what would it be?
The power to reduce and annihilate suffering.
Who or what has been your greatest inspiration?
Steve Jobs,because he transformed the way technology is perceived today.In my opinion, he designed products that symbolize the true amalgamation of technology and creativity.
What comes to your mind first when you see/hear the following words?
· Bar – A place to get sozzled
· Bench– A place in the IT world where I would not want to be in, for a long time
· Apple– iPhone
· Java–Coffee beans translated into technology
How do you define great craftsmanship?
It is debatable as to whether craft lies within machines, with individuals or is a combination of both. Can Mercedes Benz be considered a great car even after being created by computer controlled robots? Such questions always cross our minds because we tend to start drawing a line between machines and humans and in doing so lose the essence of appreciating a great craft.
Crafting is a skill and great craftsmanship symbolizes the effort put in by a skilled individual to develop something of real quality that is accepted globally.
Brooks, one of the oldest English firms, who manufacture bicycle parts in Birmingham, is a classic example of great craftsmanship. Please see the video that shows how bicycle parts are created there. http://www.youtube.com/watch?feature=player_embedded&v=z9w-y24Waz4
It demonstrates a combination of sophisticated machines and skilled craftsmen producing high quality saddles. If we take the machines used by Brooks out of the equation, human skill alone may not be enough to produce bicycle parts with that quality. Similarly, if we take the craftsmen out of the equation, the quality of the saddles will drop again.
In summary, I feel a great craftsman is one who lays the foundation of quality products or services through creative thinking and passion.
What are the first warning signs of bad craft, i.e. code, design, or engineering?
Deviation from the basics can complicate any project. A good developer is not one who just delivers the assigned tasks on time, but also gets the basics right. Aspects like exception handling, code re-usability, using the right semantics of code at the right place, etc., if addressed as a regular coding practice, can mitigate 80% of the associated risks.
An interesting article on how missing the basics of design can lead to faulty websites can be found at http://www.webpagesthatsuck.com.
Are there any experiences outside of programming that you feel have made you a better programmer?
Keeping an eye on what people discuss and share in online forums, like CodeRanch, has definitely changed my perspective towards approaching a problem statement. It has helped me evolve from a good programmer to a better programmer.
IN THE WORKS
What technology trend(s) are you watching out for right now?
I am currently exploring social analytics tools like Social Mention and Tweet Deck to understand their role in gathering useful statistics on trending buzzwords in social media.These tools can be integrated with e-commerce sites to present useful content and products to end-customers.
Cloud computing is another area that I am keeping an eye on. 2013 will be a key year to see how the buzzword around ‘Enterprise Cloud’ fares in the market, especially with the ongoing hot debate between cloud versus virtualization.
Tell us about a project that went wrong. What could you have done differently to make it a success?
Every project in IT industry has its own bell curve symbolizing ups and downs. I wonder how I have started accepting that as a fact now.
In one project we had to build a complex system that had around 15 to 20 integration points, complex business requirements involving SCM, portal technology, complicated pricing, and a governance engine.It had to be delivered in about nine months. The project was delivered before the deadline,but not readily accepted by the prime stakeholders. The reason was not bad design or multitudinous functional issues, but the lack of involvement of country-specific stakeholders during the requirements phase. During that phase, the country managers’involvement was very minimal and as a result, when the system was delivered, it had some missing pieces that could have a negative impact in certain countries.This incident taught us that unless technology marries business, we can’t have a perfect solution.My personal mantra is – “Success is not doing extraordinary things, but doing ordinary things extraordinarily well”.
What’s one problem in everyday life that you’d love to solve using technology?
I would like to see technology being used for studying the human genome to diagnose a disease and simplify clinical practices. If we know the reasons behind the activation of diseases, the development of new drugs and therapeutic procedures will become easier.
Imagine wearing a wrist band with a small screen displaying a disease syndrome.
What do you think is the most important skill for a programmer to have?
It is essential for a programmer to possess strong analytical skills. I believe that developing software is like playing chess where one needs to predict the moves. A developer needs to have the big picture in mind while coding.
It is also important for a developer to know about other areas like productionizationand working on the Web – be it infrastructure elements, networks, web servers, databases, communication protocols, integration points, etc.Being able to see the ‘Big Picture’can guarantee a resilient craft.