PDFXporter Project Diary :: Rapid Project Development :: Day #7

Read the Disclaimers and Warranties and download the Pre-Alpha now:

Day #7 – Billable Hours 1 – 8

Complete the License Management System is the Goal

License Management System is online in the Cloud for Production and on the Desktop for Development. The GUI has been updated to allow the API to be used for Development via a local server and in the Cloud for Production; both servers can be validated side-by-side.

Just to recap.

  • A complete License Management System with GUI has been completed during the first 7 days with working code running via localhost and the Google Cloud.
  • An initial GUI has been created with a slick animated company logo.
  • A reusable Adobe AIR Application Framework that supports Windows, Mac and Linux with full support for file names that are not case sensitive (Mac and Linux require case sensitive file names however Windows does not – Windows is an ideal Development Platform because Mac and Linux Apps can easily be made to mimic the behavior of files for Windows which is to say once this is done one can freely develop high-impact Adobe AIR Apps for Windows that just work once ported to the Mac and Linux OS without having to give any thought to how file names are being handled.)
  • This is a 7 Day Development process I will NEVER again have to repeat – this saves 7 days every time I reuse this Application Framework – this is a huge savings in time and money and this reduces time to market.
  • Just try to replicate this experience in your software development practice. I was not even spending most of my time working on this 1 project during the time this code was being written – I was maybe spending 20% to 50% of my time working on this project with the rest of my time being spent on other pursuits.

Now I have a reusable Framework for the Development and Deployment of Adobe AIR Applications that leverage the Google Cloud with License Management that will be hooked into a payment processing system to allow users to play with the Applications before paying to use them.

PDFXporter Project Diary :: Rapid Project Development :: Day #8



Advertisements

PDFXporter Project Diary :: Rapid Project Development :: Day #6

Read the Disclaimers and Warranties and download the Pre-Alpha now:

Day #6 – Billable Hours 1 – 8

Complete the License Management System is the Goal

License Management is missing some unit testing and bug fixes… for now.

Added more features to the Self-Help Kiosk, heading into complete control for my users while maintaining a rich set of features.  The primary feature you cannot see from the videos is the fact that there is a great deal of code reuse going on with all those Self-Help Kiosk panels – only one set of widgets is ever on the screen at any point in time – this reduced the coding effort and gave more time to produce the desired features.  This is what I do with my 36+ years of software engineering experience – I have learned how-to get the most from my development effort without having to sacrifice anything my users may wish to use.  How do I know what features to add ?  Well I add the features I would want to use if I was a user using the product(s) I am working on – then I simply produce useful slick methods to achieve my goals all the while without having to use more effort or more time.

PDFXporter Project Diary :: Rapid Project Development :: Day #7

What does it cost to get a software product developed ?

$500,000.00 paid by Verizon Wireless

Recently I was asked by Verizon Wireless to participate in the development of a single drop-down menu for VerizonWireless.Com along with 5 other professionals. Two of us were doing Flex Builder 3 development, two were doing HTML/JavaScript/CSS and two were doing server-side Java development. All 6 were apparently required for this one 6 month project whose only goal was to get a single drop-down menu on a web site.

The project was completed in 8.5 months

Total cost was 6 people for 8.5 months working 160 hours per month each paid on average $60/hr (fully loaded hourly rate) which means approx.. $500,000.00 was paid to get this done; well $489,600.00 might be closer but then there we some other people involved in this project and their cost probably brought the total closer to $500,000.00 than not.

Recently I was asked to produce a product for Amazingfacts.Org

This time I was the only developer working with Adobe AIR 2.5 (AS3 and MXML) and I produced the following with the prototype being done in 30 hours:

1 complete product rewrite for 2 platforms (Windows and Mac) in 2 languages (English and Spanish)

Total billable hours was 652.75 spread-out over 20 weeks (much of this was just busy work) for a total cost of $40,000.00 (fully loaded cost).

Keep in mind the fact that Windows and Mac are two very different platforms and the products had to run from a DVD (not the most common use-case these days) and both product versions had to use the exact same file system with the exact same files and very little time was given to perform the internationalization for English and Spanish.

