Archive for category software development

What is Service Virtualization?

There has been a lot of discussion lately about “service virtualization”, however the term alone can make your head spin. Are we talking about server virtualization? What types of services are involved? What does virtualization have to do with testing? I’d like to quickly clear up any confusion you may have. Service virtualization is used to simulate the behavior of components in an application so you can perform an accurate and timely test in a world of complex interrelated applications. Production services that may not be available for integration testing can be virtualized so the testing can take place at an appropriate time in the software development process.

While quality professionals have always needed to test combinations of code, current methods for writing and combining code have changed so much that traditional approaches to testing can’t get the job done at the right price and the right time.  There is a fast growing commercial market for production services that are incorporated as self-contained modules into software applications. Third party services such as PayPal or a credit checking service are increasingly used in customer facing applications.

Use of these third-party services increases the efficiency of software development, but at the same time makes your application dependent on services that you do not control. Consider, for example, the scenario of an online retailer with multiple suppliers. The retailer has created a new mobile application for customers.  This application uses a credit check service provided by a third-party vendor. The team can’t test without this dependent component, but it is not available for testing. Without service virtualization, the software development team has some difficult choices to make and none of the options are good. If the development team proceeds without doing the necessary testing, they may introduce errors that are much harder and more costly to fix later on. If the team waits until the third-party service is available, developer productivity will decline and the team may miss production deadlines. In addition, if the third-party service becomes available it can get pretty expensive to test application performance at high usage levels since the service costs money each time it is executed.

So what does the development team do in this situation? Service virtualization is a new approach to testing that helps organizations eliminate some of the testing bottlenecks that make it hard to bring new high quality applications to market quickly. Here are five key things you should know about service virtualization.

  1. To get started with service virtualization you need to understand your testing methodology and think about where service virtualization can increase team velocity while also helping your team to deliver higher quality software.
  2. Use a cost/benefit analysis to select which services should be virtualized.  Consider the cost to your company when testing is delayed because dependent services or software are not available for testing. How much is spent on staff needed to set up and maintain test environments? How much do you spend to maintain test environments that are not fully utilized? What is the cost for software licenses in the physical test lab environment? What is the cost of third-party service access fees?
  3. Service virtualization can help you find errors in all testing phases- including unit testing, performance testing, integration testing, system testing, system integration testing, user acceptance testing, and operability testing.
  4. Recording a service that already exists is a great way to define the behavior of your virtual component. You can use the recording process to identify the behaviors that will need to be simulated so you can create test cases quickly.
  5. You can’t expect to virtualize all your components. Therefore, you need to be able to easily move back and forth between real components and virtual components while you are testing. You want to maintain consistency across real and virtual components.

One of the biggest impacts of service virtualization for developers is the ability to validate integrations much earlier in the application life cycle. The software development team can move beyond unit testing and overcome many of the roadblocks that inhibit timely, efficient, and cost effective testing.

, , , , , , , , , , ,

4 Comments

Can software developers leverage social networking?

If you are a software developer, the chances are pretty good that you’ve across  IBM’s developer Works. With approximately 8 million registered users this site has received a lot of use by developers looking for resources on coding, standards, and technical details on  software languages like Java or  applications like Lotus Notes.  Lots of great information, but let’s face it –traditional web environments  feel a little static once you begin to use social networking sites like Facebook or Twitter.   This is why I was interested to learn about IBM”s recent introduction of My developerWorks – a transformation of developer Works that incorporates many of the attributes of social networking.

Why is this important for developers? Technology is changing too fast and the pace of the work environment it too intense for most developers to gain new skills quickly. You can research and learn a lot of material on your own, but you can get a lot smarter and produce higher quality results if you have an effective way of learning from others and collaborating across teams.   Given the economic realities of 2009, many software developers recognize that time spent keeping up with emerging technologies and understanding the business value of IT projects may make a real difference in meeting tight deadlines at work, getting a promotion or even landing a new job. These software developers often gain a lot of their information by following bloggers in their special area of interest or blog themselves to reach out to their peers. They use online reference sources, Linked In, Facebook, and Twitter to find solutions to a tough problem and keep in touch with colleagues.  My developer Works was designed to enable developers to  incorporate many of these resources and tools into one place.

Social networking is changing the way people meet, interact, and share information.  That doesn’t mean you can always make the right connections and get the right  information  in your specific technical area.   You may know you need help with a problem, but you don’t know where to find  the answer.  You may expect that somewhere in your own large company there is an expert with the expert knowledge to help you out, but it take s a week to find him because he is located in another continent.  My developer works is designed to help developers find the technical communities that will help them speed up this process. These are some of the things  that I think developers will like about My developer Works:

  • The ability to create your own view by adding  feeds for favorite bloggers and online forums
  • Easy ways to identify and find subject matter experts using tools  like virtual business cards
  • New ways to share ideas and project details with  work teams
  • Use of  keywords and tagging to locate people to help with your research and skill development

My expectation is that the true benefits of My develop Works  to developers will go beyond having one coordinated portal for  research  and blogging or twitter feeds. The unique dynamics of social software enable people to gain value from non-predictable events. It is hard to predict the right formula or set of circumstances that will lead to innovation. You sometimes get great ideas from following unplanned threads or from pulling together information across many different environments. Developers should be able to use My developerWorks to more easily locate  the right circle of  industry experts and business colleagues to help foster personal growth and innovation.

In a fast-paced work environment, time  often feels like your most limited resource. The business needs to get products to market faster and there is pressure on IT to deliver more efficient solutions in shorter time frames, and with  lower budgets.  We often needs answers faster than we can even think of the question. MyDeveloper Works is designed to help developers to become more productive at their jobs and have more fun doing it.

, , , ,

Leave a comment