The right approach for the project planning and estimating would be to go through a professional Software Architecture Phase. During the SA Phase we'll answer all our questions - define business goals and corresponding system requirements, figure out the acceptable parameters, define usability level, create a system architecture and database structure, build a strategy and plan, put together a task plan, make up the time and resource allocation table. Finally having all these pieces on hand we could simply start and finish the project according to the approved schedule. Going this way, we both would know exactly where we're going to and what it costs in terms of time and money. For this research and planning phase we would assign a full time solution architect (and other would help him too) to work in close cooperation with you. At the same time, we would suggest designing a technical layout for all the important interfaces (screens) of the system. That would ensure we are on the same page about every project detail and that might save a lot of time (read budget) in the forthcoming development.
Another alternative and the most cost effective approach in our opinion would be to build the working arrangements around a virtual employment model. That way we would assign several (discussible) full time developers to your project and organize them under strong Project Manager's supervision to work very close to you. Pretty much like having your local team working in your office.
This is a step by step approximation to the required software. We would work and discuss our progress on a daily basis and work out further plans and then keep working mad. This step by step way, apparently, doesn't have any accurate estimation on the budget until the time we've got a clear picture on what is remained.
The biggest advantage of this approach is the full flexibility of changing anything or adding any new ideas during the production phase. We are sure this may be in great demand so it would be a great pity not to implement any spectacular idea since it was not specified in the tech specification. We're going to build something really professional, a commercially successful product so it would be smart to have the necessary flexibility and built the perfect result.
It doesn't make a big sense to describe all the technologies we work with -
from old assembling language to modern web services and .NET. Just to name a
Rational Rose, Microsoft Visio, Together, Power
C/C++, Perl, Visual Basic, Delphi, SQL, XML, VBScript, Clipper, Cold Fusion, ASP/ASP.NET, PHP,
DAO, ActiveX Data Objects (ADO), ActiveX, COM, DCOM, Microsoft Transaction Server
(MTS), Microsoft Message Queing (MSMQ).
C#, VB.NET, Java
Oracle8i, MS SQL, MS Access, PL/SQL, MySQL, Postgresql, Sybase, Informix
.NET, J2EE, Swing, JDK, Win32 API, CORBA, MFC
tools: Visual Cafe 3.0/Age 3.0, Jbuilder 3.0, JDK 1.1, 1.2 , JSDK
servers: IBM WebSphere, iPlanet, BEA WebLogic, Jserv, JBoss, Tomcat
UNIX-based (Linux, Solaris, FreeBSD), Novell NetWare, Windows NT
Design & Interactive:
Macromedia Director, Flash, Action Script, 3DMax, 3D Studio, CorelDraw
WinCE, PalmOS, EPOCH, Symbian OS, JAVA, J2ME, WAP, Bluetooth, 802.11, Wi-Fi, VoIP, SIP, GPRS, 3G