Newbies Guide to Making Software by Michael Rasmussen and Jason Tarasi - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Step 2: How to Make Your Program – Or Get It Made For You

The most “vexing” thing for many would-be software sellers is: comprehending how to actually “make” the software. The good news is that in today’s world there are a number of good choices for development, and even better, there are thousands (maybe hundreds of thousands) of talented programmers who you can hire for very little money.

Quality programming is now within reach of everyone because of these “developments,” and you don’t even need to know how to program even slightly. Did you know that Leo Fender, who developed the first practical electric guitar, didn’t know how to play a note?

Major Development Languages and Tools

You don’t need to know what language is the most appropriate for your particular software and you certainly don’t need to know how to do any programming yourself, but you should be aware of the basic popular languages and software tools – if only so you can make intelligent choices when working with programmers and can “talk the talk” of programming even if you can’t, and don’t need to, walk the walk so to speak.

There are basically 20 major active programming languages in the world today. Not all of them are equally practical for every application but if you’re familiar with this list you’ll be familiar with almost every general concept of language selection.

While about a third of the following are very unlikely to be used in your development, we thought taking a couple of pages to touch on them would be time well spent. The “top 20” list below comes from a November 2005 market study of demand for programmers – meaning all of the following languages have active projects, whether new developments or maintenance.

In order of approximate popularity by hiring of programmers, and with a quick comment on typical uses for each, and the relative expense of development in each based on what a typical contract programmer might cost:

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved. Java

 

Java is an object-oriented language developed by Sun Microsystems in the early 90s and intended as a replacement to C++.

Java is currently more popular than C/C++ mainly because of the percentage of new application development that is Web oriented, Java having been developed especially for online use. Anytime you see a page with “JSP” in its name that is a page being served via Java.

Java is one of four major contenders if you are planning on building online applications as opposed to desktop software or system utilities – the others being PHP and Cold Fusion, as well as for some things, Perl.

(Note that JavaScript has nothing to do with Java, just to confuse everyone a little more!)

 

Java programmers are readily available and there are more of them every day.

 

C

Developed in the early 70s by Bell Labs and consistently the most popular microcomputer language for the last 25 years or more, C is powerful, simple, and works well for both system software (for which is was originally designed) and custom application development.

There are some technical limits to C – such as lacking object support – that make other languages including C++ more flexible for certain kinds of applications.

C also “allows” programming that other more modern programming languages will stop when compiling, which means C will let bad routines get through to “final” versions of software if the programmer is not careful.

C programmers are extremely easy to find and accordingly not that expensive.

 

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

 

C++

Addressing many of the limits of C while remaining almost (but not quite) fully compatible with it, C++ adds classes, templates, namespaces and a host of other features.

Also it is easy to find people with these skills and relatively inexpensive.

 

PHP

PHP is an open source object-oriented language for developing certain applications, Web pages, and in a science-fiction-is-now-reality world, for developing other software itself.

“PHP” technically stands for Personal Home Page which gives an indication of what the developers had in mind, but PHP is now used much more broadly than that, especially given its easy compatibility with every major database language and many other programming languages as well as working on every major operating system including Windows, Unix and the Mac.

Developers are finding more and more cool ways to use PHP every day.

 

PHP is a hot technology so it is in demand but it is also fairly easy to learn and the licensing is less complex and expensive than many other development tools.

 

Visual Basic

VB is a major Microsoft update to BASIC, which was the original primary microcomputer language in the 70s. VB adds rapid development, graphical user interfaces, database compatibility and a host of other improvements to BASIC.

Being a Microsoft product ensures its ubiquity and popularity; indeed there are about a dozen specialized versions of VB already in circulation.

The greatest strength and weakness of VB is its deliberate simplicity. This makes developing in VB fairly fast and easy but some of the programming community looks at it with disdain – not that you should care if it meets your needs! If you see Web pages with “ASP” in the name, those pages are being generated from a VBScript based Web site.

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

 

VB programmers are easy to find, and a computer literate person can probably do some development himself in VB without too much trouble.

 

Perl

 

Perl was developed by Larry Wall and is often called the “glue of the Web” since almost any CGI script and many other features of Websites are the result of Perl.

Perl is not typically a language that would be used for an entire application but for elements of that application and how it interacts, for example, with Web pages, although (file under it’s a small world after all) PHP was originally written in Perl.

Perl has very powerful data handling capabilities and is popular in financial applications for that reason.
Perl programmers are relatively more expensive than C/C++/VB programmers.

C#

“C Sharp” (not “C Pound Sign”) is an object-oriented language developed by Microsoft as part of the .Net initiative, which makes it appropriate for online applications and those intended to use standard .Net protocols.

Based on elements of Java and C++, we have not seen that many C# programmers around, so in the short term expect relatively higher rates from them if you decide to use this language for your software.

Python

 

Python is an open-source language developed in 1990 and very similar in features and functions to Perl.

 

The last major update to Python was in September 2005.

 

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

 

JavaScript

JavaScipt is an object-based scripting language developed by Nestcape, almost exclusively for Web site development but it has other applications. JavaScript remains extremely popular even though it has not had a major update in a couple of years.

JavaScipt programmers are plentiful!

 

Delphi

Developed by Borland and originally a Windows-only version of Pascal with object orientation, Delphi has been further extended to work with both UNIX and Microsoft .net.

SAS

 

