Unit testing, a methodology by which programmers can spot bugs in their code before they can cause significant problems or delays, is emerging as a standard programming practice. SDA India Magazine spoke to Vishnu Raned, Country Manager, Agitar Software, to better understand the company's innovations in this space, the market and strategy for unit testing tools in India, and how unit testing can be a catalyst towards ending the so-called Software Crisis.

Vishnu Raned is Country Manager for Agitar Software (India). He has more than seven years of experience in IT product and services sales. He has been associated with companies such as Hewlett-Packard, IBM Rational and Accenture.
SDA: Why is unit testing so important for developers, and what are the typical challenges for a software organization that finally decides that developers should practice unit testing?
Vishnu Raned (VR): Today, looking at the software industry as a whole and in comparing it with other sectors, say manufacturing, the quality of software that is developed is not at the level where it should be. Let’s compare the amount of visibility and time spent in buying with the manufacturing industry – in manufacturing the quality that comes out is normally high. In the software industry, however, due to the dynamic nature of the business, it is difficult to get to a very high quality in the first place and then to maintain it. We always fear and read reports about software being delivered late, software being delivered with lot of defects. These are common stories we have been reading for years and software has been developed for more than 40 years.
Over the decades, there has been improvement in technology -- new technologies have emerged, new processes and state-of-the-art concepts have been developed -- but the problem of delivering software late (and with bugs) persists. The reason is that unlike in other sectors where quality is seen as everybody’s responsibility, the software industry has not reached that maturity. It is still assumed that quality is the responsibility of someone in QA and not that of the developers. Coming back to manufacturing, if there is a problem in the shop floor, the whole shop floor is shut down; the issue is fixed, and then released. So if cars were manufactured the way software is being written, we would be at the garages every second week with one problem or the other. But it is difficult to repair something that is already broken and it is very expensive to do repair work in any goods or services -- it is more expensive to repair than it is to create good quality of product.
The challenge the software industry worldwide is facing is the growing need to improve productivity and quality, and thereby reduce rework. A lot of research has come out recently -- a small shake in the currency has jolted the whole industry because prices cannot keep increasing, as customers are not going to pay for it. The only way to maintain and increase margins is by improving productivity and that is the best way to improve margins and improve quality, and that is where technology comes into picture. Our technology helps developers to create good quality of code during coding itself, rather than do rework at a later point in time. But, it is very difficult to practice this in the software industry because there are no automation tools available to help this being done day-in and day-out. Manually, unit testing what is written is time consuming, laborious, and requires a wide variety of inputs to go in. As a developer, when I write a particular piece of code, it is impossible to test for all scenarios; so I will probably test for the ones for which it is supposed to work and not for the ones it is not supposed to work. This is where automation helps -- trying all different scenarios in improving quality and productivity.
Unit testing is very important -- it is not a new science, but it has never been practiced because immaturity level was always an issue in the software industry. Our technology helps people do it much more easily and that has been a big hit with the customers.
SDA: Can you provide us some information on Agitar’s product portfolio? Are there any launches in the near future or any announcements that you’d like to make?
Vishnu Raned (VR): We just have one product in the market, AgitarOne, which is our flagship product. AgitarOne was released late last year. AgitarOne automates five parts of developer testing. The first thing it does is it helps people who are writing new code improve the quality of code during the coding process itself. As a developer if you buy a few lines of code and agitate the code, our technology is going to tell you how the code is behaving and as a developer you can also decide whether it is doing what it is supposed to do or if there is any issue, you fix it and continue. This is done 25-30 times a day, out of which almost 10-15 times something would be uncovered that would have otherwise been passed onto QA as defect.
Secondly, there is a lot of existing code in the system and there are lots of existing applications in the world in which you are making enhancements and adding functionalities. If you look at the Indian market, especially the outsourcing market, most of the business is from application maintenance and that is nothing but existing code given for enhancements or for maintenance. It is always difficult to make changes to existing code that has not been self-written and is already in place. People find it difficult to understand their own handwriting; leave alone other’s code! AgitarOne’s technology helps create a set of assets on an existing piece of code, it lets you make changes to the code than how it would be done otherwise. The common tendency is not to touch anything that is working because you do not want to break it, but AgitarOne helps you to create a set of assets that makes it easier. The first part – agitation -- takes care of new technology that is developed and new code that is written, while the second part takes care of existing code and improves quality of existing code in the system. Besides the technology allows visibility and transparency into the coding process.
Today, as a project manager, if I want to find out what is the quality of software that’s been written by my team, I have two choices -- one is to look at the code myself and second is to pick up the phone and talk to somebody. The former is difficult to do especially when you are managing huge teams and the latter is a very tricky thing to do, because you pick up the phone and ask how things are going, and normally the answer is, it is doing great and then just two days before the release, all the issues come up. So what the dashboard allows you to do is to watch from your PC you can view the quality of the code being written, seen the number of lines of code being written, check quality of the code, view tests written for the code, know who is working on which part of the code, and how complex is the code being created.
Further, at the end of the day, each of the components has to be flexible and the technology also allows you to have seamless integration with continuous integration and test. The technology ensures continuous feedback on what is done -- the piece of code written is checked in the system and is sent to the build and sent back instantaneously to tell you if the build is broken.
Let me also explain how the technology is useful from a business perspective. One, it is going to help improve quality of the code which is the primary reason why that task has been assigned to you. Second, it helps the work being done 20-30 per cent faster. So, presently, if it takes six months to deliver a piece of code, by using our technology it would probably be done in four months. So the remaining time can be utilized to deliver more at the same time and that is a competitive advantage from a business perspective. Third, the technology helps reduce rework by almost 90 per cent, for instance, if time spent on rework is 100 hours, budgeting will be done for 10 hours. That is a lot of time and money saved especially as rework is not going to add value at the end of the day. If a good process has to be followed and a part of the process [rework] is not valued it ought to be removed. Fourth, if somebody is practicing developer testing, it reduces even that effort by 80 per cent because it is automated. Most of the people in our market are average people -- if you have a 30,000 strong company not everybody is going to be an expert. We get to 10 per cent on top and 10 per cent in the bottom, and 70 or 80 per cent of the people do most of the work, so you cannot expect very high skilled people across all cadres. Automation allows doing developer testing and it also helps improve the skill levels as compared to what it is today. So those who do unit testing manually need to spend 85-90 per cent less time by using our technology than they were doing before.
Any technology at the end of the day is as good as the business benefits it delivers and our technology helps deliver these business benefits that translates to millions of dollars. Even in the Indian context, keeping the Indian cost in mind, what we have seen here is savings upwards of half million dollars per year and higher.
Our flagship product is AgitarOne and we came out with a new release that basically takes developer testing to a new level. AgitarOne 4.2 simplifies the amount of time spent on improving the existing code. Especially in the application enhancement and maintenance business, this technology allows it to be done better than possible. A lot is being printed about how the outsourcing market is moving more towards the risk and reward kind of model. (Currently, most of the business models in Indian market, time and material are fixed costs.) There are a few projects where people are moving on a risk-reward basis, but it takes a lot of courage to be able to do it. We go step further and guarantee coverage -- if you do not see 80 per cent code coverage within a certain time we payback 20 per cent of the money – because of the confidence we have in our technology.
Going forward, we will continue our focus on the Java market -- AgitarOne now works only for the Java market. Going forward, we would be doing more for .Net. The timelines are still not clear and until a customer really comes and asks us, we would probably focus on the Java market, which is predominantly 60-70 per cent of the market today. A lot of new web applications are being developed on Java and if you look, a lot of migrations have happened from old technology to new ones and 80 per cent of the time their choice of language is Java.
Whatever we do, we will stay niche. There is nobody in the market today who is similar to us. As much as possible we will stay that course. And that is what makes us different and unique as well.
SDA: AgitarOne has various open source products such as CruiseControl and Tomcat embedded into the server product. While this allows Agitar's product teams to focus on the core functionality, there are bound to be problems that arise from inconsistencies in open source code bases. How is Agitar addressing this?
Vishnu Raned (VR): We are probably one of the few product vendors who are closer to Open Source than others. As a product development company, OpenSource is key in our quest to make sure that all software that is created is of good quality and work very closely with Open Source. We support Open Source through our technology and use Open Source in our development.
We support CruiseControl for out-of-the-box continuous integration and test and work closely with the CruiseControl team. Incidentally, Jeff Frederick, our director of product management is the top contributor to CruiseControl. That [CruiseControl ] is our weekend job so we stay close to them.
We also work very closely with the folks in Junit. It is the most widely used Open Source static developer testing framework in the world. The creator of Junit, Kent Beck, works for Agitar.
So by having various strong links to Open Source through Agitar and AgitarLabs, we ensure that any technology that we support is bug free and any issues that come up are quickly fixed to the benefit of not only our customers but also to the general public as a whole. We have had very good experience with a lot of good quality Open Source software out there.
As a product company you can only focus on your IP but you cannot say everything is my IP. Partnering with people who are good at what they do and building on what we are good at is what we are clearly looking forward to.
SDA: Can you talk to us in a bit about Agitar's "No Java Class Left Behind initiative"? How has been the response so far to JUnit Factory?
Vishnu Raned (VR): In addition to getting the technology out in the market we also want to consciously increase awareness about the importance of developer testing. Few people actually do unit testing – so it calls for an increase in awareness for those who want to create good quality of code. Agitar Software Laboratory (AgitarLabs) focuses on fostering research in test automation and also fosters closer relationship with the Open Source community. One of the first things we did with AgitarLabs was to set up a initiative called JUnit factory where anybody who wants to know how unit testing is done or wanted to have their code tested could go to the JUnit factory, send their code to us, and we send back a unit test for free.
The response to this initiative has been very good. India is one of the top nations that use Junit.com. Most of those who use Junitfactory.com solutions are from the academia -- people who are researchers, those trying to learn how unit testing is done, and also those from the industry who want to try how unit testing works and looks and how unit tests are structured -- so the awareness levels are good. Junit factory is a subset of our technology and it’s our initiative to help people get to know more about the importance of developer testing also know how it is done. This is our “No Java Class that is ever created should be left behind from testing” initiative, which means we want every Java code around the world that is created to be tested.
SDA: AgitarOne ships with an Eclipse plug-in. What about developers using other IDE's such as Netbeans and IntelliJ?
Vishnu Raned (VR): We made a decision to go with Eclipse because almost 70-80 per cent of the market today uses Eclipse or Eclipse-built IDE. We have Open Source Eclipse, and we also have branded ones upgraded by the likes of IBM and Borland so we support any Eclipse or Eclipse based IDEs. As far as other IDEs are concerned, like IntelliJ, we see only 4-5 per cent of the market using that. That being said, the IntelliJ folks can still use our technology by using Eclipse in parallel to their IDE, so they can still write code in their IDE but switch to Eclipse to test it.
Initially, we had our own GUI, but we decided to go with Eclipse and be a plug-in because developers prefer to work in the same environment and you tell them another application has to be opened and windows have to be switched, then there is a pushback. We want to be as close to the developer environment and so it was a conscious decision to be part of Eclipse Foundation. We are also certified by IBM Rational so we can seamlessly integrate with any part of Rational solutions based on Eclipse. Further, we also now plug in to Borland’s JBuilder that is based on Eclipse.
SDA: In an ideal world, what would the software development life cycle look like so that companies create applications that have near to 100% bug-free code and almost no schedule overruns at all?
Vishnu Raned (VR): The lifecycle would pretty much stay as it is today, which means it would start with collecting requirements, designing the system, and constructing the system as you write code. Then you test the system for functionality and for load, and put it to production and monitor the application -- this is the process in any development. Irrespective of the industry design, development, and testing would be done.
If you look at the software development spectrum, you have technologies that help automate and increase efficiency in every part of the system, except during code construction where most of the bugs creep in. There are technologies that help people during requirements gathering, technologies that help architects design, technologies that help people in QA to do functional testing, system testing, as well as technologies that help people monitor applications. But there was nothing for the code construction phase, until we came along. We compliment every technology out there in the market – such as those from IBM, Borland, Mercury, or HP -- in improving code quality.
The only way to have a bug-free code is by writing code that is bug free, and the only way to write code that is bug free is by testing code while you are writing it rather than later. That is clearly the only way the industry can increase productivity, efficiency, delivery schedules and most importantly, quality. At the end of the day, if somebody picks you to develop software for him or her, the primary the driving factor would be quality followed by cost. Cost alone is not going to get business.
SDA: India is the largest software component testing destination besides US and Japan for Agitar products. Can you give us more Information on this?
Vishnu Raned (VR): From a business perspective, we are the third largest potential market worldwide after the US and Japan. This is a very crucial market for us. We are also different from a lot of other companies, you see operating out of India.
In most places I hear about India in terms of its workforce, but not in terms of revenue. In our case, India is a huge market for us. My goal is to make it our third largest market by 2008, and we are pretty much on track with that worldwide ever since we started selling our product in early 2004. We have 225 customers – 65-70 in Asia Pacific and over 25 in India.
In India our customers are a mix of both people who develop software for themselves and those who develop software for others. Our local customers include HoneyWell, GE Medical Systems, Dell, Cisco as well as Cognizant, TCS, Polaris, and Hexaware who use our technology to improve their delivery capability. Using our technology and doing unit testing is the best way to improve software development, which is the mainstay of companies like TCS.
In Asia we have offices in Sydney, Tokyo, and Bangalore and we are going to be pretty much in the whole region. We also have offices in Munich and London and then we have the East and West Coast in the US. We are primarily headquartered out of the West Coast and that is where most of our people sit -- our engineering team and our founders are based in the West Coast.
You will not find AgitarOne’s founders sitting in the management. They are part of the development team, writing code for the next new releases.
AgitarOne is backed by Sequoia as its principal investor. The company was founded in 2002, during the dotcom meltdown period. (Sequoia, who makes about 25 investments every year, made only two investments in 2002 and AgitarOne was one of them.)
We started building our product in 2003 and started selling it in early 2004, so we have been selling for little more than three years. We have grown in revenue and in number of clients every quarter since we started selling. Software is released with defects and then fixed during warrantee and this is an ongoing tussle -- we want to change the whole thing. Our reasoning is that if other industries can do it so can the software industry with its highly qualified workforce.
SDA: Agitar Software is all set to tap the Indian financial market - why and which are the other verticals Agitar would concentrate on?
Vishnu Raned (VR): Right now, we have started looking at the financial vertical. We have partners in a Mumbai-based company called Quality Kiosk, an application development and testing company who work closely with the financial market. They help us deploy our technology and implement our technology within the financial vertical and they are also responsible for our business in the western region.
Financial services make up 25 per cent of our business. The same should be reflected in the Indian market given that there are lots of financial institutions out there and there is lot of work today being done through technology than ever before. There are more people accessing bank accounts online than walking into a branch today. We also hardly print any bank statements. Given that there is much of technology being used in the financial services sector – technology that is critical for the smooth functioning of banking applications -- it must be ensured that the software works once it is hosted it should not crash. We see that as a significant business where we could make an impact.
We also look at the assembly market because, at any point in time, it is the largest market for. In 2008 we also intend to focus on the government sector. There are certain sectors like education and defense where there is more technology used than others, so we would prioritize which part of the government sectors to target first. This is pretty much our game plan for now.
SDA: How big is the Agitar team in India and what areas does the Indian team work on? Are there any mergers or acquisitions on the anvil for Agitar Software?
Vishnu Raned (VR): We set up shop in July 2006. We have 10-12 people in the region, supported by teams based in Sydney and Japan. My colleagues in Sydney spend seven to 10 days every month in India. We have offices in Bangalore. Our next office should be in Chennai given that we are seeing a lot of practice in that region. We may follow that with Pune and Hyderabad. The most important thing for us is to serve customers and the closer we can get the customers, the better it is for us. At any point in time, if we were required to have a presence in a place with a significant customer activity, we would do that.
Mergers and acquisitions are not the only way of partnering for growth. We look at every possible way of partnering with organizations that can compliment what we do. We are always on the lookout for technology partnerships, implementation partnerships, and business partnerships -- companies that we can work with where we can deliver better value for our customers and their customers and address parts of market that we would not be able to do it by ourselves. This is an ongoing activity in every company’s lifetime, in every region. We work with partners in India -- we have partnerships with companies in Bangalore and in Mumbai -- people who are good in what they do, people who are good in services, and people who are good in implementation and we go to the market with them and they benefit by our technology and we benefit by their expertise.
We talk to various companies continuously on creating partnerships. Obviously, we tend to be very picky on companies with whom we partner because the way a channel would work for us is very different from how it would work for other product vendors. Ours is a complex software engineering product, so it is very difficult for anybody who is not very sound technically to be able to push the product. So we look at companies that have a niche, who have very good technical teams, and also who compliment us in terms of capabilities. Besides, there should also be a culture fit at the end of the day.
SDA: What are the current and emerging trends in software testing and what do you see as the future for software testing?
Vishnu Raned (VR): The key trend today is developer testing. When we set up shop we spent a lot of time selling the concept of developer testing or unit testing and why it’s good to create quality upfront. Today, when we walk into lot of customer situations, people understand what developer testing is and the benefits it can deliver.
Creating good code is not a new trend as far as concept is concerned, but a new trend as far as acceptance is concerned. The acceptance of developer testing as a key part of software development process is a new trend and that is going to continue.
There is lot of work going on in terms of SOA and Web 2.0. There is a need to be close to having a good SOA in place or having a very efficient Web 2.0 system in place. And our company is all about helping people get their basics right. We expect the interest in testing to rise significantly over the next few quarters.
Once good quality code is created, the downstream QA and testing market would also grow because more quality assurance can be provided. Today when a piece of code is accepted for QA, a lot of time is spent on getting the system to work, and sent back for quick fixes before the quality of software is at a level where QA can be done. If this can be reduced by 90% better work can be done – this will have a huge downstream impact on those who undertake QA within an organization as well as those who offer quality assurance as a business and as a practice.
If we have to improve as an industry and improve in terms of delivery and quality, we have to do testing. There are no roundabouts and the only way you can do it is by automating tasks that can be automated. So we see this technology as something that is going to be rampant in software companies and we want to change the way software is developed. Our vision is to be in software development, what Google has been for search -- total transformation, and the result so far has indicated we are very much on course. We have customers telling us there has been 70-80 per cent reduction in defects going into QA before releases and that is a significant amount of time and effort saved in terms of delivery efficiency. With an Indian cost structure in mind, we can achieve so much in improving quality, productivity and savings on the data you would get with a higher cost structure outside the country. We intend to stay the course and, hopefully, at some point in time, we will not be talking about software being delivered with defects or software being delivered late – we will talk about more constructive things than about rework.