views:

299

answers:

7

We have an integrated system (at least is that what we call it), which consists in a front-to-back-office huge C++/VB/MSSQL software that handle every single aspect of the organization.

Several of our existing customers have been asking if its possible to port it to the web in a sexy web 2.0 fashion, of course it also has great value for us since we would have a nicer, fresh, modern product that would allow us to adopt a SaaS model which we believe is great commercially and would surely open many new doors, so we are not trying to convince the customer that this is not a good idea.

But,is the web a place for such app?

If it is should we go for Webtop (mimic desktop) UI or should we go for standard Web 2.0 37Signals like UI?

Which way in your experience would be better for the presentation of such app, and what tools/languages/technologies would you recommend(if any) in your experience that we would benefit from when designing the chosen model.

Keep in mind that the current desktop software is huge, more than 200 SQL tables, 250 forms and something around 400 different reports.

Any insight, tip or advice will be greatly appreciated.

I thank you all in advance for your time, and apologize for the many-part question squeezed on one very long post.

+5  A: 

I would suggest that you attempt as best you can to provide a typical web 2.0 light approach to your web design.

To start with, I would create a web-based interface to do the most simple, but most commonly used workflow in your application. Have the production version share the database of your current system so it can be a drop-in replacement, used for convenience on a day to day basis.

Remember, power users will open several browser windows so to simulate an application is redundant. A set of wizards that lead you through workflows (add a client say) and status pages (view client details) would be a great starting point. Emulate as much as possible web 2.0 poster children (i.e Twitter) and use their designs as a free starting point.

Don't try to do it all at once, just add a nice web front end to your existing system and gradually get support / usage within the organisation.

If you decide to use Django (i.e develop website in python) it will probably support your database out of the box. Configure your settings to connect to the database (follow the tutorial) then run the "inspectdb" manager command to create a python file describing the 200 tables you have. You can then very easily run SQL queries on the DB without writing any SQL by using the Django model system, all in a python command line.

Tom Leys
I think we will definitely follow your suggestions, not sure about the technology yet but i have already installed django and i will play with it in the weekend, thank you Tom.
OldJim
I look forward to hearing about your successes. Start small, release often!
Tom Leys
+9  A: 

Geez, I hate to "piss in the fan" here ... but your application has a purpose.

Hopefully, it is to make it easier for the people supporting the business of your company to do their work.

None of that purpose is determined by what language / platform you are using. Zero. Zip. None of it.

You can accomplish any feature needed by your business in practically any language / platform available. Really. Some things are easier in one language or another, but your familiarity in one vs. the other will more than make up for the "technological" differences.

Any decision to change the architecture / platform of an existing application that supports your company's business needs to have some major business advantage over the current model to even be considered - and then you need to pick the platform / language that you and the other developers in the company are most familiar with - so that you can add business value quickly and not spend a lot of time "coming up to speed" on unfamiliar technology.

Ron

Ron Savage
I agree when you say that you can accomplish anything in any language/platform, the whole idea behind this part of my question is if anyone has experience with any frameworks, platforms, tools, languages that we would benefit from when designing the "mimic desktop" (webtop?) UI (if chosen), and to your other statement yes there's a major commercial advantage for us behind all this that we believe will add great value to our product, i realize now i was not very happy with the wording and i should have not made a dozen questions inside one post,*mea culpa*, thank you for your input Ron
OldJim
Good points, however there are delivery advantages to a web application, i.e sales people adding clients to your database "on the road" using their iphone.
Tom Leys
+2  A: 

I have actually several customers that use that system and lately some of those customers have been asking if its possible to port it to the web in a sexy web 2.0 fashion.

Well, is it broken, is it difficult to use, is it difficult to deploy updates? Are there any other reasons for converting it to a web app other than "customers have been asking"? If not, why not put the resources to something like making updates to what you have or creating new systems that are needed vs. throwing it all out the window.

Which way in your opinion would be better for us to use, and what tools/languages/technologies would you recommend to accomplish it?

This all depends on the needs of the business. The technology/framework should fit the business requirements and not define them. Like I said, first determine if what you have currently will suffice vs. the investment into building something new.

Marc
Very poor wording on my part Marc, i apologize and thank you for your input.
OldJim
+4  A: 

Having something that is well designed has partly to do with the tools (language, frame work) and the ability to present and work with the information in the system in an easy, productive, and error free way.

The old may system might be old, but it has years of tweaking and hardening so it works.

Anything you consider building on top of it should not include re-writing business logic. Create a new front end that somehow calls all the business logic that currently exists.

Then over time re-factor the back-end to be more appropriate, however that might be in terms of object-oriented or functional design.

There are very few technologies out there that will make your life easier when designing something. Some key ones though, to consider, are ASP.NET MVC, ColdFusion for its Dual .NET/J2EE capacities, and maybe something like Adobe FLEX/AIR. Django is great too from what I hear but I've never used it in depth.

Jas Panesar
+2  A: 

The first and foremost decision should be commercial as I'm sure that porting everything to a new framework would take a lot of time and effort. In other words, just look at all the pros and cons e.g.

Pros:

  • Old technology is more difficult to support (hard to recruit developers interested in it)
  • The customers look at the product as 'tired'
  • Web could potentially offer the product as SaaS

...

Cons:

  • Huge investment - who's paying for it, are the customers really willing to pay for a nice shiny new UI?
  • Investment and training for the existing developers
  • Expect a lot of bugs at first, which will take time to iron out
  • What's gonna happen to all change requests while you're doing the migration? If you decide not to do any changes on your existing system your customers won't be happy. On the other hand, if you cave in you may end up doubling up all this work (implement/test on both systems).
  • Long term productivity - in my (limited) experience, most web frameworks are still less productive for development than the Delphis/MS Accessess from the 90s. It looks like Ruby/Django and such are closing the gap, but I'd say it's still not quite there.
  • Risk of the whole project failing. If you fail to accurately estimate the final effort/duration for this project and you find that after 1 year you haven't even finished 50%, it won't be pretty.

Good luck and don't let other grumpy developers who got burnt many times spoil your zeal ;)

Andrew from NZSG
A very pragmatic P.O.V. All of your cons are somewhat mitigated by doing a gradual implementation of key features side-by-side with the existing implementation. Also, the current system is hardly using "old" technology (C++/VB/SQL).
Tom Leys
@Tom: if you have a very stable system with few ongoing improvements, a slow migration is viable. However, most applications in my experience are continuously subject to new features and improvements. If the migration is happening too slowly you'll never be able to catch up!
Andrew from NZSG
I would see it less as a migration as offering a subset of features on the web. If this subset is well recieved, it offers a great prototype, a training tool for programmers and a good case study to consider a full migration.
Tom Leys
+4  A: 

Have you considered using terminal server? When a lot of people say web, they mean:

Don’t have to install on every PC

Microsoft Application Virtualization (was SoftGrid) is also an option for some customers. (If you are using .NET ClickOnce is also a option that can work well)

In both cases, the end user can see a link on there internet portal and just click on it to lunch your application. However in both cases you need customers IT department to include the support in their standard PC build.

The problems you will have converting an app to the web include.

  • Your current customers will wish you to keep updating the current application while you are doing it.
  • Your current customers will want the web application to be the same the current application.
  • Your new customers will want the web application to be “web like”
  • You will not be creating value for your current customers while doing it, so why should they keep paying their support?
  • It can take years to get your current customers to move onto the web version, so you may have to support both for years to come.
  • A lot of people think “web = free” so you are unlikely to be able to charge more for a web version
  • There are a limited number of good web developers that are both experts in the web and large application development.
  • No one know the best way to development web applications, therefore every programmer you employ will have to learn your way of doing it.

Meanwhile a start-up with no history can create a web application that does half of what yours does a lock quicker and cheaper. They are likely to take the new customers, as they are web only.

It is very hard cope with the second system problem. You may just be better of stopping most new development and milking the income from the current software while you can.

There is a half way house, often you have two groups of users.

  1. Power users that use your application every day and like the current UI.
  2. Occasional users – that only make use of a small setup of the applications once in a while.

In a HR application the Power Users would be the HR department and the occasional users would be an employee wishing to request a holiday. Or the occasional users could be a manger wishing to look at a report.

You could consider providing a web interface just for the occasional users

Ian Ringrose
You made some very good points, you had everything laid out pretty neatly, will help a lot, thank you very much Ian.
OldJim
+1  A: 

My suggestion would be to consult with the business side of your company and create a risk/reward, as well as a cost/benefit analysis and move based upon that.

Technology is "cheap". Ruby, .NET, Python, each of those can be configured into different uses pretty easy. You want to figure out what you're doing before you figure out what tech to use(ie, least amount of config for your specific need).

Paul Nathan
The thing is, before we figure out *what* we will do we have to figure out what we *can* do, that's pretty much the objective of the question.*Can* such huge software reliably live in the web in your opinion?If yes, care to share what design you consider better for it(webtop vs website)?And to abuse of you even further do you have a technology that you think we might benefit from when/if following the chosen design?Thank you for your input Paul.
OldJim
Of course, yes, you can do it(given time and money). I would suggest that for the "typical use profile", you have a web UI, and for the more arcane/power user use profiles, you insist on having a non-webby UI that's built for power users. Technology - I'd suggest the MS stack unless there's a compelling reason otherwise.
Paul Nathan
Really helped us Paul, seems like everyone agrees that a Web UI would be better for a regular user, thank you for your input.
OldJim
Thank you, Jim. Good luck!
Paul Nathan