Thursday, August 28, 2008

AppGen and the Speed of Change in Business

In a previous post, I talked about the AppGen Revolution, and now I want to talk about how fast the business changes its mind and how AppGen aligns itself nicely with the needs of the business and the developer.

But first: why should we care that our development aligns itself with the needs of the business?  At the end of the day we developers/architects get paid when the company for which we work makes money (or saves money – but I prefer to think of the glass as half-full  =P). 

Businesses make money when we build the right application and bring it to a receptive marketplace.  The last statement cannot be overemphasized.  Notice there is not a single mention of technology or architecture.  Can we use terrible technology and/or an ailing architecture and still make money?  Maybe.  Depends on the marketplace.  We have all seen technically inferior products reign supreme and superior products die.  The market is truly a strange and whimsical place.

You may be thinking: as a developer it is hard it is to deal with the way businesses operate.  The only constant in this world is change.  Changing requirements, changing their minds about the way things should work once they see the way the software was built, changing deadlines, changing colors, sizes and shapes of buttons  =]  So we try to build the software to adapt to those changes in a manageable way.  We may even create new development methodologies and notions (XP, Crystal Clear, Scrum, TDD, BDD, etc.) to help manage this change in new ways.

This area is where AppGen fits.  By being able to 1) model a business domain, 2) model the user interface in a technology-agnostic way, and then 3) generate working applications to get feedback from users in a matter of hours is truly revolutionary.  I believe that the reason Agile methodologies all work so well is that they are meant to focus on delivering working software.  AppGen always delivers working software and does it in the most rapid way possible.

 |  Fernando Cardenas  |  #    |  Comments [4]  | 
 Thursday, August 14, 2008

The AppGen (Application Generation) Revolution

The newest/greatest improvement in software development is AppGen.  In large applications, it can decrease your development effort by weeks or months and increase code quality, all the while maintaining the flexibility of architecture and coding standards you require.

AppGen is short for Application Generation.  And like the name implies, it is a method for modeling and generating entire applications from models.  These models can be graphical or textual or both.  There are tools out there that generate apps out of the box, or you can roll your own AppGen using by combining existing technologies (code generation, UML, MDA, DSL, and other TLAs in one or more combinations).  Most approaches generate 80-90% of an application’s code, and then a developer adds custom logic after generation.  Some try and generate all the code.

AppGen works great for large projects and small projects. On big projects you can create tens or hundreds of functioning screens, the entire data layer, and tens of thousands of lines of code in less than a week.  On small projects, you can go from design to deployment in hours.  We were able to model, generate, and integrate production-ready code from Foundations (our AppGen offering) into the e-commerce portion of our website in only 3 hours.  It took longer to properly install the SSL certification path on our website than to do the custom e-commerce code (that could be because I am an IT hack, but still).

If you aren’t using AppGen in your development process, you should go and figure out if AppGen is right for you. 

[You should ask your doctor first about using AppGen. AppGen is not for everyone and can cause increased levels of free time, general happiness and Halo 3 scores.  Make sure to see a project manager if your happiness or free-time continues for more than 4 hours.]

There are plenty of great AppGen tools out there.  Probably one of them can help you.  We recently publically released our first version (plus some updates) and are excited about the future of our tools and AppGen in general.  Take a look at our video demo to AppGen in action.  If you aren’t sure about how effective AppGen is or the quality of code that gets generated, download the sample code for an app that was created in less than one hour.

This post is the first of many on AppGen and how to increase developer/architect success on software projects, and I hope to speak with you soon about AppGen and its practical application.  Drop me an email or post a comment and tell me what you think!

P.S. – I checked on Wikipedia, and AppGen redirects to IDE.  To put it simply, I think that AppGen is the next generation of IDEs, and many of us will start using AppGen tools as pre-processors to our IDEs until AppGen gets integrated in.

 |  Fernando Cardenas  |  #    |  Comments [2]  |