Also keep in mind this was not a trivial application since this application has to play sound files (MP3) and video files (MP4) as well as handle PDF docs and HTML docs all under the same roof and all of this has to work across two very different Operating Systems.

What’s the difference and why the lower cost when I am doing the work alone ?

Hmmm… Maybe one person can work in a more efficient manner than 6 people… Hmmm… Ya think ?!?

The bottom line is, I got the project done during the initial 30 hours – the rest was simply polish making the end-client happy with the results. Approx. 20% to 30% was busy work based on requests to hunt bugs that did not really exist; another 20% could have been saved since some technology choices led to some technical issues that could have been engineered-out for less than I was paid to do what I was being asked to do and “yes” I did offer lower cost alternatives that were ignored by the end-client.

I had to buy a Mac to get this work done too !

Since this was the first time I have ever worked with a Mac outside some office setting I had to buy a Mac using money I was being paid… Now this is dedication to customer satisfaction !

So maybe $1200.00 is a small price to pay but that was 1 paycheck or roughly 30 billable hours I will never see again !!! On the other hand, now I can produce Mac apps like a pro now that I finally own a Mac !!!

Again, the bottom line is even when I don’t have the direct experience with some piece of hardware, like a Mac, I can still get the work done quickly and efficiently. Moments after getting this Mac setup I was able to engineer some AS3 code that allows any Adobe AIR App I may wish to code use the same file system for Windows and Mac without modification and without having to be the least bit concerned about file names and the like. For those who are not that familiar with the Mac and Linux versus Windows where file names are concerned – Mac and Linux consider file name case to be relevant where Windows does not. File name case can cause problems when porting code from Windows to the Mac or Linux because Windows does not care about the case of file names but Mac and Linux does. Now I can simply code my Adobe AIR apps for Windows and have complete confidence in the fact that once any of my apps are ported to the Mac and Linux they will run exactly the same using exactly the same file naming conventions and this too saves me time during development both now and in the future.

Nobody in Corporate America is getting complete products done for less than $50k !

This simply does not happen for anything less than $250,000 with typical costs running $500k and up even for seemingly trivial software projects such as the Verizon Wireless experience as related above.

Doing the impossible is what I do best !!!

Go ahead and think what I am saying is completely impossible ! Heck I enjoy feeling like I am able to do the impossible anyway so why not feel like my experiences are impossible. You will make me feel better about myself, so why not !

The reality is, I am able to get complete products out the door in 30 days or less from start to finish when I am doing my projects for myself using my own code libraries but then I believe in the power of positive thinking and code reuse. Once I have a reusable library or framework I can reuse I make it into something I can use over and over to save time and effort and why not ?!? If Corporate America were to do this they could get products done in very little time using very little effort at a very low cost and this would just raise their profit levels to new heights !

 

PDFXporter Project Diary :: Rapid Project Development :: Day #5

Read the Disclaimers and Warranties and download the Pre-Alpha now:

Day #5 – Billable Hours 1 – 4

Complete the License Management System is the Goal

License Management is missing the Activation function… for now.

Day #5 – Billable Hours 5 – 8

Reworked the Login/Register/Activate GUI

Had to add the Activate function and felt the button-based interface for Login and Registration was just too clunky once Activate was added – now there is a slick tabbed interface.  I removed all duplications of widgets and chose to reuse widgets that are common to all 3 states – also chose to use states for each of the 3 states however I modify slightly how Flex likes to handle state transitions.  All in all this was really easy for me to do so I did it, easy-peasy.

PDFXporter Project Diary :: Rapid Project Development :: Day #6

PDFXporter Project Diary :: Rapid Project Development :: Day #4

Read the Disclaimers and Warranties and download the Pre-Alpha now:

Day #4 – Billable Hours 1 -4

Complete the License Management System is the Goal

License Management exists to control who gets to use the Application and what they get to do with it.

License Management provides for a Demo Mode which is a short period of time during which a user gets to play with the Application before paying to use the system.

License Management provides for a Paid Mode that allows a user to have full access to the Application for a certain period of time – generally one calendar month at a time.

