Roland wrote: represent a tiny firm (Clean Fuels) that is developing biomass conversion technologies. We got a great contract to supply our machinery, and need to elaborate construction drawings.
One option is to by/rent commercial CAD software. Once in, one cannot easily get out.
Very wise. You will be constraint to whatever that software offers you. Here you can actually extend it to fit your needs. In such a case, FreeCAD can come as a real market advantage. Of course, that would depend on your needs current and future and won't come without an investment in having experience with FreeCAD. I would dare to say there is nothing as flexible as FreeCAD. You have to translate though the initial investment into getting to a professional CAD software into the initial investment of getting proficient with FreeCAD plus any FreeCAD software developing costs plus a contingency costs associated to unexpected bugs or needs to work-arounds. At the end every business decision has an associated risk, isn't business at the end some kind of risk management for profit?
Roland wrote:However, we saw a number of flaws that for us would be urgent to tackle
Urgency in feature requests in FreeCAD community is not the strongest point (very mildly said). You may get to get bugs fixed relatively urgently by the community but feature requests generally require time an interest/attention from core developers. So if you actually urgently require something you have to weight whether: a) it is possible to work-around that need until it is ready, and b) you can manage to get somebody competent involved by paying... and the risks associated to it.
If you go for FreeCAD on the long run and have business needs, you would probably want to pay somebody to develop for you (in connection with the community) so that you have some degree of control over it. One idea would be hiring somebody for your company with coding skills and a mechanical engineering background that can work partly in R&D and FreeCAD. If this person gets proficient as user, power user and developer in FreeCAD and it is aware of your very personal needs, then you may be able to anticipate future CAD needs, you may be able to integrate part of the research and simulations early in FreeCAD with in house development, you will have access to fast bug fixing... then of course you could also combine it with students or third-party development contracts... just an idea, it depends on your size, your budget and your needs (everything comes at a cost).
Roland wrote:However, we feel that this should be done in collaboration with the FreeCAD community. Would it be possible to set up a small team from the core developers together with us, so that our effort actually contributes and does not remain isolated?
AFAIK, most of the bellies, if not all, of core developers here are full (i.e. already have a job to fill them). So it may not be possible to get one core developer for hire. However, core developers are generally very happy to have new motivated people around. I would say that core developers will try to help such motivated people, so as to set them up to speed in the development of FreeCAD. In that sense, whatever development decision you make, if you ask for community interaction, the risk of isolated work is quite low. Specially if the features are attractive to core developers. You may even get coding for free. Not to be underestimated, in cases of general development that is attractive to a big part of the community (assembly for example), you may also get beta testing, UI development/improvements for free.
Now, the community welcomes everybody. The pity about many students is that after their paid activities and/or master/phd projects they tend to leave the project. In such a sense having a person more attached to your company may be beneficial for everybody (I probably most important to your medium/long term goals, i.e. 5-10 years planning).
All in all. Re-evaluate the situation in view of the responses. Do a risk assessment. Whatever you decide do a contingency plan if it does not work out as expected. We will gladly welcome whoever you decide to pay to develop FreeCAD further, should you decide in that direction (just for completeness, you may also want to post in the jobs thread for people in The Netherlands or around the world, there may be somebody that fits your needs...).
Roland wrote:Since we are obliged to produce designs, I hesitate to use the pre-release FreeCAD 17. But I assume that I should give it a try anyway, to see where you guys are heading.
Here we talk risk again. I think that the risk that FreeCAD will not support or allow migration of files generated with v.017 to higher versions is quite low. However, probably the same was thought by people that run OS/2 thinking that they were backed by IBM until they stopped providing support. On the other side, the chances of having a bug fix in v0.17 is relatively high, while the probability of having a backport of such a fix to 0.16 is negligible. There have been very little amount of times where an upgrade in FreeCAD unstable has resulted in an unworking FreeCAD. In such situations it was solved extremely fast (within 1 day if I remember correctly). On the other hand, you now work with 0.16. Do you think there are better chances of 0.17 final or 0.18 supporting 0.16 designs but not 0.17 designs? I mean nothing is impossible, but it looks to me like very unlikely (note that in such a case, well you need a contingency plan/budget. What would happen if you get a license for a commercial CAD tool and the company goes to bankrupcy or increases the prices for the licenses or the support? the same or worse).
If I had already took the decision to work with FreeCAD in a professional environment (that is the big decision to make), then I would:
1) always work with the development branch (I would use Ubuntu daily builds, but that is my choice)
2) save copies of all the FreeCAD versions used in development (or at least the hash to be able to build them again if needed), or VMs for fast redeployment.
3) have good backups of your designs tracking the version used when developing them so that in the unfortunate case something breaks and your design no longer opens, you can continue your design from a previous stage or wait for a solution and then invest time in getting the design in the fixed version (I guess it is the same that you would do if the CAD company goes to bankrupcy).
4) Always test an upgrade before deploying it office wide (have one guinea pig engineer testing a new upgrade for some days before applying it to all the computers).
5) Definitely I would want to have somebody in house with a developer grade knowledge and engaged with the FreeCAD community (maybe with an 80/20 time division, like 80% of the time doing "your company design/stuff", 20% for FreeCAD development/projects your company is interested in). Involve him/her in your daily project development/requirements. You may get a lot of added value in form of macros, integration, early development of features...
I think I have written too much. I would have a hard time being you and taking this decision. I just wanted to give you an outsider's view.