Monday, February 28, 2005

Software Development Priorities

This was my response to a conversation we were having in the TDAG group. Someone was looking for tips to reduce the size of their executable and then we got into a discussion of the merits of doing so. I proposed a list of priorities in developing a software project. Someone responded that none of those priorities should be sacrificed as they are all important.

Your priorities on a development project should be ranked as follows:

  1. Security
  2. Features
  3. Usability
  4. Performance
  5. Distributable Size
I am not saying to sacrifice any of those features, but it is a fact that there is a finite amount of time and an infinite amount of improvements that could be done for any application. You have to choose which to implement or you will never release.

Most software projects fail. In fact, the Standish group reports that over 80% of projects are unsuccessful either because they are over budget, late, missing function, or a combination. Moreover, 30% of software projects are so poorly executed that they are canceled before completion.

So it is realistic to realize you cannot implement every possible feature in a software project. Trying to implement every feature means your will over run your budget and your time, and if you spend too much time up front reducing the size of the distributable and squeezing extra performance out of it then you won't have time to implement your features.

If you must choose then I recommend you choose in that order:

  1. Make sure your program is secure (which is a bigger issue depending on the type of project)
  2. Add additional features (and make the features usable)
  3. Improve the performance
  4. Reduce the size of the executable (if you like)
That is a rough guideline. It never makes sense to try to optimize the performance of your application too early on. Additionally you should start with a secure application before adding more features. Trying to secure an application that has already gotten out of hand is a problem waiting to happen (Microsoft's security mandate being a case in point), and the last of your worries should be the size of your executable.

Now if your application only has 2 features, and there is no possible way for it to cause a security exploit (trying to think of an example, but I am having no luck), it is imperative that it fits on a 20K embedded memory chip and run in real time, then you might invert this order.

But in that situation the size and speed are actually requirements, and if you evaluated it to be sure it cannot cause a security exploit then you did in fact follow the priorities in order.

In the end, you can write your software however you want. It worked for Microsoft and Bill Gates got rich for putting flashy features (bells and whistles that most people don't find useful) first and security last. In fact it would look like that is their business model for IE (you need to upgrade your OS to have a secure browser). Oh, and did we mention the browser is free?

The Programmer's File Format Collection

If you ever need to figure out the internals of a specific file format don't forget to turn to The Programmer's File Format Collection at www.Wotsit.org. It is a great resource!

Tuesday, February 22, 2005

O/R Mappers and Code Generators

This month we saw Randy's demo of CodeSmith, now Richard has compiled a list of O/R Mappers and Code Generators

Saturday, February 19, 2005

5 GB of Traffic

1&1 InternetI am surprised. I am checking my email tonight and one informed me that I am at 90% of my 5 GB traffic limit for the month and that I need to update my CC information in case I go over so they don't shut me down. I have a great package from 1&1 Internet, but I didn't expect I would ever exceed the 5 GB limit. There are no serious downloads here, and best I can tell that all that traffic came from page loads. On Wednesday the 9th there were 28,587 page views (not hits, but pages). Not quite my daily record, but a pretty big day as of late.

If anyone is interested in some hosting or domain registration check out 1&1 using the link here and if you buy something they will help offset my bandwidth cost. Thanks!

Wednesday, February 16, 2005

Delphi vs. MSDN

Beyond what Googlefight says, I find it interesting how many people compare Delphi Architect to MSDN Universal based on price. The thing they always neglect to consider is Microsoft doesn't sell you MSDN Universal for $2,799.oo, then license it to your for ONE YEAR. Next year you need to buy it again for $2,299.00 (upgrade price) if you want to keep developing software.

I know developers who are still developing major applications in Delphi 3. While I wouldn't recommend that, it is nice to know that once you buy the software you can keep using it as long as you want. It doesn't expire.

Sure, with MSDN you might get an upgrade if Microsoft released a new version of Visual Studio during your subscription. They release a new version every two years or so, which gives you pretty good odds of an upgrade in two years. Your total cost is $5,098.00 for two years of development (one new user + one upgrade).

Now if you purchased Delphi Architect for $3,490.00 and then 1 year Software Assurance (which gives you free upgrades for a year) for $1,047.00, brining your total up to only $4,537.00, and I have known people to actually qualify for TWO upgrades (a total of THREE different version of Delphi) with one year of software assurance. And the great thing is after the software assurance runs out, they can keep using their Delphi for years to come. If you do want to keep upgrading though, you just upgrade your Software Assurance for another year.

Of course everyone knows that a straight comparison between Delphi Architect and Visual Studio isn't a fair comparison since Delphi comes with so many more components, tools and libraries. This makes the TCO for Delphi a much better investment over the long run then anything Microsoft has to offer for development tools.

Years Delphi Delphi
+ Software Assurance
MSDN
1 $3,490.00 $4,537.00 $2,799.oo
2 $3,490.00 $4,537.00 $5,098.00
3 $3,490.00 $5,584.00 $7,394.00
4 $3,490.00 $6,631.00 $9,693.00
5 $3,490.00 $7,678.00 $11,992.00
6 $3,490.00 $8,725.00 $14,291.00

Talk about a huge savings! In 6 years you save $5,566.00 buying Delphi with Software Assurance over buying MSDN. In that same 6 years you get aproximately 6 different versions of Delphi or 3 versions of Visual Studio, and if you wanted to stop paying for Delphi you could, and keep using all 6 versions for as long as you want.

If you want to save even more then take a look at Borland's Technology Partner for Free vs. Microsoft's Empower Program for $375 (2 year limit) for even greater savings!

Granted this doesn't take any of the technical advantages of Delphi into account.

NOTE: Prices are from the manufactures web site and accurate as of this writing. Resellers may offer discounts. Table assumes starting with new user licenses.

Delphi vs. Visual Studio

Who would win in a fight between Delphi and Visual Studio? Google Fight indicates that Delphi would win by a large margin. C# does even worse, and even the popular Visual Basic is no match for the power of Delphi.

Monday, February 14, 2005

More on Delphi's 10th Birthday

Here is some more links for your Delphi birthday celebration. . .

Happy 10th Birthday Delphi

Just in case you didn't know, today is Delphi's 10th Birthday. It was released February 14th, 1995 with support for 16-bit applications for Windows 3.11. Delphi has come a really long way since then.

Check out an interview with Anders Hjelsberg, Gary Whizin, and Zack Urlocker about the Creation of Delphi on BDNradio.

If you are not lucky enough to use Delphi in your daily work, take some time to pull it out and use it for a few minutes. You can even download the trial if you don't have it installed.

Schemaball

Matt just sent me a link for Schemaball, it is a MySQL database schema viewer. It creates a circle with the names of the various tables around the edge, radiating in a sun-burst. Then inside the circle it draws lines between the tables showing foreign key relationships. Looks like it could be really useful for understanding a complex data structure.

It is written in Perl and licensed under the GPL. There is a fairly lengthy requirements lists beyond Perl 5.005. You may need to know a few things about Perl before you get it to work. It does look like it supports generic SQL databases besides MySQL.

Sunday, February 13, 2005

Interview with Anders Hejlsberg

.NET Developers Journel has an interesting interview with Anders Hejlsberg (requires a subscription). It is a very interesting read. The very first question is about Borland's move to .NET with Delphi and then later on the interviewer asks if Anders is aware of any Pascal implementations for .NET. He didn't do his homework very well on that one.

There is talk of C# 2.0, generics, anonymous methods and what the difference between Events and Delegates is.

Update: Afrer posting this they changed the interview to only be available to subscribers. Maybe it will open up to the general public soon. Here are a couple older interviews in the mean time: The Father of C# Improves His Brainchild and A Talk with the Father of C#.

Friday, February 11, 2005

Apprentice Style Challenge

I am sure you all know that I am pretty much always on the topic of programming even when not posting to this blog. I hope you will excuse this exception and take advantage of this opportunity.

My wife, Dawn McKeeth, is at a business training workshop this week. They are having a The Apprentice style challenge. She is on a team of 5 people trying to sell the most copies of a soon to be released book "Secrets of the Millionaire Mind" by Noon Pacific time Today (2/11/2005). The author has agreed to donate all the royalties to the Tsunami Relief Fund. Act fast to take advantage of this offer and help her win the competition.

As a prerelease book I have not read it, but I have read another book by the same author, and attended some of his workshops. I am confident in saying this book, and the accompanying bonus seminar will change your life. This is an incredible deal for all that you will get, both tangibly and otherwise.

<snip>

Update: Dawn and her team sold 75 books, which turned out to be pretty good comparitively. It of course was a great learning experience. Thanks to everyone who helped her out! If you still want a copy of the book head over to Amazon.

Tuesday, February 08, 2005

Shipping Windows Forms Source for .NET Framework 2.0

Thanks to Scoble for the tip about Shawn Burke wanting to ship Windows Forms source for .NET Framework 2.0. He was soliciting comments, and has 99 as of my post. He acknowledged that people are already able to reverse engineer and get the code, but the issue is the comments. Not so much that they are secret, but that they are not fit for public consumption.

I know the lack of code has been a huge complaint about the .NET framework. This is especially true of the Delphi crowd since Borland spoiled us with the full VCL source code.