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 have a team of skilled C# developers with vast experience in creating ASP.NET MVC applications. We will soon be starting a new big web site project based on the Drupal platform. My developers do not have any experience in Drupal or PHP and I want to make the transition as quickly and effective as possible.

We decided to make this decision based on two factors:

  1. In my organization there are a couple of teams competing on doing this project. None of the other teams has experience in PHP or Drupal, and I truly believe that my team would do it the best, whether it's ASP.NET or Drupal.
  2. One of the requirements from higher management was that we won't build something from scratch, but use an existing foundation. Many of the requirements are available in plugins/modules for the various CMS.

I know this is not an ideal environment, but it's a given state and I have to make the best out of it. None of the .NET Framework based CMS supported all of our requirements. Since my team is dynamic in nature, I believe it can adapt to working with Drupal.

Hiring other people is not an option, and sending them to a course will take too much time. I thought about dedicating a week in which each developer will study a specific subject and then will pass it on to the team.

Any suggestions on how you would do it?

share|improve this question
22  
I'm curious: how do the developers feel about this? –  svick Mar 2 '12 at 14:12
22  
It's unrealistic that you'll meet the project deadline or do any quality code if you force C# developers to work with Drupal + PHP. First off, they have to learn PHP and then conform to Drupal. And using Drupal in a higher scale other than some small website is a nightmare in itself. Basically, you're in for a disaster. I really see no reason why'd you move from C#/ASP.NET to Drupal+PHP if you have a team that's already familiar with C#. –  N.B. Mar 2 '12 at 14:16
16  
This situation is a typical case where saying 'No' could save millions. –  Emmad Kareem Mar 2 '12 at 15:46
10  
How much time have you allotted for replacing the developers who say 'f this, I'm out' because of this decision? –  Jetti Mar 2 '12 at 17:47
2  
I can't comment because I am going to shed a few cubic miles of tears about the fate of your developers... –  ThomasX Mar 5 '12 at 8:33
show 7 more comments

8 Answers 8

I would not want to be a developer on this team/on this project, it has the makings of a disaster (seriously). This sounds like a typical management question. So, you're changing your developers skillset, you don't want to get them any training and you also don't want to hire an architect with experience.

  1. You will have growing pains in this project.
  2. You will end up with code (hopefully) that will have to be retooled later after they figure out the "gotchas" that will come up.

In my opinion, someone on the project has to have enough knowledge of the language to see the big picture. Having each developer try learn one subset without knowing how they all fit together is going to get you in trouble eventually. Someone needs to have an understanding of how everything integrates and that isn't going to come in a week.

Best of luck. :p

share|improve this answer
add comment

To familiarize in a particular language to code efficiently takes a lot of time and effort. Without proper guidance during transition, an application would be a maintenance nightmare and might not work to your advantage on the long run.

That said, I suggest you have an experienced PHP developer and then work with your team to be guided by the experienced developer on the best practices in PHP and make a wise and gradual shift.

On a personal note, I am working as a C# developer for nearly 4 years now and I probably would be thinking a 100 times before I make the shift.

Good luck!

share|improve this answer
add comment

I am assuming that your “skilled” C# developers are not very much in demand by other companies, maybe you are based somewhere with very few other jobs, or maybe your developers are just not skilled.

As a skilled and experienced c# developer, if I was told that I was going to be forced to move to Drupal or PHP I would be making use of http://careers.stackoverflow.com/

If your developers were keen to learn PHP they would have already started to do so in their own time, the fact they have not gained experience in Drupal or PHP of their own backs, must tell you how keen they are on the move!

share|improve this answer
add comment

Do you think your team is able to perform a professional php project without any php knowledges? For sure PHP is easy going, it hasnt got the "restrictions" like asp.net or j2ee... (for sure the restrictions are the savety of this languas).

As you should know, PHP has many special facts which are not existing in C# or J2EE. It is easy to learn, but as a professional developer you have to know alot about how you can develop secure applications.

For sure if you just have an Drupal project with only design customization and no widgets, no plugins etc. pp. it could work, maybe. But thats a high risk.

I would prefer to give your team the chance to learn PHP for more than one week. Get as much a literatur as possible and teach and train your team as fast as you can. But having a project in a development language no one knows in such a short time is often called "suicide".

Good literature for your problem could be Development for Drupal and Professional PHP Development or a book about pattern for php. There are lot of good books available. Look into the development guide for drupal. So you have alot to learn :-)

Best wishes.

share|improve this answer
add comment

As a .net developer who actually spent a few months learning php+Drupal, my answer is don't do this.

Use dot net nuke or something similar instead. Sure is not as good as Drupal, but man it's going to save you months of learning.

share|improve this answer
add comment

As you have no doubt realised from all the other answers, forcing developers to make such a switch, especially on a project that sounds like it is going to be a highly visible, high pressure nightmare is not going to be easy.

My advice would be to ask the developers who would like the opportunity to work on the project, rather than force them. Although you will almost definitely end up with a much smaller number of developers working on the project, at least they will be on the project by choice and, as such, will be much more motivated to make it a success. Also, a smaller team will be easier to manage and generally more efficient, so you will get more bang for your buck. Sure, the project may, on paper, look like it is going to take longer than if you put all your developers on it, but that's only because the version of the plan that shows every single developer working in parallel on tasks that magically finish at the exact right times to ensure the earliest possible delivery date is a fairy tale. You should also receive extra kudos from upper management if you submit a proposal that uses significantly less resources than what the other teams are proposing.

Also, assuming you don't want to use any of the out-of-the-box themes, you will need a reasonable amount of web design capability and some very capable CSS developers. I mention this only because Drupal theming can be a bit more difficult than the HTML/CSS that goes into a regular web app. The good news is that there is tons of great documentation and some excellent tutorials available on customizing Drupal.

share|improve this answer
add comment

The mere fact that you are asking this question here indicates that you either haven't spoken with your team about this, or you have and they have indicated misgivings. Either way, you can throw any number of courses or training seminars at your team, if they are not on board, they will not support you and you will fail. Remember, they started working for you for a reason. Realize that you are, potentially, altering a lot of the parameters that made them choose to come work for you in the first place.

Sit down with your team, figure out together how to go about this transition and if it's feasible. Figure out how to share credit as well. Your post here talks a lot about you and how you need to impress management and how your developers should me made to fall in line. If this is to get done, it will have to be a group effort so start from there.

You can force your team to your will up to a point (that's why they call it work, you get paid to do as you're told). However, eventually people will either scale down to producing the bare minimum to get paid, or they will simply quit. Either one of which will surely doom your project to failure.

share|improve this answer
add comment

In the main I agree with what everyone has said, but there are some practical points which may help you actually deliver something.

Your approach of having each developer take an area is not too bad. Incorporate into that a lot of prototyping. Create a list of tasks, something like the following and farm them out. Some are dependent on others, but it's just an example.

  1. Install PHP and Drupal.
  2. Create a build and deployment process
  3. Configure a server and local developer instances
  4. Build a plug in for Drupal that says "Hello World"
  5. Build a PHP page which accesses data in a database
  6. Set up the team as Drupal users, configure a Drupal workflow or similar.

and so on.

When you actually start composing the web site, borrow from Agile and focus on YAGNI, short sprints and visible progress. Aim to develop stuff in a way that makes it easy(ier) to refactor and replace.

Visible progress is essential here. Your goal is a working web site, so breaking tasks down into visible components, "Change page to do this" means you get to see progress and won't be thrown off course by developers working hard on something unrelated to the critical path.

share|improve this answer
add comment

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.