database design - Implementing large system changes -


if you're familiar phrase "build 1 throw away", well, seem have done that; we’re reaching limits of version 1 of our online app. it's time clean things by:

  • re-organizing code , ui
  • unifying ui processes
  • adding more functionality
  • building future
  • modifying our database structure handle of above

what's best way make transition happen?

we want avoid throwing of our users on new system (once it's finished) ... they'd freak out , couldn't handle call load. our users run gamut, technically proficient used-to-write-software types, don't know html is.

should start new "installation" of our system , move users on gradually after ensure new design sufficiently solves enough of problems version 1?

should (somehow) change each module of our system incrementally, , phase? may difficult because database layout change, resulting in having tweak "core code" , code several surrounding modules.

is common have set of trusted, patient, "beta tester" clients using cutting edge version of app? (the goal here feedback , test bugs on new system)

any other advice? first-hand experience?

the answer, i'm afraid, depends. depends on kind of application , kind of users have. without knowing system , scope of changes in version, difficult offer answer.

that said, there rules of thumb.

firstly, avoid big bang launch. launch of system going have problems. industry littered projects people thought bang-bang launch great idea, teething problems bring launch knees. cuil recent high-profile causality of big-bang launch.

in order make teething problems manageable, need work small numbers of users initially, ratchet number of users.

secondly, thing must absolutely must positively put user first. user should have least amount of work possible use v2 of system. ideal amount of work zero.

this means if pick migrate users 1 system other, you responsible making sure data , settings migrated. example, don't stupid telling user must use v1 records before 12/09/2008 , v2 records after.

the point of releasing v2 should making users' life easier, not making needlessly more difficult.

thirdly, have beta program. applies intranet applications. developing application newton-raphson's method finding root of polynomial. make guess of user wants, deliver user, user provides feedback , surely each iteration takes closer solution problem.

a beta program find root faster foisting new versions on people without time them comment on changes. betas users on-board earlier , make them feel included in process; importance of can not stress enough.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -