Keeping with the recent theme about freedoms I want do discuss testing with 3rd parties, we can even add different departments within an organization as well. In the past 20 years, more and more applications and back end systems have required to be more integrated than ever. Most of this is due to the underlying business logic of identifying value and whether it is better to buy (or subscribe to service) or to build.
Before Y2K (I just twitched as I wrote that), most organizations built what they needed to succeed. Now time to market was relatively long, and Agile was not as widespread as it is today, so it made sense to build. Also, different department involvement is rare. Then the internet came into play, and things changed. People were getting access to stuff; they never thought possible and wanted more. Exponentially the demand for information grew.
Along with that, they need to do transactions online as well instead of going to a store. It snowballed to something quite amazing because it forced organizations to adjust. Also, they become innovated to catch a more significant piece of the market and improve client satisfaction.
So here is where things started to get tricky, to build what was needed would take a lot of work and speed to market is everything. What began to happen was that companies started to form to only focus on critical components to sell to larger organizations. What this did was make the “Buy vs Build” decision making a pivotal process to help improve value. Why spend time building something when somebody else already did, and we can get it at a fraction of the costs? Also, we don’t have to support it. Sometimes it makes sense to do that.
The best example I can come up with is the banking industry and the use of the internet. Online banking has become such a big part of most peoples lives they take it for granted the amount of work that went into a site that shows your account balance and does almost all transactions you can do at an actual branch and you can do it sitting at the dining room table with a nice cup of coffee in hand. There are so many departments and divisions that need to work together; it is fantastic when it all flows together.
Now I do agree that there is a need to ensure that integration between systems functions well together; it is a must. The question is, do we need to wait for someone to exercise our code? My answer is no, and I am sure that most of you that do any SOA or transaction testing would agree.
For me, as long as the Format, Content, and Layout are partial, or wholly defined, teams can complete their components before integration starts. Why not? Does the system know where the information is coming? No, it is not like asking someone to hand you something from the other end of a table. The code expects to see something in a specific location and in something that is coded to understand and process. Here is an example:
Here is a very high-level view of sending information between systems. Now I know most people I talk with understand the simulation of data and posting transactions. Yet, this concept is still foreign to others, even with much literature out there about it. In the end, it is a straightforward process to exercise all the code you can without the wait.
Now teams are in more control of the data that comes and goes. It is hard to do and not very fun to get started. Once you do, the quality of what comes out should improve. Development can start doing some quick integration tests to make sure nothing goes awry. If you look at it from a certification perspective where sometimes you have to pull use specific data to run through the system, now you can.
Taking control of what you do as a team to get code out is essential. Relying on others outside of your control could cause delays or even frustration if issues arise, and now it turns into a blaming session as to who’s fault it is. Stuff like that will put the progress of the product to a complete stop.
I am sure that this blog entry is what some of you and your teams are doing. I hope that for those that don’t can use this to foster conversations here or other areas to help them get to where they need to go.
Listen to my segments and others on SPaMCast http://spamcast.libsyn.com/