OutSystems_ConviteNextStep2012If you haven't yet heard about NextStep, I want to share a bit more info about what we have planned for 2012! This year the event will take place on May 10 and 11 and we're expecting over 400 participants in Lisbon during next week, ready to learn, network and have some fun. To host the event we picked a new, beautiful and cool location - the Lisbon Congress Center in Parque das Nações, right on the waterfront.

Our main theme for NextStep 2012 is "Simplicity"! This will be our motto throughout the 2 days of the event. Come and learn about streamlining complex IT processes while delivering highly usable 'great' applications. Many times simplicity is undervalued, underestimated, or simply ignored and the result is a loss of efficiency, increased costs, and damaged reputation. Achieving simplicity is a lofty challenge that expands beyond IT to the entire business.

Our keynote speaker, Dave Thomas, will also explore the world of Information Technology with a look to the future and highlight the pitfalls of complexity along the journey. Dave is an industry icon, and I'm sure you'll love his presentation.

To finish the first day, Paulo Rosado will go on stage with Mike Jones, and together they'll launch the much anticipated and awesome new version of OutSystems' flagship product, the Agile Platform 7.0!

For day two, we have 3 power tracks filled with great presentations. Two of the tracks are devoted to our growing technical community, and are dedicated to the Agile Platform.

  1. Power to the 'ility', a track dedicated to maintainability, scalability and all things to do with a sound design and architecture.
  2. Power to the Platform, a track focused on getting the most out of the Agile Platform, from cutting edge tips to sessions on simplifying devops.

The third track, Power to the Business is dedicated to the close relationship between IT and the business. This is a don't miss track if you want to learn how to deal with the latest IT trends, understand the 10 agile practices that are key for success, and attend inspirational sessions on mobile and usability!

This year we'll close the event with a new and fun session entitled... you guessed! - Power to Simplicity! In this session we'll make sure you don't miss anything from each of the tracks, we'll recognize key community members, and we'll also reward a lucky participant with a special prize. Be sure not to miss it!

Check the full agenda and register online at the NextStep website. Be sure to register quickly, we're almost out of seats!

I'll see you there!
For the last couple of months, it seemed a few of our core applications weren't behaving as well as they should... Some applications were running a bit slow, and we experienced connectivity problems related to our ISP.

This was serious because these are core systems running on top of the Agile Platform, and include our website, our community, our partner network, our product management tool, and a host of other internal applications.

Since responsiveness and availability are two fundamental traits of a great app, we had to do something about it. We decided to move our infrastructure to the cloud, in particular to Amazon EC2. And because these were core apps, we had to do it with minimum downtime and guaranteeing all the needed accesses.

The old infrastructure
The infrastructure we wanted to move to Amazon was made up of two separate OutSystems production environments -- we decided not to move the development and QA environments. These environments and their applications were built using a Service Oriented Architecture to communicate with each other, and to integrate with third-party apps like Pardot and Salesforce.

Another part of the challenge was that these systems are used by internal OutSystems' applications, deployed in different infrastructures -- including business-critical integrations with the R&D process. This raised some security concerns and some challenges on how to keep supporting these integrations with minimal changes to the architecture.

cloud-application-migration.png
The new setup
Since the machines about to be replaced were near retirement, and because in Amazon we can add machines as needed, we decreased the number of servers from 5 front-ends to 3. We have an additional machine with SQL Server and, at the time of writing, all machines are m1.large (2CPU, 5 Amazon ECU, 7.5GB RAM). To distribute load between the Amazon front-ends, we are using Amazon Load Balancer.

