January 2011 Archives

cloud.png
Putting applications in the cloud offers the promise of reduced costs, flexibility, accessibility, not to mention the possibility to dramatically improve the way your IT works. But to reap all these benefits, you need to make the correct decisions when defining your cloud strategy - especially when it comes to your choice of development platform.

And if you deal with custom enterprise applications, more likely than not you'll have to choose a cloudy-ready platform to develop, build, test, and deploy them.

Here are 7 things you should take into account before picking your brand new cloud-ready platform:

  1. Avoid lock-in - Code and Data: Your code and data are part of your competitive advantage. You must own them. Make sure that, if the need arises, you can smoothly and safely transfer your code and data away from your cloud provider with minimal business interruption.
  2. Easy to move between on-premise and cloud: What's departmental and on-premise today, may need to be global tomorrow. What's currently published on the cloud may become regulated and required to move on-premise the day after. Having the flexibility to easily move back and forth between the cloud and on-premise is a big plus.
  3. Easy to scale horizontally: One of the big advantages of the cloud is that it allows you to grow your data-center as you need. The platform you use needs to be able to take advantage of this flexibility.
  4. Lifecycle support - ready for fast change: It's not just about running applications in the cloud; your choice of platform needs to support the full lifecycle. You need to be able to develop, test, and change your application really fast.
  5. Easy, fast & safe to deploy: This is part of the lifecycle, but it's important enough to have it's own bullet! In order for you to be as fast as your business demands, you need to be able to deploy your app quickly and often. And you need to know that, should something go wrong, you can quickly revert back to a previous instance.
  6. Easy to integrate: Integration will always be a big part of custom application development. You need to make sure the platform you pick integrates easily with your apps running on premise, with your cloud apps, or with off-the-shelf packages. 
  7. Secure: One of the biggest concerns around the cloud-computing is security. Pick a development platform that seamlessly handles this issue for you. This is important not only at time of deployment but also from the application execution perspective. If your platform handles this for you, you will save you a lot of time and headaches in the future.
What would you add to this list? What are your main concerns, and what do you look for when thinking about your cloud strategy?
greatwebapp.png
Some web applications are just a pleasure to use. They work extremely well, they are gorgeous, they are fast, and they almost seem to guess what you want. Gmail, Amazon, and Highrise are all good examples of such applications.

A lot of ink has been spilled on why these apps are so great: Focus on the user, tons of usability testing, heavy usages of statistics, contextual design, etc. are but a few of the reasons pointed out as drivers for success.

But even though the end user interface is an extremely important part of what makes a web application great, I believe true greatness can only be achieved if the app is also first-class on the inside.

Greatness from the inside out
Ok, so I guess the next question is: What makes a web application first-class on the inside? Here are some characteristics I believe are key to build a truly great application:

  • Easy to change: Great apps are evergreen. Even if in subtle ways, they're always improving and adapting to the latest requirements. To build a great app, you need to make sure your application can change as fast as your users' needs.
  • Easy to understand: From the inside! A great app will last for years. In order to keep it easy to change all that time, you need to consider that other developers will be working on the app. And they will need to fully understand it, if they are to keep it great!
  • Robust: The app needs to work. All the time. Non-stop. Everybody squirms when Gmail is down...
  • Scalable: Great apps attract a great number of users. To support all this activity, your application will need to scale. Good responsiveness is mandatory for a great app.
  • Instrumented: Sometimes your great app might end up responding slowly, or worse, not responding at all... if that happens, you need to be the first to know, which means that great apps are instrumented and monitored. That's the only way you can react and solve the problem, even before your users realize there was an issue!  
  • Secure: We trust great apps to keep our data secure. You need to keep that trust. Trust is a marvelous thing!
These are a few really important points to consider when building a great web app, but I'm sure there's plenty more secrets for a web application's inner excellence! What do you think? What makes your app shine from the inside?

Agile Platform

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