Help  |   Contact Us  |   About Us  |   News and Events
.
Books, conferences, and other information about... Moving to Linux Switching to OOo Building Linux Apps Using Visual FoxPro
Consulting      Buy      Download      Your Account      Catalog      Support      Conferences      Resources      Fun
Recent
Releases

Buy them here
and save
50%
or more!

Making Sense of Sedna and SP2

Effective Techniques, 2nd Ed (VFP 9)

FoxRockX
Magazine

MySQL Client-Server Apps with Visual FoxPro

Flying Fox: VFP Reporting, Any Data, Any Envir.

More Books...

How long? How much? DevGuide revisited for 2012 2012/01/01
You've got an existing application that's a little long in the tooth. It needs to be "upgraded", aka "replaced" or "rewritten". The issues of "What language should we use?" and "Can I do the work?" have been resolved. The questions remaining are "How long will it take?" and "How much will it cost?"

The way things were.

In 1997, I wrote a book, DevGuide '97, that answered the question, "How do you price an application?" At the time, we were builidng new desktop, LAN and Client-Server systems. The slate was clea, not too many legacy applications out there, and those that did exist were fairly trivial, such as the dBASE III inventory application that spent a lot of time opening and closing tables due to the limitations of 10 work areas.

There was a lot of work out there; too much, perhaps, as the limiting factors for generating income back then were the number of hours in a day and the maximum rate per hour one could charge. Regardless of how good you were, the maximum hourly rate that the market would bear was relatively modest, which was a shame. In our business, the difference in productivity between an average and an excellent developer has been estimated at anywhere between 10 and 40 times. The problem was that the market could not discern the different between an average developer and a master, so the master could not charge proportionately more based on his level of expertise.

In response, I advocated a fixed price model in order to make more money. My hypothesis was that if you were highly skilled, you could take advantage of that fact. Price the system fairly for what an average developer would charge. Since you were highly skilled, it would take you considerably less time, thus producing an effective rate per hour that was comparable to your skill level. Your customer paid fair market price and you were compensated in according to your expertise.

Quoting a fixed price, however, required a clear specification of the work to be performed and a historical database of what it cost to do that work in the past. The first requirement - a clear spec - has more and more fallen out of favor, as younger developers denigrated the "Waterfall" methodology.

In 2012, the landscape has changed.

Back in 1997, the variables we had to deal with were fairly limited. Single vs multi-user. File server vs client-server. Maybe a few character-based vs GUI decisions. Those were the days that Microsoft tried to redefine the term "cross-platform" from DOS/Windows/Mac/Unix to Windows 3.1/Windows 95/Windows NT. At the time, these seemed to be huge leaps in capabilities, but as we'll see, not so much.

These days, we have.... a mess.

First, the UI: desktop, browser-based, or mobile? If desktop, which OS: Windows, Mac or Linux? Each OS has multiple windowing flavors - Windows windowing runs from Windows 2000/XP to Win7. Linux distributions are even more varied. And do you need to support more than one OS?

If browser-based, how far back do you support? Even in 2012, more of the enterprise is stuck on IE6 than one would imagine. And how many browsers? It used to be IE, Firefox, and maybe Opera. Now we've got Chrome, Safari... and if you're developing for the browser, maybe you're developing for tablets like the iPad, the Nook, and the Kindle. And let's not forget mobile browsers: iPhone, iPod, Android. And each of those has current and deprecated versions. If mobile (and not browser-based), the market is changing faster than even the Web can keep track of.

Are you exhausted yet? Get a cup of coffee - this is just the UI.

Next, let's talk about back-ends. You've got your various LAN file systems, be it FAT or NTFS on Windows, ext2/3/4, Reiser or XFS on Linux, HFS on the Mac. Writing to these is generally transparent, but there are nuances to be aware of, such as sorting and case-sensitivity differences. Data storage types, from flat files, XML, and common but proprietary database types (e.g. the ubiquitous .DBF and .MDB architectures.)

Or perhaps you'll use a client-server storage device. Microsoft SQL Server? MySQL? PostreSQL? Big iron, such as Oracle or DB2? Similar, sure, but not identical, not even within individual products.

Another option is the cloud, taking advantage of services like Amazon's S3 or Google Docs. If you're writing for tablets or mobile, the field is even more wide open.

And 15 years later, there are *lots* of legacy apps, from the FoxBASE+ vertical with 1988 copyright dates in the headers to last year's mobile on a Blackberry that is being transitioned to new platforms.

Fixed price is no longer an option.

As I mentioned, one of the requirements for quoting a fixed price is a clear specification. The other is a database of historical costs, a record of how much it cost to do a similar feature in the past. The first is passe, and the second is near-unto impossible to acquire with components (UI, backends) that just showed up 9 months ago.

We have a challenge on our hands. Stay tuned for more.
Older news...

Download Updates

2012:
1/1: FoxRockX Issue November/December 2011 has been posted.

2011:
1/25: Updated source (Ch 7) for What's New in Nine: Visual FoxPro's Latest Hits has been posted.
1/21: Updated source (Ch 6) for MySQL Client-Server Applications with VFP has been posted.

2010:
8/13: Final PDF for MySQL Client-Server Applications with VFP has been posted.
9/4: Errata for .NET for VFP Developers posted.
8/26: New Whitepaper: SuSE 10.1 Setup has been posted.
8/22: Chapter 11 for MySQL Client-Server Applications with VFP has been posted.
8/16: Chapter 10 for MySQL Client-Server Applications with VFP has been posted.
8/8: Chapter 9 for MySQL Client-Server Applications with VFP has been posted.
7/10: Chapter 8 for MySQL Client-Server Applications with VFP has been posted.
7/1: Chapter 10 (draft) for Linux Transfer for Web Admins posted. This chapter's topic is Installing Apache and BIND...
6/20: Chapter 7 for MySQL Client-Server Applications with VFP has been posted.
6/13: Chapter 6 for MySQL Client-Server Applications with VFP has been posted.
6/5: Chapter 5 for MySQL Client-Server Applications with VFP has been posted.
5/20: Additional source code files for VFP Best Practices and GLGDW 2006 conference notes available. (More)
1/14: Whitepaper on Remote Access Via SSH updated with Public Key Authentication. (More)
1/5: Sample chapter for Taming VFP's SQL posted. (More)
10/1: Additional files for What's New in Nine Chapter 7 source code available. (More)
6/5: Update to BuildFox source code available. Slight update to code on page 317.... (More)
5/13: Chapter 9 (draft) for Linux Transfer for Web Admins posted. Chapter 9 covers Dealing with Attacks... (More)
5/1:  Chapter 8 (draft) for Linux Transfer for Web Admins posted. Chapter 8 covers Additional Security Issues... (More)
Older updates...

Help  |   Contact Us  |   Legal  |   Privacy  |   Copyright  |   Join Our Mailing List