Preparing for the big move
In order to perform the move, we used an approach similar to the hot-standby approach suggested to our Agile Platform customers. The idea is to setup an infrastructure on the cloud, and use the disaster recovery option to move control to this new infrastructure. For this, we had to:

  1. Make sure all users were accessing the in-house systems from the outside network, just to make sure that everything that was needed was in fact available. This was good to identify certain content that needed to be accessed via HTTPS, for security reasons;
  2. We had to set up a database mirror for the SQL Server database. This was a big step, considering we moved 120Gb to Amazon -- a 2 day transfer! And since our internal infrastructure kept working, by the time it was done we had an extra gigabyte to move. Also, being two remote installations of SQL Server, we had to setup a secure mirror with certificate authentication -- which has its own tricks as well;
  3. We then installed the front-end servers in the cloud, and set them up to connected to the in-house database. This was easy, since OutSystems already provides Amazon images. The trickier bit was to ensure a secure connection with our internal systems, something we achieved using OpenVPN;
  4. Finally, we tested to make sure everything was working. We used some automated test scripts, and took the chance to identify dependencies with internal systems. To fix these dependency issues, we had to move some components back to the internal datacenter, and connect everything using webservices on top of HTTPS. Fortunately, this is really easy to do with the Agile Platform as it makes building webservices and delivering a service oriented architecture easy and fast! The only thing we couldn't test was performance... after all, the database was still in our datacenter, 3 thousand miles from the front-ends.

Pull the switch!
With all the preparation done, it was time to go full cloud. Here's what we did:

  1. We started by turning off the in-house systems. No problem here, just had to put an unavailable page and stop the OutSystems' Agile Platform and IIS.
  2. Next, we brought the cloud database server up. We were a bit worried with the time it would take to resync our SQL Server mirror after the rotation, but it only took about a minute. It took less than 5 minutes to have everything ready and to configure.
  3. After that, we reconfigured the Agile Platform to use the cloud database. No problems there, we just had to launch the configuration tool, modify the database settings, and restart the platform.
  4. Finally, we had to change the DNS servers to point to the new infrastructure location.

The results
In the end, we definitely achieved our goal: Our core applications are running faster, and in time we'll be able to measure how connectivity improved since moving to the cloud.

It's also amazing how fast we were able to make the move. The procedure took 4 hours, but it could've easily taken 30 minutes if it wasn't for DNS. DNS ended up being the big bottleneck on the whole process, due to the time it takes to propagate. This is something we'll need to do differently, if we repeat this operation in the future.

In the end, the work was made a lot simpler thanks to the Agile Platform. Not only because it's totally prepared for these redundancy server scenarios, but also because it's so easy to change configurations and have everything running with the new settings in no-time.

Maybe even more important, the Agile Platform made it fast to split the components we wanted to keep in-house, and glue everything together with an SOA architecture. Being able to be extremely fast really opens a world of possibilities!

If you want to learn more about the cloud and how the Agile Platform can help you, click here to visit our cloud page.

Mobile is one of the big trends for 2012, and with the year just starting, it's a great time to make some predictions about what will happen in the upcoming months. So here they are, the 6 major mobile trends for 2012:
  1. Mobile Web will be the dominant architecture. Native mobile apps may be sexy, but their cost and the lack of support for multiple devices make them a no-go for the  enterprise. According to Gartner, by 2014, less than 15% of enterprises will develop B2E native apps.
  2. HTML5 will keep evolving in 2012. More access to the device's features and sensors are sure to appear in all the modern browsers, be it on the desktop, tablets or smartphones. This will close the gap between native and browser based applications, making an even stronger case for mobile web.
  3. CxOs will want dashboards on their tablets. Having the data you need, together with strong business intelligence at your fingertips, is a dream value proposition for CxOs. Having the access in their hands at all times is golden. Reports and dashboards on the tablet will soon become the norm in every meeting.
  4. The Enterprise AppStore. Since mobile web applications aren't available on the appstore, enterprises will need to build their own appstores. These are simple applications where users can access specific mobile web applications depending on their role and permissions.
  5. Geolocation everywhere. One of the game changers of mobile is that that we now carry a lot of sensors with us. And location is a very interesting bit of information that is currently underused. There are already examples of reminders based on location and the like, but I'm betting on 2012 to give us some really creative uses of geolocation.
  6. Mobile will push the cloud. About 1/3 of the companies that adopted the cloud, did it in order to be able to access information from any device. Compounded with all other cloud advantages, I believe mobile will be on the forefront of cloud adoption during 2012.

So here they are, the 6 Major Mobile Trends for 2012. Here's a video presentation that gives a bit more insight on this topic and, if your want to learn more about how to build mobile applications, be sure to visit our mobile page.

We're already deep in the holiday season, but it's never too late to add a bit of Xmas spirit to your Web Application!

I thought about adding Xmas lights, flying reindeers, working elves... but it seems to me that for an Enterprise Web Application something a bit subtler was in order. So I ended up just putting in a bit of snow on the Sales application:


Check the video to see snow in action, 
or visit the OutSystems Network to see it live in a real web page!

If you're using the Agile Platform and want to add some snow to your app, here's what you need to do:
  1. Get the "Xmas" component from the OutSystems Community
  2. Reference the component from your web app
  3. Drag the "LetItsnow" block to a particular page, or to the footer if you want snow on all pages
  4. Click 1CP, sit back, enjoy your eggnog, and let it snow!

If you're not using the Agile Platform, there's a bit more work involved...
  1. Get the Javascript file from this site
  2. Place the Javascript on all your front end servers
  3. Edit your pages and look for the <head> section
  4. Add the line <script src="snowstorm.js"></script>
  5. Customize the snow with a bit more Javascript
    <script>
    snowStorm.snowColor = '#cccccc';
    snowStorm.snowStick = false;
    snowStorm.animationInterval = 75;
    </script>
  6. Make sure you didn't break anything!
  7. Follow the "move to production" checklist (if you have one)
  8. Send the changes to your ops team and wait for them to move it to production... hopefully that will happen before Xmas! :)
Have a snowy Merry Xmas!
MobileI don't know about you, but I am getting asked more and more to deliver some type of application that has a mobile front end. Of course mobile is one of the big trends nowadays, and there are good reasons for it. In a recent Forrester survey, 75% of decision makers claim that deploying mobile apps has increased their workforce productivity.

The question I seem to get asked often is, how should you implement mobile? To keep it simple, I have found that there are three implementation strategies you can choose from to build your mobile app:

  1. Native Applications
  2. Mobile Web Applications
  3. Hybrid


Native Applications
These are apps built for a particular device and operating system. They're cool because you can build extremely rich and interactive apps that take advantage of all of the phone's features. The problem is they're hard to build, and you need to have different code (and sometimes different dev teams) for each different device - a maintenance nightmare...

Mobile Web Applications
These are applications that run on the device's browser. Using standards like HTML5 and CSS3, they provide a very good level of interactivity that is getting closer and closer to what you get from native. They run on a web server, instead of running on the device, which gives the possibility to deploy the same app for multiple devices and greatly simplifies application maintenance. The Financial Times is an example of a major player that has decided to move from native to Mobile Web.

Hybrid Applications
These are a mix of Native and Mobile Web. A thin native shell is built around a browser, where the bulk of the application runs. The thin shell allows the application to access phone features that are not available in HTML5 (yet!). It also meets the requirements of being native in order to distribute the application on the appstore. On the maintenance front, well you guessed it a bit of a mix between the native and mobile web. Major players such as Facebook have chosen this route by building their own "wrapper" and then executing all the site content as a web app in that shell.

So, which to pick?
I believe the best choice is Mobile Web Applications. Of course the decision depends on the context, but most of the time Mobile Web is the way to go - particularly if you're considering Enterprise Mobile Applications. Here's why:

  1. Use what you know: Reuse all the knowledge you have from web development. There are still new things to learn, but it beats learning a whole new system.
  2. No approval process: Skip all the steps necessary to have your app on the appstore. Just publish to your servers and you're done.
  3. Auto-upgrade: All your users will be using the latest version of your app. No need to manually upgrade the app on their devices.
  4. Ready for a lot of devices: Using standard technologies like HTML5, your app will be ready to run in a lot of devices in one go.
  5. Be Agile! By skipping the appstore approval process and by being able to release for multiple devices at once, you can have truly short iterations and release new features early to your users.


