Miscellaneous items of noteDeployment
Deployment is so easy that it isn't funny. Pick a server to deploy to and tell it to deploy. You can go to the server if you need to and republish a previous version; this will roll back the application, including the data model (but not delete the data that was entered in the meantime). In addition, the Agile Platform automatically handles load balanced scenarios; you do not have to concern yourself with issues such as session sharing between servers.Security
Overall, the Agile Platform includes a ton of security features. Throughout the entire system, there is control over who can do what, from people on the development team all the way through what different users of the applications can view. At no point do developers touch the data, which is important. The system automatically takes care of the big issues (although hardly the only issues) of SQL injection and cross site scripting attacks.Job market and user community
OutSystems has put together the basis for a very strong user community. Even better, this community is more than just a place for people to help each other out; it is also a job market.
As you progress through the courses in the OutSystems Academy Web site, your community profile gets marked with your accomplishments and certifications. This makes it possible for companies to find people who meet a guaranteed minimum level of training for their projects. It also helps you as a potential worker to prove that you are up to snuff.
Though taking online training is never a substitute for real-world experience, I think that this is a novel approach that will be a big help. Miguel noted that their partner program has grown substantially, with roughly 40 partners now, four of whom are in the United States.
I really like the way that the Agile Platform incorporates the full cycle of continuous improvements that Agile proponents espouse. From the beginning of a project, you gather your up-front specifications to create a "timebox" estimate. The tools provide a "sizing" system where you specify what kind of work needs to be done (for example, are you making a login screen or a contact us form?) and roughly how complex it will be. From there, the tool is able to provide a sizing estimate that Miguel says is pretty accurate; because the system is really good for standard work, they are able to provide a pretty good guesstimate of how long something should take.
Project deployment is a joy. And once work is published, it is very easy to solicit feedback. Users can click on the screen and provide feedback; as you review their comments, it will highlight for you exactly what part of which screen the user was commenting on, which makes it much easier to understand the comments.
The server system provides some nice tools to get an idea of how your application is doing. It includes a listing of each page view and how long it took, what calls you are making to Web services (and how long they take), and so on. It even includes a slow query report to help you quickly identify database bottlenecks; typically, it indicates that additional columns may need to be indexed.
The Agile Platform has an SMS gateway built in. If you have been wondering how to enable your applications with SMS (for example, respond to TXT messages or send them), the Agile Platform can enable this. You will need to tether your server to an SMS capable device such as a cell phone, but once this is done, working with the SMS system is quite easy. Miguel and I worked through an example of a simple application that responds to queries sent via TXT to search for data, and I was extraordinarily impressed with how simple it is to work with.
The Agile Platform is a truly unique idea in the world of development tools. By providing the Integration Studio, it addresses the common concerns about systems that promise "no more hand coding." At the same time, the Service Studio really does present a visual metaphor on top of programming that makes a lot more sense in many situations than plain text source code does. I really liked the integrated workflow, particularly deployment (and the rollback functionality), and the fact that it already takes care of scale out scenarios, security, and other common headaches. Best of all, the problems that I traditionally have had with various systems that tie data to applications are simply not here.
Is the Agile Platform for everyone? No, it isn't. But for developers working on typical Web applications (particularly of the data driven variety), I believe that the Agile Platform should be seriously evaluated for use.
J.JaDisclosure of Justin's industry affiliations: Justin James has a working arrangement with Microsoft to write an article for MSDN Magazine. He also has a contract with Spiceworks to write product buying guides.
---------------------------------------------------------------------------------------Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!
Justin James is the Lead Architect for Conigent.