Day #4 – Billable Hours 5 – 8

License Management Registration is Done

Upon Registration a user is sent an email with the Activation Key that must be entered back into the Self-Help Kiosk to validate the identity of the user.  The Activation Key is salted with something special to make it 100% unique thus thwarting efforts users and others may wish to employ to fake their way into a positive Activation without the proper key.  Additional measures will be taken to ensure invalid users are not able to fake their way into an Activation.

PDFXporter Project Diary :: Rapid Project Development :: Day #5

PDFXporter Project Diary :: Rapid Project Development :: Days #2 & 3

Read the Disclaimers and Warranties download the Pre-Alpha now:

Day #2 – 6-8 Billable Hours Total

Complete the License Management System is the Goal

License Management exists to control who gets to use the Application and what they get to do with it.

License Management provides for a Demo Mode which is a short period of time during which a user gets to play with the Application before paying to use the system.

License Management provides for a Paid Mode that allows a user to have full access to the Application for a certain period of time – generally one calendar month at a time.

Self-Help Kiosk is a Required Feature

The Self-Help Kiosk provides for User Login for those who are Registered, Registration System and Username and Password Retrieval for those who have forgotten how to login.

Recap on the day – 3-4 hours into the Day…

Working on the License Management System…  making it real by working on the RIA front-end at the same time the Back-End code is being developed.  I prefer to work on projects in this manner – one guy doing all the work just works better with less wasted time and more productivity.

API Versioning System

What happens when the API changes between versions ?  Problem solved.  Take a lesson from SalesForce.Com and how they handled their API versioning problems.  (Hint: There is a bit of innovation in how this is being built…)

Obviously the new code that supports the API Versioning System will get Unit Tested for all the profound that sounds… again to this is say Duh !  Again, I do not give any thought to the practice of “Unit Testing” when it is done to validate my code – just a part of being alive, just like I don’t give any thought to breathing or pumping blood because that’s just a part of being alive.  Get it ?!?

Coded the Unit Tests

Geez, Unit Tests no less.  Used to be, back in the dark ages, we used to write some code to make sure our code worked and NOBODY but nobody ever said anything about Unit Tests, so far as I can recall.  We just did what we had to do to make sure our code worked because we all wanted our code to get used and it was a matter of some sense of honor, I think, that professionals of that era wanted to be known as solid professionals who did good work.  This became a part of my life just as surely as I am required to breath air and pump blood.

Recap on the day – 6-8 hours into the Day…

Still working on the API Versioning System… adding some bells and whistles just to make the whole project a bit more interesting and when you can optimize a bit based on past experience, why not ?!?  There is no time like the present to optimize ones code.

API Security is also a requirement – got to keep the bums off the lawn, right ?!?   You know it !   Also got to keep the bums from being able to hijack my API just because it happens to be web accessible in some cloud somewhere.  Anyway,securing an API is easy enough – pick a protocol that cannot be sniffed (via SSL POST variables) and then let the client (Adobe AIR 2.5) connect with the back-end Cloud such that it is the only entity allowed to do so and API is more than secure.  Needless to say the “protocol” must be random enough to keep the bums guessing yet easily enough to code which for me means I can reach for the sky since I have done this API Security thing before and I have some really good ideas you can all salivate over whilst reading this blog ‘cuz I won’t be giving this little gem away anytime soon.

Day #3 – 8 Billable Hours (at-most)

Working on the Cloud-based API and API Security

API Versioning System is done,  now working on the Cloud-based API and API Security.

Also working to connect the GUI to the back-end API.  Not bad for less than 2 days work.

Working on making the User  Login/Register window transparent and it works great ! (See the sample below…)  Just in case you were wondering… this is what awesome looks like !

I will upload a new video that shows this level of development once the Login/Register panels are working…  Just awesome looking so far !

Now working on the User Login API functions.

PDFXporter Project Diary :: Rapid Project Development :: Day #4

Get the Latest Android Market APK here !

Get the Latest Android Market APK here !

BTW – It works !!!

%d bloggers like this: