Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I currently write web apps using asp.net web forms and getting my company to move to another technology is like [insert funny line here]. I would really like to start writing apps using MVC, but they fear any type of change. How is the best way to convince/ease them into using MVC? I guess this can go for moving to any new technology.

Update

Decided to go the rogue developer route and just started using it. I recreated a small app in MVC and learned the ropes that way, and moved up from there.

share|improve this question

migrated from stackoverflow.com May 6 '11 at 20:06

This question came from our site for professional and enthusiast programmers.

1  
What kind of company is it? And do they really care what technology you use to provide what they ask for? Or are you talking about a rewrite? –  pdr May 6 '11 at 20:10
    
It's a state agency, and that's a good question. I'm not sure, I wouldn't think they would care as long as it got the job done. But this would require other developers to learn a new way of writing web applications and that is a money to them. –  guanome May 6 '11 at 20:13
5  
So your question should really be "how do I convince the other developers to back my cause?" –  pdr May 6 '11 at 20:18
1  
Are you sure MVC is better for your situation? It's not always the best choice for a project. –  Todd Smith May 6 '11 at 20:18
    
I guess I need them on board before I can get management on board. –  guanome May 6 '11 at 20:18

6 Answers 6

up vote 8 down vote accepted

I can think of two methods that could work:

  1. The "Right" way: put together a business case, and convince your manager -- if you can suggest financial or time/speed (which is also financial) benefits, like "easier to maintain due to better separation of concerns, so support turnaround time will be quicker", or "newer technology, so it will have a longer support life", that's helpful. At the end of the day, there has to be a financial benefit to your company in order for your upper management to formally approve a change to technology.

  2. Just do it. If you are given a task to write a simple maintenance site/utility, do it in MVC, and prove the advantages. The success of this approach will vary based on your position and company, but in my observation, more often than not, this is how new technologies get adopted and gain traction -- people just start using them, and pretty soon half the websites in the enterprise are built on a newer platform, and it has become the standard.

share|improve this answer
    
You're a pure genius. I like both methods. –  guanome May 6 '11 at 20:15
    
1. Certainly. 2. Not if the rest of the team are resistant, which is why I asked that question. –  pdr May 6 '11 at 20:24
    
@pdr I'm not dependent on the rest of the team to make an application, so I could still do 2 on my own if I had to. –  guanome May 6 '11 at 20:28
    
@guanome - Fair enough, but be very careful. If it goes wrong (and there is a learning curve so dev will be slower first time, or you might be off on holiday and someone else has to maintain your app), you'll be all alone. –  pdr May 6 '11 at 20:33
    
@pdr I'm thinking a small internal app rewrite, nothing too crazy. –  guanome May 6 '11 at 20:39

MVC is a big mind shift for people who are used to web forms. If feels like going back to ASP classic in some ways. Our CIO got us all in a room and gave us quick "hello world" example and then he gave us a little work time to play with it. We ran through the Nerd Dinner example. We all had to really play with it to understand the benefits. We use it a lot now. We find that is it great for small projects or ones that use lots of javascript/jquery.

share|improve this answer
1  
Do you still use web forms? –  guanome May 6 '11 at 20:17
1  
"We find that is it great for small projects" - I fail to see how the benefits of having an inherent design pattern, better testability, and doing away with a leaky abstraction could be better/worse based on the size of a project. Please explain. –  Brook May 6 '11 at 20:56
    
We still use web forms because for our lager projects we build on top of a CMS that is all web forms. But nothing we start new from scratch is web forms. –  nbushnell May 6 '11 at 21:53

Show them how much time/money they could save.

Do a mock in the old way, then do one doing MVC. Record how long it took to do each of them.

Then put together some sample "change requests". Make the changes in both versions and track how long it took for both of them.

You should see a significant decrease in time it took to make the changes to the MVC app compared to the old way of doing things.

They may not understand MVC, but they should understand that Time = Money

share|improve this answer

There are enough answers out here. Just adding some quick points.

When you're working with large projects which has been evolved over years will always have this problem in adopting new technologies. The reason why, it simply works.

One of my friends worked with a client who wanted to port an image processing algorithm which whttp://programmers.stackexchange.com/questions/74351/how-can-i-convince-my-company-to-move-to-mvcas written in Unix/C to Windows/C# .NET. The porting was quite easy and he adopted the best use of the modern language. The optimization life was terrible where you don't have much controls over the ready-made framework classes implemented for a general purpose implementation.

I have seen people adopted ASP.NET just in terms to improve productivity and great support from developers across web. But if you see the large implementations, arguably people tend to adopt open source technologies than Microsoft technology.

If it's a kind of new project I'd say you must carefully choose the technology. Working with legacy products, I have realized that there are certain limitations in upgrading to the latest technology. There are still code being run with Visual C++ 6.0 though Microsoft stopped the support. There are people who still have deployed the software in Windows 2000, just for the reason that the cost for an upgrade will be too much. I know vendors paying millions still to Microsoft to get the critical updates and patches.

The best example would be a hospital system which has the data of the patient for years. Irrelevant to the technical advancement, there are certain things come in play like data reliability, time, security etc. It might take years to migrate old data to new platform and the cost of doing something new with a large user should always be careful.

You're problem may not be relevant with the situations I have explained above but I was showing a different perspective of embracing new techonologies.

share|improve this answer

On the other hand, why should your company care if you do it in MVC /ASP .Net, or what ever. You are the developer, it is up to you and your team to decide that is the best technology to use.

Selling it to your team is a different story though. The way to do this is to educate them. Try doing some demos, coding sessions.

And even better, Just do it as the other poster said.

share|improve this answer
2  
nonsense. What if the OP asked "I want to use Ruby, or Python" instead? Companies need maintenance of existing stuff, writing every project in a new language/framework/whatever is a recipe for massive costs –  gbjbaanb May 6 '11 at 22:49
    
If it was Ruby or Python, thats a different issue. It's not a huge jump if you have to choose something that is already in the set of tools you use. There is a balance between new tools and maintenance, but the team is best suited to make those choices, not management. Costs increase when old technologies are used too. It costs more to maintain an old code base. It is much cheaper to keep upgrading to the latest and greatest when it is available. Smaller incremental upgrades are much better than one big bang shift towards a new technology. –  Hibri May 7 '11 at 8:16
1  
Doing it your way may be seen as going rouge or being a cowboy developer. While I agree that management shouldn't really be involved in design discussions, the development team should all be willing to accept the change and support the new development. –  Chris Sep 23 '11 at 21:19

One year ago, I had exactly the same problem, after months of thinking and debating, finally I found a solution. I declared a simple project consisting of 3 or 4 pages, containing a sample of every common issue in web development. Like CRUD, authentication/authorization, AJAX-enabled features, etc. and implemented it in 2 days, then I showed it.

They really liked the performance difference, no ViewState, simplicity and testablity, etc. After that, they accepted and started using ASP MVC till now. I suggest you do the same and you succeed ;)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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