startups and code

Agile Software Development

Back to home

Agile Project Management and Agile Software Development  has been a buzzword for a while now.  Which I suppose is no longer a trend, but I think people need to understand what is important in delivering high quality software in a consistent manner.  There are a few keys things to note in that sentence, it is not creating high quality software, it is delivering it.  I could write the most amazing software product but if I never deliver/release it, who cares.  Also, the next part is "a consistent manner".  You can come up with the greatest software package and deliver it, but if you do not continue to release something, you are resting on your laurels.  Your reputation is only as good as your latest release.  If your "latest" release was 2 years ago, you are off the radar, and your reputation is dying, if not dead already.

Deliver high quality software in a consistent manner.

You do not need to spend hours on what your vision statement is, what your business plan is, or even every feature you need to implement.  Pick one... create it... test it... did it do what you expected?  Cool.  Repeat that.

The basics of almost every web application (note: I said web application, not website, that is difference to note) is the following:

  • A way to register
  • A way to login/logout
  • A way to communicate (to each other, to the system, from the system, etc...)
  • Roles for users (at least an admin and a user)
  • A landing page (this is where the uniqueness begins)

There are several bootstraps out there to help get you started, ASP.Net has MVC3 startup project that handles all of this for you.  A few twitter bootstrap handles a lot except the user management, which once you do it once, you'll have it.  We have a sample you can use that ties into facebook (I recommend using some version of oauth for your login, since most people have facebook, twitter, google+, or linkedin).  However, once you have that up and running you can focus more on the real product, not the maintenance.

So agility in software comes back to this... MVP - minimal viable product.  Create a good base framework that you can use, (registration, login, and roles admin).  Communication can be simply an smtp server that sends welcome mails, and alerts.  Focus on the delivery of something... prototypes make much more impact than a napkin presentation.  Learn your elevator pitch.  I will have an upcoming blog about elevator pitches.  Quick explanation, a 1 minute pitch of your product (the problem you are trying to solve, the audience who needs it, how you are different from your competition, key features, and a few other details).  Keep in mind, I said 1 minute.  Elevator rides don't last long. :-)

All of that being said, I hope this gives you some direction on how to create a bunch of prototypes quickly.  Make sure you have that base framework and go from there...  You will be amazed on what you can accomplish.

Thanks for stopping by...