Posts Tagged ‘automation’

“Drop the Software Testing Baton”

Thursday, January 17th, 2013

A software tester, with a determined look on his face, walks briskly up to your desk and blurts out, ‘It doesn’t work.’  After you sigh, your mind oscillates between responses of, ‘Okay, let me look into it,’ and ‘What the heck do I do with THAT?’

Developing and testing software should be less of a series of hand-offs between tester and developer, and more of a collaborative, ongoing conversation.  Even with the most well-intentioned of testers, the baton is often passed off to a developer because the tester has run out of debugging options.  FAST has eliminated that baton pass forever.  The testing approach and automation that we used on a recent project played a significant role in allowing us to convert a company’s life insurance policy administration system in only five months.  No one on the project could have imagined this pace being possible without efficient and effective testing woven into the entire project.

Empowering the Team

We created a debugging tool easy enough for everyone on the team to use…

  • A failed test condition was no longer the end of the road
  • What went right, what went wrong and precisely where it went wrong was clear as day
  • Corrections were made simply – using spreadsheets  and configuration changes
  • Painstakingly documenting detailed recreate steps became a thing of the past

With the debugger everyone on the team could,

  • grab the exact xml being tested
  • use it to step through the business logic and rules to see what was happening

Testing & Automation

The test driven approach of FAST 8x and the Test Case Manager are the perfect complement to the debugger.  They both offer tremendous value, FAST 8x automation drives testing efficiency while the Test case manager increases effectiveness.

  • FAST 8x: the test driven approach automatically test APIs, eliminating the need for regression testing the application
  • Test Case Manager: tool for actuaries and the product team to test a variety of permutations using the calc spreadsheet independent of the application
  •  Calc spreadsheet: designed for actuaries, by actuaries, an easy to use UI allows the team to create  their own scenarios  and eliminates their reliance on a technical resource to update code

As we used these tools, it was really cool to watch the traditional software development lines between tester and developer disappear!

Benefits

The benefits of using these tools to debug and test business transactions and calculations were numerous.

1)      Transparency of business processes to the business owner with a user-friendly spreadsheet which is easily traversed

  • This transparency promotes a feeling of trust between the vendor and the client

2)      Business knowledge transfer was a by-product of the transparency of the business rules

  • The tool facilitated business process discussions with the client

3)      Continuous testing of the business logic and rules

  • Resulted in a condensed ‘testing phase’ and quicker deployment

4)      Perpetual vendor reliance was eliminated

  • The client quickly internalized how they could maintain these business rules on their own

5)       Small steps and simple calculations demystify complex calculations

  • Logic is not buried deep in layers of code and errors can be fixed by dragging and dropping the appropriate orchestration step into the right place

As a Business Analyst, the tools were cool and fun to use.  They created a great sense of accomplishment across the team – issues could be quickly pinpointed and then corrected through configuration and I could fix bugs on my own!  And as for the Actuaries being able to create and test their own calculations, let’s just say they got as excited as actuaries get…

After the success we achieved, I can’t imagine a project without it!!!

 

Sharon Amos, Business Analyst

FAST

 

4 Ways to Empower a Customer

Wednesday, September 14th, 2011

Out-of-the-box software systems from big-name software vendors are always a big contender for CIOs and other business decision-makers when selecting the best systems to power their business. As a customer, choosing what systems to best manage your business can come with unexpected repercussions. Software vendors often develop their products to “capture” their customers, tying them to the system by isolating and creating dependencies on their product and services. These tactics can result in limitations that confine and even cripple the growth of their business.

A great software product shouldn’t have to encapsulate and limit their users just to keep them “hooked in”; the product itself should be useful and attractive enough for users to want to continue using the program. So what kinds of “capturing” tactics should you look out for, and what can you do to have greater control over the software solutions you choose to power your business?

1. Request to know what kinds of integration and compatibility options the system provides. – Software vendors often take an all-or-nothing approach that often limits integration with other software products and services. This lack of integration results in manual conversion of data between software that hinders the efficiency and capacity of your business.  The purchaser should be able to use non-competitive 3rd parties where applicable. If the system does not allow for integration and compatibility for the products you’re already using or hoping to use to power your business, evaluating whether that trade-off is worth it is a must.

2. Request for training, documentation, and configuration. - Oftentimes, software vendors will either develop a “black box” application without access to the code of the program, or give you a product so complicated that it requires a vendor expert. Without access to the inner workings of the software product, the customer is completely dependent on the vendor for how the system operates (and in turn, how your business is run).  By requesting training, configuration tutorials and system documentation, you can ensure you’re getting the most control over the product as you can.

3.  Request to know how the products work together and to access training materials on configuring them yourself. – Compatible software products from the same vendor provide additional software functionality to your system, but they can also leave the customer clueless as to how to use the products together if there is no knowledge or training transitioned between them. If you choose to use the original vendor across multiple products (which you may be forced to), it’s important to understand how you can use these compatibility options to get the most out of your business processing system.

4. Maintain as much direct contact with the vendor as possible, and make use of any feedback service the vendor offers. Large, out-of-the-box software products from major software vendors rarely provide all of the functionality that you need to run your business exactly the way you want (despite the large price tag you dished out for a name brand product). Often times, the packaged system will come with plenty of bells and whistles, but falls short when it comes down to the real tools you need to build your business. Yet these large software vendors rarely allow the customers to direct the development of the products they buy, limiting the opportunities for feedback, compromise, and criticism of what they use (and put up with).  There are no guarantees that large-scale vendors will pay any heed to feedback, but it is the customer’s right to have an active voice wherever possible.

Darwinism of Innovation: The Evolution of Automation and the Software Development Industry

Wednesday, August 24th, 2011

In 50 years, will we still have armies of programmers coding business systems for companies? Will it still be necessary?

In the history of industrial growth, the replacement of tedious production processes with automation is essential to the progression of invention and ingenuity. But we seem to have forgotten this key to innovation in software development. We are so caught up in creating new processes, new languages, new “big system” solutions to address the same old problems of tedious code-writing in traditional software development that we forget the true purpose of this industry in the first place – to replace tedium and inefficiencies of the paper-pushing era. We seem to have it stuck in our heads that software development is too complicated to automate.

The key to replacing expensive, labor-intensive and entrenched systems is not by engaging in expensive, labor-intensive big-bang projects, but in increasing productivity, flexibility, and function-leveraging. This is industrial Darwinism at its finest: instead of replacing one inefficient system with another, find a solution that eradicates the costliest, labor-intensive processes altogether. In short, creating dynamic software that will automate technical coding so that the user can focus on the functionality and conceptual use of the software is the true innovative key to the future of the software development industry.

Here at FAST, we have done just that. As a part of a four-person newly hired team of university graduates, we were assigned the daunting task of creating a fully functional application with FAST 8x in just four days, inclusive of training, configuration, building, and presentation. The exercise focused on showcasing how software development automation can achieve what normally would take a team of developers, analysts, and engineers months of code-writing to accomplish. None of us had any previous experience with software development; only one of us had any true technical knowledge of software design, and we were granted access to one engineer to assist us in the configuration process. By the end of the week, we had presented a production ready SOA based set of components that included 40+ database tables, 4 components, full user interface w/20+ business processes, 100+ web services, integration into other applications, 5,000+ test scripts (that are on a nightly regression cycle), technical documentation, and a how-to guide.

This proof-of-concept exercise is a reflection of what we’ve been doing for months on a larger scale with our life insurance client. In less than nine months, we were able to build an entire suite of legacy-replacing components which included 800 database tables, 35 components, full user interface w/25+ business processes, 700+ web services, integration into other applications, 13,000+ test scripts, technical documentation, and a how-to guide. This legacy system modernization process, which would have normally taken approximately three to five years to develop traditionally, is a remarkable step towards the breakthrough technology necessary to take software development to the next level.