Click here to learn more about this topic by watching the "Mobile has arrived so start building those apps!" webinar. Happy development!
GrupoSataLogo.pngI was excited to read a story in PM Network profiling our client, SATA International, an airline headquartered in Portugal. The article highlights how SATA - using OutSystems' Agile Platform - built a custom airport operational management system after the packaged software vendor behind their previous application came to them at renewal time presenting a significant price increase.

"Buy vs. build" is a typical issue we hear from Agile Platform users, and as the PM Network article points out, the answer for SATA was "build" after they realized they could reduce costs and improve organizational efficiency by building their own application. For SATA, the airport operational management system is a critical application that needs to be fully integrated with SATA's operational systems. And after a short experience working with OutSystems' Agile Platform, SATA was certain they had the right platform to build their application .

As SATA CIO Paulo Ornelas said in the PM Network article:

"Even having this limited experience, the success of our first agile deployment instilled confidence that both the methodology and the technology would effectively support the project delivery."

Once SATA kicked off this project using the Agile Platform, they were able to deliver the application even quicker than expected. Paulo Ornealas told PM Network:

"We actually issued the final release a month early, with an even higher than- promised level of functionality."

And at the end of the project, SATA's decision to build its own custom application was validated, with substantial financial savings over what the packaged software vendor originally quoted them for their renewal:

"Financially, we were able to realize significant savings in both capital expenditure and operating expense," Mr. Ornelas says. The final solution came in at only 15 percent of the total cost proposed by the vendor, and it was totally tailored to the organization.

Congratulations to SATA on their successful projects! To read more about the success they've had with Agile Platform, check out their full case study.

Bits & Bijt Wrap-Up

| 2 Comments | No TrackBacks
After what we hope was a great Summer for all buddying agilists out there, we thought we bid the mad warm days farewell and welcome falling leaves and hot cocoa the best way possible: with one more Bits & Bijt! For those not fortunate enough to have attended one already, Bits & Bijt is the OutSystems developer meetup, held in the Netherlands roughly every 3 months.

Now in its third edition, it is a very informal and relaxed event, where suit and ties give way to t-shirts and jeans and where ROI and economy planning play second fiddle to technical discussions and tales from the trenches over a can of soda and munchies.

Of course we always aim at having incredible speakers that set the tone for further discussions and this time was no exception.

Heading up we had the infectiously energetic Erwin Schmidt from B-Synergy talking about Agile SAP and how, after 2 years of intensive investigation, the Agile Platform was the only solution that allowed him to create user-friendly applications over the SAP Enterprise Core quickly and sanely.

Next up, was none other than our own Rodrigo Coutinho, main poster on this very blog, OutSystems employee #1 and all around nice guy. Rodrigo did a great presentation on Mobile Development on 6.0 and, if you attended one of last week's webinar on the subject, you already know how knowledgeable he is on this matter. Great stuff all around, as is par for the course for all of Rodrigo's presentations.

Closing the presentation track we had the Oxxio's Matthias Preuter and Wim van den Brink, both staunch OutSystems advocates, who tag teamed to present us the challenges they faced when developing their first 6.0 project: a Version Management solution. This project makes heavy use of the Agile Platform's Business Process Technology and allows formal OutSystems application dependency "locking" and publication to other staging environments. It is still work in progress, but it beautifully showcases our user's ingenuity in extending the Agile Platform's workflow outside what's in the box.

We wrapped up the event with more informal group chats on the Platform and the meaning of life in general. We could tell you a bit more about both things, but we think it's better if you join us next time around! To all that attended, thanks for joining us and we hope you enjoyed yourselves. We @ OutSystems certainly did!

bit-bijt-sep2011-photos.jpg

IT professionals in the education space have a peanut_butter_and_jelly.pngdifficult task facing them - they have to meet the demands of students, teachers and administrative support staff with what typically amounts to a shoestring budget.

In the past few years, this has meant relying heavily on Software-as-a-Service (SaaS) solutions that, while inexpensive, tend to be difficult to integrate with existing school resources and rarely meet all the needs of a district. On the other hand, custom-developed applications can meet all of a school IT administrator's needs but are something of a pipe dream, thanks to the personnel, budget and equipment requirements.

