A single four year project would be a little harsh... once you realize what you've done wrong, you'd be to too deep in it to amend your ways anymore. Give them a chance to start from scratch a few times...
Setting a reasonable pace with the project could be tricky, but I think it would be very beneficial.
Internet time does not justify poor program design.