When starting a new software project an organization needs to decide what approach best fits its objectives. Common approaches are traditional custom software development with a coded language, business process management (BPM)-based development and software as a service (SaaS)-based development.
Custom software development is the process of creating software in a coded language for some specific purpose for a specific organization. BPM-based development is a set of techniques and tools for iterative development and improvement of the processes involved in running a business. SaaS-based development is a development approach where remote and local services are combined, orchestrated and invoked via the Web to create a new application.
Each approach has its own unique characteristics, strengths and drawbacks. All approaches typically require a team of developers, analysts and testers to achieve. BPM-based and SaaS-based development aim to address common concerns with traditional custom software development, mainly:
- maximize re-use of existing assets
- shorten project life
- provide better business line-of-sight, typically, through visual development paradigms yielding lower total cost of ownership and better business agility of the final solution
Warewolf is a software development solution that provides the best of all three: Custom, BPM-based and SaaS-based development in a single quick to learn, easy to use tool. We will examine the SaaS-based and BPM-based traits of Warewolf that make it an excellent choice for your next software development project.
A very short history of software development
From the onset of software development there has been a drive to make creating applications quicker and easier. At first it was copy-and-paste, then sub-routines, libraries, and the integrated development environment (IDE). The advent of the IDE simplified and streamlined the process of design, specifications gathering, coding, building, testing, and deployment of the software solution. Yet with each change to the software it needed to go through the entire process over and over again; a time consuming exercise.
The extensive nature of traditional software development lead to new thinking, where specific software routines could be left in place and composed into a new software solution. Instead of deploying a new software package a new model was deployed. This led to a far more flexible software development technique and has become a recognized industry standard. It also helped bridge the gap between software development and business through the use of easier to understand models.
BPM in brief
The focus of BPM is on how people within an organization work together with the aid of software tools to create efficient and flexible business processes that can be automated. IBM defines BPM as “a discipline that leverages software and services to provide total visibility into your organization. Discover, document, automate, and continuously improve business processes to increase efficiency and reduce costs.”
SaaS in brief
SaaS is first and foremost a software delivery model. It is a model in which services are hosted by service providers for consumption via the Web. Most SaaS applications are accessible via a web browser. It can be compared to the water service your local municipality provides to you at home. You turn on a tap and you instantly get the service you requested (i.e. running water) where and when you want it.
Warewolf is a unique technology in that it blends Custom, BPM and SaaS development techniques into a single development platform. Warewolf uses a visual paradigm that both technical and business resources can understand and communicate by, plus achieving up to 400% faster delivery on software projects.
BPM-based development offers a high level of agility to a business. Its focus is on composing rather than coding. It also has lower maintenance cost thanks to its visual process modelling; this means changes can be made, verified and deployed much quicker than coded development. Warewolf achieves BPM-based development through the use of a visual service designer hosted in the Warewolf Studio. The designer provides a toolbox of prebuilt sub-routines that can be used by dragging it on and configuring it. These processes, or services as they are known in Warewolf, can be saved and reused just like subroutines in custom software development, only with no coding required.
Services are saved in the Studio and can be reused by dragging it onto the design surface of another service. Beyond visual design and re-use, Warewolf allows a user to easily model the data flow between services.
Extending BPM-based development with visual debugging
Blending coded and BPM-based development, Warewolf includes a visual debugging feature, this makes it possible to trace the path a Service took while executing. The debug process is similar to coded development in that one can inspect each step. Unlike coded development, the user does not need to know how to interact with an IDE to step through. This means both technical and non-technical business people can fine-tune services.
SaaS-based development supports best-of-breed development. Its focus is on maximizing re-use by allowing easy consumption and composition of services. Warewolf builds on the SaaS-based development concept and takes it a step further. Any Service created in Warewolf is instantly a Web service that can be consumed in any development method that supports Web services. Warewolf allows for input data sent to a Web service to be in a variety of formats, GET parameter string or XML. Warewolf also allows for return data from the service in either XML or JSON.
Warewolf facilitates seamless consumption and composition of external services with its Web service wizards. Like services, once created, a new Web service will appear in the Studio and can be placed into a service like tooling or other services allowing the user to pass data in and out. This makes creating new SaaS-based software quick, easy and seamless.
Extending SaaS-based development with seamless re-use
Beyond allowing local Service re-use and exposing services, Warewolf allows the user to connect to any remote Warewolf server (with valid credentials). Once connected a user may drag services from that server onto their design surface; thus providing built-in SaaS support without reading and understanding an API as is so typical when using Web services in coded development. As with SaaS, the remote Service will be executed on demand against the remote server and data is seamlessly transported between the local and remote execution.
How custom software development and Warewolf work together
Building on SaaS-based development, Warewolf also provides the ability to expose existing assets as services for use on the design surface. Like the Web service wizard, a user can expose T-SQL in a Database and C# assemblies as services. Warewolf provides the ability to expose almost any existing legacy solution as a new SaaS solution. Or to quickly re-use existing assets in a new software solution created with Warewolf, further maximizing re-use and decreasing development time.
Warewolf solution deployment
Once a solution is developed the next concern is deployment: getting the developed solution to the correct servers. Warewolf simplifies this process by providing an integrated deployment mechanism. It allows for a seamless movement of development artefacts from one server to another with just a few clicks.
How Warewolf brings it all together
Warewolf is a unique tool; it provides a clever approach to development allowing for a blended solution delivery by leveraging a variety of techniques. It allows for BPM-based development through its service design surface, and quick SaaS-based development through its wizard driven service integration layer.
In a past benchmark of Warewolf against coded development, it was shown that Warewolf improved development productivity by over 400%¹. The benchmark outlined a process in which a file was to be picked up from an FTP server, scrubbed according to 45 data rules and imported into a MS SQL Database, with email notifications at key points in the process. Instead of days to complete, with Warewolf it only took hours!
When your next software development project requires BPM, SaaS or custom development, deliver it on time and within budget by using a development tool that promotes the use of best-of-breed techniques to increase business agility and developer productivity.
¹ This does not include possible future gains related to faster development time for enhancements nor does it consider the benefit of reduced documentation.