5

We have a IT staff of 5 persons:

  • 1 senior with C and PHP skills.
  • 1 senior with Java and database skills.
  • 1 senior with Flex and Actionscript skills. He get some C# with .Net 2.5 skills, since he followed a training, but he never really used them, so it's not worth much anymore.
  • 1 intern and another incoming in the next days. Both will leave in September.
  • 1 apprentice, which means he's part time in our company and part time in his engineering school, on a 3 months cycle. He just left last week and will be back in June.

All the seniors work in the company since 4 years and are fully committed.

Apart our online photo sharing application, we get a Windows desktop application which makes it possible to burn video DVD with the slideshows made with the online application. It's written with Zinc, an alternative to Adobe AIR, with some Imapi code and FFMpeg.

Currently, this application is a pain for all the team because it's way to buggy due to technical limitations of Zinc. So we want to remake it from scratch in C#, which will allow us to get a much better software.

And here comes the real matter: We cannot afford to hire another senior engineer, and we don't have currently the C# skills in-house.

Here are some solution ideas:

  • contact an IT consulting company to rent us C# experts. I'm not so fond of this solution. I worked in the IT service business, and I know what some of their so called experts are worth...
  • find a freelance C# developer
  • hire a C# expert for a short time contract
  • hire an IT consulting company to do the job

I have to confess none of these really make me happy. What do you think? Any innovative idea?

  • Does it really need to be made in C#? – Johnny Mar 1 '11 at 23:15
  • 3
    Interesting question. Does it relate to project management? – Marcie Mar 2 '11 at 0:27
  • 2
    Of course, it is a project management question! A team not having the skills for a project and looking for solutions to the issue, what else could it be? – Alexis Dufrenoy Mar 2 '11 at 8:19
  • 1
    @Traroth - It seems like this could be a technical management or software management question. But I can also see how it could be a PM question too and understand your point. – jmort253 Mar 4 '11 at 6:10
  • 1
    Offtopic - There is no .NET Framework 2.5 version as you mention in the question. Versions 1, 1.1, 2, 3, 3.5 & 4 are used & available. – mvark Mar 20 '11 at 6:41
7

This sounds like a classic build vs. buy decision. I would recommend getting the team together to write up a functional specification of what your software should look like, what it should do, how it will be installed, and how it will be maintained. Put in a statement of "Preferred development in C# for future flexibility. Proposals for using alternate languages are accepted/not accepted" (your choice).

Then send out an RFP to custom development shops and find out what the price might be to just "buy it". After you have that price then you can decide on build vs. buy. If building is still cheaper, the functional spec will probably still be useful.

Also, make sure you buy the source code and copyright. Lawyers are useful for contracts like this.

  • +1 that is the most structured approach IMHO – AndersK Jul 31 '13 at 7:28
2

Could you leverage the Actionscript and Flex skills and do it in AIR?

As a project management question, I would recommend hiring an expert on a short-term contract. Gives you control, flexibility, the chance to rehire in the future and the potential knowledge transfer of having that person in-house (particularly if people from your team can shadow / pair with them).

2

A couple of wild shots:

  1. Will the interns be in house long enough that if you get a mentor you will get your value back?
    The mentor would have to be a C# expert of course, maybe a freelance contractor part-time (depending how much mentoring is required).

  2. Are the senior developers committed with the right tasks? Could your senior C# do with some mentoring to freshen-up his knowledge and help glue with the interns?

  • I edited the question. Point 2 is interesting, and is worth I give it some thoughts. Problem is: he's currently overloaded and probably can't leave for a training, for example. But if we hire a freelance or something, he could probably acquire the skills, I think. – Alexis Dufrenoy Mar 1 '11 at 23:27
1

If it needs to be done on .NET framework, you can alternate to another programming language.

Look at the .NET framework supported languages table.

According to this table .NET supports Java language, and you have a Java expert in your team.

I'm not sure whether programming Java on .NET framework is feasible. Maybe you should ask this at programmers SE or at stackoverflow.

If the decision of changing the programming language is not possible and you need to solve the lack of skill in your team, I would recommend the following:

For a short term:

  • Hire a freelance C# developer to start the job. (This will be important if you need this DVD burn application fast)
  • Allocate time for meetings with your team and the freelancer, so they can follow-up the development.

For a long term:

  • Allocate time for your senior to build up competence on C#.
  • Provide C# training to your team. (This will be important for maintenance of the application after it is done, better than pay for support)

After sometime, the senior will be able to work with the freelancer making the transition smoother.

  • Well, I though my answer would help. But I can't improve my answer without a comment explaining why it is being down-voted. What in my answer should be discouraged? At Meta there is a question where jmort253 state that a comment should be placed to help the OP or answerer to improve. – Johnny Mar 2 '11 at 11:10
  • The question is not about technical issues, but about project management. Choices have been made, and I'm not here to question them, but to find a solution to get them on track. – Alexis Dufrenoy Mar 10 '11 at 17:54
  • @Traroth: You are right. I lose the question focus. It was not clear to me that some technical modification is not possible since you said "we want to remake it from scratch in C#" I thought it was a possible solution (or workaround) to change the programming language. Was this technical issue is not on discussion, I'll edit my answer to better fit your question. – Johnny Mar 11 '11 at 11:42
  • 1
    @Traroth part of project management is looking at all the options, you can not blame people for poking and prodding to get more info. I don't really like dealing with "just because" type questions.. – Keeno Mar 18 '11 at 17:46
1

Find a summer intern in a university

Rather than hiring a C# expert, it might be worth looking at an alternative of hiring another intern, or hiring a student part-time. If you need it for a temporary project, I believe a motivated and skilled student could do as good of a work as a professional. You could also offer an incentive of hiring him/her full-time after completion of studies. Contractual agreements may be different from country to country, but it should be easier to terminate the student contract.

  • Hi Elchin, I'd suggest an edit explaining why this is a good solution and how it could solve the problem. It does seem obvious, but expanding this just a bit would make it a more robust answer that helps us meet the 6 subjective guidelines of good posts. Also, try to avoid phrasing your answer as a question, since answers are intended to answer the question. Hope this helps! – jmort253 Jul 20 '13 at 1:02
  • @jmort253, sure, thanks for suggestions! – Elchin Jul 22 '13 at 8:00
  • 1
    Good edits @Elchin. Thanks for your help! :) – jmort253 Jul 24 '13 at 2:37
0

What we actually did: My colleague with previous C# training is going up to date in C# skills and he began developing the new version of the software.

We scheduled the project in order to replace gradually the different elements written with Zinc by C# code. First the part to embed the Flash UI, then the part used to grab pictures from the slideshow, and finally the part gluing together the different part of the system, including the embedded FFMpeg video encoder with a huge tunnel effect.

That way we can keep a working software at every moment, and in the same time improve it gradually. And my colleague has more time in order to get up to date, without engaging in a monolithic project.

Currently, the project is on track and going ahead well. The first improvements are really promising.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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