So I have developed an order system and order tracking for a organisation. Currently it is web based with plans to develop a mobile application and a desktop application.

The business model is an exclusive membership where you sign up to be able to distribute their products at a cheaper price than other competitors.

EDIT: To clarify its currently being developed using Yii Framework for PHP, but I have a basic stripped down version in PHP using no framework. It's still in a development environment, no code is live yet.


What (in your opinion or the industries opinion) the most effective way to distribute this application to the members?

Possibly in each of the stages of development (such as how to distribute a web app, desktop app or mobile app).


Package your application up to be distributed easily, either in a fancy installer, a WAR/JAR/ZIP file, or even on a CD. The key is to distribute documentation along with your packaged application that will include an installation guide and a user guide that instruct users on how to install and use your application. Make it as easy as possible to get up and running and be sure to include any troubleshooting scenarios and advice that might come in handy, unless you want to handle repeated support calls from your customers.

  • I was thinking a fancy installer, I don't really want to take 93875932845 calls a day on how to extract the folder etc, just a simple click next to install... What language would do about doing that? I could just write a batch file, probably... – MattyD Oct 26 '11 at 0:56
  • 1
    @MattyD If you want fancy installer for Windows, then have a look at Inno Setup. With a bit of effort to create config file and perhaps some scripting you will get a typical "feel" of Windows Installer. – Jacek Prucia Oct 26 '11 at 7:13

You should use the default way of deploying applications for each device.

  • If you have a web application, deploy it as a WAR.
  • If you have an iphone app, bring it to the AppStore.
  • If you have a desktop application, use MSI+download or DEB+apt-get or RPM+yast or...

And make sure that you create the most simple installation procedure you can think of.

I'd love to agree with the answer of @Bernard but I think documentation is a waste of time for end users. The default way is download+double click and then skip through the install wizard. I think the MSI should have proper default settings and let the user complete the install with 1 click, instead of going through pages and pages of settings which the end user will never change nor read.

  • It really depends on how complex the application is. It might be simple enough to install, but tricky to use if it's rich in functionality. This is where documentation comes in handy, at least for me. It could just be a link to a web site instead of being bundled with the installation, but users must have somewhere to go to for support. – Bernard Oct 26 '11 at 13:30
  • I'd prefer instant help inside the application. Think tooltip or a lefthand sidebar with readable little help snippets. Nobody reads manuals anymore unless you're a really tech-savvy person (or a sysadmin having to install something as complex as Documentum with several databases and webservers with special configuration options). And even then, I'd prefer a heavily commented configuration file instead of a written manual. – cringe Oct 27 '11 at 5:32
  • To add something more constructive: I think the place for written documentation is in the form of user guides and/or tutorials. So if I want to know how to do action X in application Y, there should be a story-like text guiding me through all the hoops. But whenever I see a simple description of the buttons and functions, I instantly close that manual. – cringe Oct 27 '11 at 5:34

This depends on your customers and the people who are going to install the application. If you can assume that mostly system administrators (or at least software engineers) are going to install the application, than a ZIP is probably enough. The ZIP should contain all necessary files to install and run the application (also documentation).

You can also distribute your application in form of an RPM or DEB file. This would even allow simpler installation and you get more control over what is done in the standard installation process.

You can take a look at the installers which are offered by Jenkins (see the right sidebar) to get an idea about good distribution and installation techniques.

Possibly in each of the stages of development (such as how to distribute a web app, desktop app or mobile app).

Automate the process of creating your distribution. This reduces risk of errors and saves you time in the end. You might want to read up on Continuous Delivery.

  • I don't think I would need to offer an RPM or a DEB file as the user base would be Windows machines – MattyD Oct 26 '11 at 21:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.