Servoy 8 Alpha

2014_Servoy8_BANNER-01

Today we’re proud to announce the immediate availability of Servoy 8 alpha. Here’s the link to download it while you finish reading this post:
servoy.com/download

Servoy 8 is our biggest release since Servoy 1 was built. The new ng-client (next generation client) with a strong focus on deliver great UX enables software developers to deliver great applications using our established RAD capabilities.

When we started creating the roadmap after Servoy 7 was released we realized we needed to completely rethink our web client based on the new realities of today. While our web client technology was great we felt it was going to be outdated in a few years so we decided to start with a clean sheet of paper. This exercise helps to think out of the box and avoids trying to bolt or hack your existing technology stack. We tried to come up with a minimum list of capabilities the technology should have:
– responsive design
– great UX on smartphone, tablet and desktop
– cross browser
– retains RAD capabilities
– increased responsiveness
– secure

When we started with web client we built it on Apache Wicket, in it’s day the best framework to create powerful web applications. However as frameworks grow older and bolt on more and more features we needed something radically different. After extensive research we found that Angular was going to be the best fit. Read more about the background in the post from Jan Blok.

Servoy 8 is unique: it’s the only RAD platform to deliver great HTML5 apps quickly and without headaches. Servoy 8 will will make your users happy, and of course the developers as well!

Get started with Servoy 8 with this introduction overview: Servoy 8 introduction video and demo

Servoy loves progress

loveprogress-2

Tomorrow is the EMEA PUG conference in Germany. We were planning to go as we love progress and we happen to offer a great UX platform to modernize existing OpenEdge applications. We sponsored last year’s conferences in both Europe and the USA and were received warmly by the Progress community. We enjoyed it very much and received feedback from the attendees and Board that Servoy was received well as a new player in the PUG arena.

Unfortunately when we subscribed to sponsor this year’s event, we did not receive a response. After a discussion with the board of the EMEA PUG, we learned that Progress Software viewed Servoy as a threat and would retract their sponsorship if they allowed Servoy to sponsor as well. Though disappointing, we fully understand the position EMEA PUG was facing.

To learn more of Progress Software’s decision, we scheduled an appointment at Progress Software’s EMEA headquarters, where we were cordially received by Damian Coyle, Monique Bruins and a pre-sales engineer of Progress Europe.

They shared that Progress Software sees us as competition. When we explained that we believe the opposite, that Servoy extends the lifecycle of a Progress application by allowing ISVs to deliver modern HTML5 front-ends with a superior User Experience, they eventually agreed verbally that Servoy does not compete with Progress. Also, Damian Coyle was going to discuss the matter with Mr. Armstrong, the EMEA director. Unfortunately, Mr. Armstrong still saw Servoy as competition – he does not want Servoy to sponsor the conference AND, in fact, does not want any Servoy employee attending the conference. We regret this but respect the decision of the EMEA PUG board as Progress Software is a key sponsor for their event.

The facts are on our side: more and more companies based on Progress Software’s OpenEdge technology are using Servoy to deliver great User Experiences in record time. We will be hosting a webinar soon where a couple of Progress ISVs will demonstrate their success.

We are confident the EMEA PUG conference is going to be a great conference and we would have loved to join but we fully understand the decision taken by the board of the PUG. We wish everybody a fantastic conference!

At Servoy we love progress and if you are interested in progressing your application to the next level by adding a great UX and UI on top of your existing OpenEdge application contact us to learn more!

note: OpenEdge and Progress Software are registered trademarks of Progress Software. When I use progress in this post I refer to the English word progress and not the software company.

The perfect storm

Looking back we found ourselves in the perfect storm over the last year developing Servoy v8. As our focus for Servoy v8 was primarily on user experience, we learned that great UX in modern web applications relies on responsive design.

Responsive design means the user interface adapts to the device dimensions. Such a UI will work across mobile and desktop. When approached correctly, this means a developer can build an application UI only once, to be usable for a range of devices and screen sizes.

But to combine responsive design with Rapid Application Development, is no small endeavor. There are quite some html page tools which facilitates responsive design. And while most of these tools deliver a page which is responsive, a page is not the same as an application having distinct, controllable parts.

One of the upcoming web frameworks, AngularJS turned out a perfect match with responsive design. It allows for pages to being modularized into parts called Web Components. And within a rapid application environment, components become easy to manipulate; these are extremely similar to the elements that we’ve already had for years.

Another feature AngularJS brings is two-way binding of JavaScript objects to page elements, which means for example, the content of a field is copied into a object of choice and back.

At the same time, a library called Bootstrap released its third version with makes responsive design really easy to setup. It divides every UI into a layout grid called 12-grid. Grid cells can be filled with any content. It makes a lot of sense to combine this responsive design with Web Components. The result is that everything, except for the grid definition and static HTML, is a Web Component.

