>
Technical

Six Steps to Effective RAD

I’m sure that this topic will be irrelevant to most people. Usually, when your organization needs you to develop a new application they say to take as long as you want. Rarely do we actually have timelines or due dates. But I guess there might be one or two people out there who need to build and deploy a basic app quickly. I’m sure you’re already familiar with RAD (Rapid Application Development) philosophies and you’ve already examined the usual CASE (Computer Aided Software Engineering) tools. You probably already know that typically it’s possible to use these tools to quickly slam together a workable app by sacrificing some scalability and features.

Actually this website was a little bit like that when I put it together. I didn’t have a lot of time but wanted to get something up quickly. In fact I’m quite happy with how it turned out and I took a few notes about lessons that I learned in the process. And as I’ve been thinking about these things I’ve started thinking that these probably apply to general RAD too.

  1. Choose the Right Tool

    This is probably the most important thing I did – and it is the most important decision you will make in any RAD situation. I evaluated a few different blogging and CMS options before settling on WordPress and I could not be any happier with my choice… WordPress is amazing! Additionally, the choice to purchase hosting on a linux server where I could get shell access was significant. (I was initially planning on hosting it myself at home over my DSL line… I think I made the right decision!) With any RAD project you must decide what tools you will use. Forms or APEX? MS Access? Visual Basic? FileMaker?

  2. Get a Head Start

    When you’re trying to determine the right tool, perhaps one of the first questions to ask is “how much example code is there for this tool?” WordPress has a facility called “Themes” which essentially provide the look-and-feel of your entire website. And there are lots of libraries on the internet with dozens and dozens of themes each in them. I perused probably a hundred themes before settling on this one. Different RAD environments also have various amounts of pre-built components and code. If possible, jump-start your project by finding another app which is close to what you’re trying to make. Then start with this code rather than starting from scratch. (Be conscious of licensing here; especially if you are releasing your app to the general public.)

  3. Learn By Example (Plagiarism Isn’t So Bad)

    When you’re in college they don’t take so kindly to plagiarism… but the real world (of software development) is quite different! Whatever you’re trying to do, it’s very unlikely that you’re the first person to do it. Google is your friend: find code snippits to borrow rather than trying to reinvent the wheel every day! This way you can focus on what makes your application unique: your business rules and business logic. All the cool features on this website were stolen from somewhere else, at least in part if not in whole. I back ported the post separators from Brian’s new version of this theme. I stole the javascript to auto-clear the search textbox when you click on it. And most notably, I shamelessly stole the LevelTen plugin then modified the code to make the sidebar context-sensitive.

  4. Pay Attention To Detail (Try To Break It)

    Test, test, test. Click everywhere that people aren’t supposed to click. Resize the window to sizes that no rational person would use. Type special characters and strings that are too long into all the input fields. Click all the buttons in the wrong order. Try as creatively as you can to break it. I discovered quite a few quirks about this website when I first viewed it in Internet Explorer. (I use Firefox.) Especially with the modifications I made to the LevelTen Plugin, I was finding links that were missing the category filter in my sidebar for days after I put the site up. If you’re developing a RAD application that’s no excuse to slack off on testing: you should still make sure that the application behaves the way it should.

  5. Don’t Be Intimidated To Learn New Technologies

    When I started this website I was very, very rusty on PHP. I’m still no expert but I learned a lot during the seven days when I assembled this site! Oh yeah – and I needed a MAJOR crash course on stylesheets and HTML. It took me awhile to make those code snippits have that sexy blue bar to the left. I’m not a web designer – but I wasn’t afraid to learn CSS for the week when I was putting the website together and it was totally worth it. I’m quite happy with how the site looks. Most RAD environments have their own languages. In a web environment you may need to learn a bit more about DHTML or javascript. Don’t be afraid to learn a few new tricks!

  6. Keep It Simple; Refactor If Necessary

    Last but not least is the KISS philosophy. Don’t overcomplicate things. Half way through the development of this site I completely changed how I was separating content. I was originally doing something a bit more complicated but realized that the easiest and simplest solution was just to use two categories (“Technical” and “Non-Technical”). The LevelTen code could already do this quite nicely; I only needed to fix the links and help the sidebar detect which content to show. In a valiant display of refactoring boldness I rolled back a bunch of my complicated code and went for the simple solution. The end result is a website that’s easier to understand and maintain. Naturally the same principle applies to Rapid Application Development. Know what tools are available and choose the simple solution.

Well if you’re one of the few people who, like me, occasionally needs to develop applications on a tight schedule then I hope you find these tips useful. Turns out that it actually is possible to design decent and usable applications rapidly if you do it the right way.

About Jeremy Schneider

Doing stuff with Oracle Database, Performance, Clusters, Linux. about.me/jeremy_schneider

Discussion

Comments are closed.

Disclaimer

(a) The views expressed on this website are mine alone and do not necessarily reflect the views of my employer.

about.me

Jeremy Schneider
Follow

Get every new post delivered to your Inbox.

Join 896 other followers

%d bloggers like this: