Are there downsides associated with using a graphical development environment for integration development?

You can count on me to support efforts to make developers lives more productive and creative. Technology and tools have advanced over the years, and todays developers can create some pretty amazing technical solutions. But as should be expected, some wrong turns will be taken on the road towards continued innovation. I believe that for integration developers, a wrong turn, or at least a bad detour is being taken with overly aggressive graphical tools. Major vendors like Oracle and IBM, along with smaller players like MuleSoft are arguably provide tools that I think prove my point.

Now please keep in mind that I am presenting my case with integration in mind. I recognize that the value of graphical development environments can vary by the type of development being done. For example, user interface design is more effective using this method. But for integration development, there can be several negatives associated with graphical development. The following is a summary of the points made in the video accessible using the URL shown at the top of this blog:

  • Graphical environments can limit creativity and functionality with arguably makes users of such environments configurators and not developers.
  • Graphical environments can quickly get difficult to navigate as diagrams grow in size. Think vertical and horizontal scrolling coupled with finding the right level of zoom.
  • Being able to draw something is no guarantee of functionality. You can use graphical development environments to create diagrams of solutions that just don’t work.
  • Graphical environments can be just a facade over a proprietary implementation. Why not use a standard like Camel to define how an integration is implemented? Standards don’t have to just be for integration endpoints.
  • Property editors in graphical environments are fancy ways for you to input values for properties that you must determine on your own. Data entry for configurators, but you still need to know what values to provide! For example, if you are connecting to Google, you need to know how to obtain and use OAuth configuration parameters.
  • Arguably, graphical development environments are only a small overall part of your integration solution environment. Load tests are typically run using specific tools outside the development environment. Server health and performance monitoring is commonly run outside the development environment. Configuration of production and other environments is commonly done outside of the development environment.

I intend to publish more videos on this subject in 2015. Video has the advantage of allowing me to show examples of the critique I have rather than try to describe it in words. I should also mention that the upcoming videos will cover one point at a time allowing me to keep the video duration to a minimum. Your time is valuable and I am not going to be winning any awards for video production anytime soon!

2 Comments

  1. souciance rashti

    Hello,

    In aspects I do agree that working with graphical mapper can over time make the developer less creative and not viable to finding solutions outside of the box.

    However, having worked with IBM message broker and Integration Bus, I have to say their biggest strength is their parsers for different message formats. The fact that messages can be parsed and individual fields can be accessed dynamically either graphically or via ESQL are its strengths. This is something I have not encountered in other products which require POJO mapping or something similar. Off course there is vendor locking and cost but from a purely technology perspective its quit a cool tool to have in your toolbox.

  2. paul

    Yes there’s always a downside. People can lose touch with what’s underneath and become too reliant on widget dropping.

    There’s and upside too. Use each tool to get the best it offers and mix and match to get the overall best

Leave a Reply

Your email address will not be published. Required fields are marked *