Finally, to have optimal communication between browser and server, we leveraged another piece of html5 technology, Web Sockets.
Not only does this allow for better communication from browser to server, but also allows the server to actually talk to a webcomponent. We extended the two-way binding from AngularJS into three-way binding. This enables communication between WebComponents running in the browser and records/foundsets at the server.

As a result this brings extreme flexibility in several ways:

  • Any UX which can be expressed in HTML can now be used. (by making it a WebComponent)
  • Any helper/grid layout system like bootstrap can be utilized in order to get the best responsive design
  • Such a layout grid can be filled with WebComponents using WYSIWYG design.
    In short, an enterprise solution can now have the UX, which the modern user has come to expect, delivered in a rapid application environment.

For the first time in Servoy’s history, we succeeded to make Servoy’s codebase smaller, since all standard form elements are now delivered as WebComponents.
In fact, any WebComponents are now considered external to Servoy, which means you can actually replace or adapt the default elements shipping with Servoy like a field or button.

All our ideas for improving the UX capabilities of Servoy came together with the possibility to use maturing web technologies – a perfect storm.

The new flexibility and a ton of possibilities does put a huge smile on our faces, we are pretty sure it will work the same for you.

Jan Blok
CTO
Servoy

ServoyWorld 2014

IMGP0553

ServoyWorld 2014, our ninth conference just finished and wow! What a great event again. Our biggest announcement was Servoy 8, arguably our biggest release since the first version of Servoy. Servoy 8 takes our web technology into the next generation and makes it seamless to create powerful HTML5 applications.

Our next generation web client is called ng client and builds on AngularJS and Bootstrap. This combined with our +12 years of experience of delivering RAD (Rapid Application Development) tools creates the most advanced html5 platform on the planet. To learn more about Servoy 8 visit the main Servoy 8 page.

With over 30 sessions and trainings ServoyWorld 2014 was a great place to learn more about Servoy and share knowledge with other developers. Our engineers enjoyed getting feedback from customers directly in the sit down sessions during and between conference sessions.

If you couldn’t attend the conference and want to learn more about Servoy 8 make sure to attend the launch webinar. If you are interested in downloading the ServoyWorld presentation have a look in this forum thread for the slides.

I look forward to meeting you at ServoyWorld 2015!

IMGP0715

Automated UI Testing

Automated testing is a must in order to build a maintainable codebase and staying agile while writing code. Automated testing is a core procedure of a modern software factory where continuous builds and continuous integrations are widely used practices; testing your software manually every time a new build is prepared requires a lot of effort. Running automated tests will help developers to spot errors in the new build and correct them immediately. During this webinar we will show how automate testing for the Web Client by using Selenium. The automated UI script generated by Selenium will reproduce the user interactions with the browser and will validate the UI state.

How Can Customized Software Development be Successful?

I won’t deny that a customized software solution designed from scratch will cost you more money than your basic off-the-shelf software solution if the performance of the two is going to be identical. Having said that, software projects can end up costing you a bundle, even with standard solutions if the software needs to be optimized and tweaked and the user interface needs to be changed in order to meet the client’s requirements. Changes made to off-the-shelf software solutions tend to be more expensive than similar adjustments to customized solutions.
It’s also very common for the costs involved in implementing standard software applications to get out of hand, where a solution that appeared solid and competitively priced at the outset, ultimately ends up costing you a small fortune.

Why Customized Software?

Many standard solutions include additional, customized features that have been specifically added for an individual client. These add-ons can end up causing major aggravation if they are not compatible with the basic software. This is related, not only to the actual software technology used, but also, to a large extent, to the strategy, and processes and procedures of the manufacturer. Software companies with an international focus tend to have a highly complex organizational structure, including a strict division of duties.

The Developer’s Tools

The software development environment provides developers with the elements they need in order to be able do their job, including a programming editor to simplify the coding process, and a compiler – a program that takes source code and translates it into more basic language so as to create an executable program. The development environment typically also defines the programming language and, in some cases, the database. It also performs a large number of other duties, including version control. An essential part of the programming process is the documentation used. What are the ideas underlying the code? Here, too, users have access to powerful functionality. In some cases, specific development methods – such as Scrum – are supported or even required. This may lead to a situation where the people who locally implemented and developed the manufacturer’s basic development strategy are none the wiser and are caught by surprise when a new release comes out whose underlying technology may differ radically from the previous version of the software. Along with their client, they are then faced with the reality that the software add-ons no longer work in the new release and may have to be readjusted at great cost and effort – and in some cases even reprogrammed altogether. What you believed to be a one-off investment ends up weighing down your bottom line.

Tools Can be Customized Too