Now we have to get a little technical – SAS is a fourth generation databaseoriented programming language. In this regard it is very similar to SQL.

Ironically this format of language makes user programming easier than many others (you could start building a database in SAS or SQL with a Dummies book and a couple of hours) but it has limited use. SAS is primarily geared towards mainframes. A Windows version is still supported, by the Mac is not.

Unless you’re planning on complex database products you probably won’t need SAS.

 

PL/SQL

 

The other – and far more popular – fourth gen database-oriented language is SQL, or “Structured Query Language.”

Having a long history going back to the mid 70s, SQL has many database applications and is licensed by ANSI/ISO which makes it excellent for use in any situation with those certifications are helpful (like in many industrial situations). If you are thinking of a relational data component to your software, you’ll want to do some more research on SQL.

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

 

VB.net

 

The version of Visual Basic for the .Net platform standard.

 

Lisp

 

Lisp – short for “List processing” is the second oldest standard language in real use today, having been developed in 1958.

 

COBOL

COBOL stands for “common business oriented language” and is a thirdgeneration programming language that remains in use where it was intended – large administrative systems for big companies and government agencies.

You’re unlikely to care about COBOL unless you go after that market.

 

Ada

Developed in the 70s and most recently updated in 1995. Used almost exclusively in military applications and military-like applications elsewhere, such as in flight-control systems.

Pascal

 

Developed in 1970, Pascal was, among other things, the basis for the original Macintosh operating system.

 

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

 

ABAP

Developed by SAP for use with its own software platform, ABAP has gone through a couple of evolutions and is currently the key to developing SAP applications for the Web via NetWeaver.

If your software is intended to work with SAP, you will need ABAP programmers, who are plentiful but very expensive ($1000/day is not uncommon). If you are not working with SAP, you’ll never need to worry about ABAP.

Cold Fusion

Now an Adobe product (coming to them from Macromedia who acquired it from original developers the Allaire brothers), Cold Fusion is a very popular tag-based middleware development language used exclusively for websites and web applications.

Cold Fusion can be made to do a wide variety of things from a software standpoint, and anyone who is comfortable with HTML development will find Cold Fusion pretty easy to learn.

Cold Fusion programmers are plentiful and as the learning curve is very low, pricing should be competitive.

 

Fortran

Last, and oldest, of the programming languages Fortran was developed in the mid 1950s by IBM for use in scientific computing, where it remains popular even now. Originally a procedural language, an object-oriented version of Fortran was recently released.

Finding Programming Resources

 

Once you have an idea of what you want your software to do and what it might be “made of” you can start looking for programming resources.

The Internet makes this wonderfully easy. We recommend starting with one of the major “freelance” Websites, which offer several advantages over the open contract market or local body shops:

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

• Registration eliminates some low-end resources
• Feedback systems create positive work incentives and make picking resources easier
• Managed conversations and relationships through a third party add security if desired
• Global resources will respond to your posting(s) allowing you to review them at your convenience
• Much more competitive pricing than in most local markets
• Security of payments

There are dozens of “freelance” websites out there, but there are two that pretty much own the space, and we have used both and can recommend them. These are Elance and Guru.com.

Those sites feature many more than just programming resources. For coders exclusively, we recommend two more sites, Scriptlance and Rentacoder.

 

Elance

Elance ( http://www.elance.com) is a well-established eBay style site that attracts a wide variety of freelancers in technical and other areas. All fees are paid by the vendors, so as a client, the whole experience is free.

A large percentage of the programming resources you will find on Elance are “offshore,” i.e. in India or elsewhere. While we strongly discourage using offshore resources for work like ghostwriting, we encourage you to work with foreign programming resources if their skills are a true match, there is no language barrier, and you are especially focused on keeping costs down.

Guru.com

A newer and in many ways better version of Elance, Guru.com (http://www.guru.com) asks more of its users both on the vendor and buyer sides, has several systems in place to make fraud less likely, and seems to attract a higher caliber of vendor as well as higher budget and higher quality projects.
If you are looking for developers who can really help spec as well as design and build your software, don’t overlook Guru.com, which is also a great place to look for marketing and other resources you might need once you have the software finished.

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.

 

Rentacoder

Rentacoder, as the name suggests, is a well-established resource for finding highly skilled programmers fast. More geared towards solving specific problems with specific skill sets, we recommend Rentacoder but the novice developer may find it less “user friendly” than some of the other sites. With favorable coverage in The Wall Street Journal and elsewhere, we think Rentacoder is a good reliable resource that also, like Guru.com, offers and encourages escrow payments. Rentacoder also offers some good general buying information, much of which can be found here:

http://www.rentacoder.com/RentACoder/SoftwareBuyers/FAQ.asp

 

Scriptlance

Scriptlance features a confusing bare-bones interface
(http://www.scriptlance.com) but offers a programming-only job board that seems to have something of an “insider” feel to it. If the sophistication of the Elance or Guru systems doesn’t appeal to you, this might be a great place to programmer shop.

Custom Software Development Companies

There are plenty of companies you can work with to develop your software from beginning to end – this may be a better than sourcing freelancers, in some situations.

If you do a Google search on “software development” several dozen companies in this field will come up, and with them you can go with a concept and they’ll make it happen – though much less cost-effectively than solo coders, of course. Regardless of where you find your resources, you’ll want to be careful and specific in how you work with them.

© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.
© Copyright 2006 by Michael Rasmussen and Jason Tarasi - All Rights Reserved.