This is all changing, however, thanks to the cloud and, in particular, rapid application development (RAD) Platforms-as-a-Service (PaaS) - a category which is defined by the flexibility and power of the Agile Platform.

For an example, take Faith Academy. A private school with brick-and-mortar locations as well as a virtual curriculum, Faith's vice president of IT, Dan Stueck, was faced with having to upgrade several important applications with a very small budget. Rather than turning to SaaS, Dan went with the Agile Platform, leading to a highly effective partnership in the cloud. You can read the full article at THE Journal.

Our own Mike Jones also offered up his take on RAD PaaS in schools at EdTech Digest - check out Mike's Q&A for great insights into what schools can expect from the cloud in the future and why custom app dev is the future when it comes to school IT.

What about you? What impact do you see RAD PaaS having on your school or your business?
Building a Mobile Web Application is the fastest way to get a mobile app in the hands of your users. You get to build an app at a fraction of the cost of building native, it works on multiple devices from day one, and you don't need to go through the appstore publishing process (if you want to find out why Mobile Web Applications are the way to go, check this free eBook).

But sometimes Mobile Web Applications just don't cut it... you either need to access a specific features of the mobile device - like the camera or address book - or you really want to get your app in the appstore. If that's the case, Hybrid Applications are a great solution.

In this video, we show you how to build such a Hybrid Application using the OutSystems Agile Platform to build the Mobile Web Application, and PhoneGap to create a native shell on top of your Web Application.


You can find the code snippets used in this video here, and the PhoneGap component for OutSystems is available from the OutSystems Network.
paas-cloud.jpg
I will bet that in some form or fashion you have Software as a Service (SaaS) in your organization. Now, I am not talking about packages that have been purchased and installed on your servers - I am talking about true SaaS. Where the software is running in the 'cloud' on your SaaS provider's servers. There is a lot of hype around SaaS and the hope that in the near future all your applications will simply be purchased in the cloud and start working immediately. Sounds great - right?

Reality check!

For most of us in Enterprise IT, the reality is that what makes our business different is the way we go about delivering our products and services to the market. This means that an off-the-shelf, standardized SaaS application is not going to solve our needs. Sure, SaaS is great for many of the commodity processes like payroll processing, accounting, etc. But what about the processes that make your business unique - is SaaS going to work here?

Many organizations I have talked to are trying to force-fit SaaS to work for these unique processes. They are struggling with wanting to customize their SaaS, which is difficult. I see things like only using pieces of the SaaS app and trying to build new application functionality for the processes that are unique. Why are they doing this?
 
Well, for one, the promise of getting the application up and running really fast is a big attraction to the business. SaaS makes this possible due to the zero time and cost associated with setting up the infrastructure to run the application. But all of these SaaS benefits are lost once you start customizing it. When you try to adapt the SaaS offering to your unique needs, what started as a really fast time to market initiative, will quickly turn into a nightmare of tweaking and hacking an inadequate API and data model.
 
This might seem counter intuitive, but I think the answer lines in Platform as a Service (PaaS). Let me explain, we are starting to see new, extremely productive and easy to use PaaS offerings that give you rapid application development (RAD) with 'instant' setup to get your project started immediately. I like to call this "RAD PaaS". Even more interesting... what happens when you couple free applications with the RAD PaaS environment? Now you can quickly deliver a custom fit application faster than you could configure the SaaS package. Thus, the new wave of RAD PaaS offerings will provide a custom SaaS experience, spelling the end of SaaS for anything but a truly standardized business processes.

OutSystems recently published a new eBook highlighting three customers who delivered unique applications in the cloud. Two of these examples are actually about replacing existing SaaS applications and taking advantage of this new generation of RAD PaaS offerings to accelerate deliverability and cut costs. Check it out here.
 
So, how about your business? Is SaaS working for you? Have you tried RAD PaaS yet?


Agile Platform

Build your next great Web App today: Take a tour of the Agile Platform