In addition to the actual development work, modern software development environments offer extensive libraries of functional software building blocks, where differences in basic functions – recognizable to users – are defined. Let me give you a simple example: if you open a file on a PC, the operating elements can look very different depending on the software used. They might be indicated with yellow folder icons, plus signs, or small triangles. Understandably, software developers don’t want to redefine the user interface for opening files each time they develop a new application. The development environment should enable them to define and store these parameters. Gartenmann Software AG requires that these seemingly minor details be managed identically on all the various devices – PCs, tablets, and smartphones – and that they look the same to users on each device. Like in the example above, this means that an additional layer is added to the development environment that transforms the manufacturer’s specific development strategy.

Frameworks Ensure Consistency

Today’s clients simply want to be able to launch a software application and use it anywhere, anytime and on any platform. Both the software and the user interface should always look the same, regardless of the basic technology (including the hardware and operating system) they’re using to access the application. In order to achieve this, special frameworks are used that are designed specifically for this purpose, including SERVOY.
Our new solutions are based on SERVOY technology and enhanced by an “intermediate layer,” if you will, which helps us ensure an identical look and identical use for the software.

The additional framework we developed is based on Java/JavaScript technology and enables us to efficiently offer our clients modules and software applications with identical graphical user interfaces across all platforms and devices. Based on what we refer to as our “core” – a central solution containing all the required basic software modules and functionalities – we can create client-specific, customized applications at a reasonable cost, without needing to reinvent the wheel each time. The main benefit is that we can continue to issue new releases without any problem, as the customized elements are developed outside the main “core.”

The Core Is Already in Place

Clients want to be able to use software anywhere, anytime and on any platform. To accommodate them, a specially designed framework is required – like the djooze.crm solution developed by Gartenmann AG.

Depending on clients’ needs and requirements, we can use the available core modules to cover 30 to 70% of the project. We can use these components right off the bat to develop a standard software solution. You know exactly how much it’s going to cost, and you can be secure in the knowledge that there’ll be no budget changes along the way. The focus in terms of project security is therefore on the customized part of the software.
How do we ensure that the solution will do the job at the agreed cost?

One essential condition for success is that the provider and the user(s) work closely together, and it is precisely this aspect that tends to be overlooked a lot of the time.

Can We Control the Success of a Project?
Clients are all too often driven by fear of failure and underlying distrust in the software development process, preventing them from achieving the desired result. They typically want to attempt to define the software parameters themselves by presenting a very narrow list of specifications and requirements to the developers and having it all laid down in a contract. This means that, while the features, price, and penalties are all pre-defined, no actual workable solution is available yet. More often than not, the underlying problem – that is, the actual solution part of the software – is not even described in a comprehensible (or even measurable) way.
The client actually sees themself as the developer in the project, which has at least two fundamental disadvantages:

  • It stifles any kind of creativity in the software development process, with the developer’s role being reduced to that of a mere operative, whose own input is only needed to a limited extent. However, the intellectual and creative process involved in software development can actually lead to elegant solutions, which could end up reducing rather than increasing cost.

  • It prevents developers from responding to external changes. Good business software is not a static product – its technology and functionality continues to evolve, and it must be adapted to clients’ needs. Particularly during long-term projects, various factors in the organizational environment tend to change, and these changes must be incorporated into the software. For example, changes in a company’s structure may also change the software requirements, or, alternatively, the focus of the software might change following a change of staff.
    Clients must grant developers a certain amount of freedom so as to be able to create genuinely effective solutions. To avoid any complaints that this way of working involves too much uncertainty, trust between the client and the developer is essential. Is a series of reliable references available? Are the methods used solid and effective?

Collaboration Determines Success

There’s always a chance of differences of opinion arising between developers and clients, particularly when it comes to project methods. At Gartenmann, we know from our many years of experience that there’s really no need for conflict if you do things right. We use Scrum and Agile Software Development to achieve our purpose in a series of small steps. However, tools and consistent procedures are most important when working closely with clients throughout the long development period. We have seen a lot of changes in this field in recent years. Gartenmann currently uses Cloud Blogs and Wikis to describe all the various facets of the project. In addition to ensuring transparency, this also includes the client in the development process. This is clearly illustrated by the following example: If you want to benefit from customized software solutions, you need to become involved in the process yourself. Your own resources are indispensable when it comes to defining the processes and requirements and continuously testing and challenging them, and you must make yourself available to the developer for discussion.
In order to gain an edge over the competition, it’s important to know that customized software is not bought and sold like so many crates of beer, and even airtight contracts won’t prove to be of much use in the end.
The increase in the supply of customized software solutions has also increased the number of “soft” factors involved, which must all be considered as well. All of this could definitely make the unbiased opinion of an independent consultant worth your while.

Author:

Continuous Build integration using Jenkins

As more and more development projects are moving towards agile, development iterations are getting shorter. This usually means that more manual work is required to deliver (unit tested) builds for end user testing. The existence of a well-defined software factory helps to automatically execute the required steps, without additional effort from the development team.

This webinar focusses on the process to automatically deliver such builds, starting from codebase commits by the development team. And where Servoy has adopted Jenkins to play a key role within this architecture.