Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Thursday January 04 2018, @08:35AM   Printer-friendly
from the scratch-an-itch dept.

I love FOSS, and even though it doesn't work as a model for everything, there are some kinds of applications that just seem to be a perfect fit.

I think one such application is software for CAD as it relates to construction and land surveying(my trade). Much of the design and record data from the field must be accessible for decades and this fact alone builds a strong case for using open formats. Unfortunately, and much to the chagrin of all of the surveyors I know, there seems to be a slow push by the software side of the industry away from using the open formats of old toward proprietary formats. A lot of this is caused by the ever increasing complexity (and reinventing of the wheel) of design software; however, when it comes to boots the ground, not much has changed with means and methods. There are only so many ways to accomplish what we do and most of it has already been optimized. The result of this push toward proprietary formats and overkill software has been the abandonment of good, functional, and simple proprietary software that just worked. Many of the companies that created this good software no longer exist because they have been embraced and extinguished by larger players. There is a growing reality that the only option to keep work going is to pay many 1000's of dollars a year per person for what should be a fairly simple piece of software. This is not the kind of software that would require a lot of support.

So my question is this: What is the best way for me to begin a successful FOSS project like this?

For the record I am not a programmer, but I dabble from time to time. I could foresee it being a fairly easy sell to convince the powers that be to throw some money (one time cost) at a development team to create for us what we need. Between the different companies and contacts that I know in the industry, a sort of corporate crowd funding effort is not far fetched. Why the heck isn't this already done for all the standard corporate software, rather than paying needless licensing fees into perpetuity? Sometimes software just becomes stable. A FOSS solution would be a godsend to smaller mom and pop operations and I think it could cure some of my resentment of people constantly breaking good things for the sake of "progress".

BTW, I have looked at some of the existing open source CAD software and found it all pretty wanting. Could requesting special functionality from these developers be a better route than starting from scratch? Thanks in advance!


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 5, Insightful) by Anonymous Coward on Thursday January 04 2018, @09:00AM

    by Anonymous Coward on Thursday January 04 2018, @09:00AM (#617589)

    First I would evaluate existing FOSS software, CAD and by the sound of it GIS too, do a thorough search, this is important as it might save you a lot of effort. Even if you cannot use an entire existing app, you will see how they approach certain things and perhaps even reuse parts of their code. Well planned is half done they say. Depending on your requirements the changes might be minor and easily and quickly completed. If the design changes required are not exactly the core of some existing application which has a modular structure, perhaps an add-on can be created. Here we must remember that we can fork projects too but doing so is generally not as beneficial as working with existing projects. Sometimes it has to be done and forks do merge occasionally so it's not always bad.

    Funding should be indeed collected from a coalition of the willing in either case. I too wonder why people don't do this all the time instead of using sub-par proprietary products that they keep paying license fees for... Of course the very biggest players will want a high barrier of entry to protect their own hide and discourage new entrants...

    If you're starting from scratch, remember that all the existing applications have been there for awhile and you still found them lacking (for your purpose), good software takes some time, money, planning and leadership. I personally would choose the GNU GPL to make sure the efforts stay free. You need to get the project to some decent working state before it can be hoped to start getting outside interest and contributions, doesn't have to be complex but has to work. Good luck and remember to make noise about it!

  • (Score: 4, Interesting) by lentilla on Thursday January 04 2018, @09:02AM (4 children)

    by lentilla (1770) on Thursday January 04 2018, @09:02AM (#617590)

    Sadly I can't give you a a perfect solution - only some thoughts. You want:

    • open data formats
    • individual utilities, rather than a monolithic lump

    The best example of utilities is Unix - where each tool has a single defined purpose and it does it perfectly. Now, to accomplish any given task is "simply" a matter of chaining the utilities together.

    The biggest problem is that you will be forever at the mercy of slick software salespeople that will offer to "make it easy" by providing an all-singing, all-dancing, monolithic, proprietary solution. To the big boss; standing on the golfing green; it will appear all too attractive. Then you'll be back to square one.

    A point for you to consider: choose the GPL rather than a BSD-style licence. That way - assuming your software gathers a following - it won't be easily subsumed into some company's monolithic bundle. Even better if your software has some "killer feature". If it's GPL, your "competitors" will have to implement the functionality from scratch to achieve parity. Additionally: I'd be more likely to contribute to software where I knew it couldn't be locked up in someone else's product.

    • (Score: 2, Insightful) by Anonymous Coward on Thursday January 04 2018, @11:00AM

      by Anonymous Coward on Thursday January 04 2018, @11:00AM (#617615)

      Patent Protection and basically anyone using it has to release their modifications.

      Works out much better than normal GPL since literally anything other than an organization making modifiations solely for internal corporate use results in the need to release their source code, helping to ensure that your tools stay free and all patches available no matter who is using it (short of groups who ignore copyright law.)

    • (Score: 3, Interesting) by TheRaven on Thursday January 04 2018, @12:26PM (2 children)

      by TheRaven (270) on Thursday January 04 2018, @12:26PM (#617634) Journal

      A point for you to consider: choose the GPL rather than a BSD-style licence. That way - assuming your software gathers a following - it won't be easily subsumed into some company's monolithic bundle.

      That sounds counterproductive. If your aim is to be able to access the data in the distant future, then it's far better to have proprietary tools produce and consume your formats than vice versa. I can't think of a single successful file format or protocol where the reference implementation has been GPL'd, and dozens where it's BSD licensed.

      --
      sudo mod me up
      • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @01:12PM (1 child)

        by Anonymous Coward on Thursday January 04 2018, @01:12PM (#617651)

        The license is only relevant if the proprietary products would want to use your code to implement support.
        That is most likely only the case if it is a really complex data format, they have no intention of ever adapting it as their primary data format, you provide data format support as an entirely stand-alone library and the API is really good.
        In all other cases, the proprietary vendors are rather likely to rather write their own.
        And if you don't write a excellent specification they won't touch it with a 10-foot pole because they're not that stupid.
        That is why writing a project and pushing a new data format a very different things, and it's unlikely you'll manage to do both.

        • (Score: 2) by BananaPhone on Thursday January 04 2018, @03:37PM

          by BananaPhone (2488) on Thursday January 04 2018, @03:37PM (#617730)

          I think this was resolved when Oracle sued Google for using the JAva API in their ??? language for Android.

          Had Oracle won it would have been akin to copyrighting words in the English language.

          File formats as very much like an API.

  • (Score: 2, Interesting) by Anonymous Coward on Thursday January 04 2018, @09:41AM

    by Anonymous Coward on Thursday January 04 2018, @09:41AM (#617597)

    I think one such application is software for CAD as it relates to construction and land surveying(my trade).

    The result of this push toward proprietary formats and overkill software has been the abandonment of good, functional, and simple proprietary software that just worked. Many of the companies that created this good software no longer exist because they have been embraced and extinguished by larger players. There is a growing reality that the only option to keep work going is to pay many 1000's of dollars a year per person for what should be a fairly simple piece of software. This is not the kind of software that would require a lot of support.

    Yes, companies do not exist if their products generate no income.

    Yes, the only way to have working, maintained piece of software in a niche field like this is to pay many thousands of dollars per year for the privilege of having a number of people on the other end of the phone or email or whatever continually keeping the less-than-interesting piece of software that keeps you employed updated and working. Even worse, if the software is OSS, then there is almost no one that will want to pay such a tax because it's a lot of money - you can't monetize it by $5/user like with some fart app.

    Furthermore, all the extra stuff you never use are not there because some developer imagined them out of the blue. There were probably a few requests for such or similar feature by its users. These users just weren't yourself.

    As for support, no one needs support until you need one. Like no one needs a fire department until things are on fire.

    So my question is this: What is the best way for me to begin a successful FOSS project like this?

    For the record I am not a programmer, but I dabble from time to time. I could foresee it being a fairly easy sell to convince the powers that be to throw some money (one time cost) at a development team to create for us what we need.

    Then you pay 10x for something that in few years becomes obsolete. And if you pay, well, then your competitor in your field will just take what you pay for. If you are OK with that, or you can come together with other land surveyors and distribute the costs by funding a non-profit for the common good, well, then OK. But you pay licenses because that is so much easier to do ;)

    You know, like I pay a fee to have clean water to my house because it's so much easier than trying to maintain my own water purification system.

  • (Score: -1, Troll) by fakefuck39 on Thursday January 04 2018, @09:59AM (9 children)

    by fakefuck39 (6620) on Thursday January 04 2018, @09:59AM (#617603)

    I must admit, I didn't read the whole summary. The word "chagrin" popped out at me, so I just read that sentence. Now, what you probably meant to say here was grief, disappointment, distress - something like that. But instead of just saying that, you decided to sound smart and use a french word. The word has been adopted in the English language, where it changed meaning to something closer to humiliation or shame. So
    a) you stuffed in a french word with its proper meaning, in which case your sentence makes sense, but you're a moron for stuffing a french word into an English sentence
    b) you knew what word to use, and you replaced it with an English word the meaning of which you don't know

    either way, when retards try to act smart, it's very entertaining for actual smart people. What a fucking loser. Now please do correct some grammer in my post.

    • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @04:24PM (8 children)

      by Anonymous Coward on Thursday January 04 2018, @04:24PM (#617759)

      The word was used quite properly. It might be to your chagrin to learn that you don't know what the hell you're talking about (it now supposedly means "shame"? You appear to be one of those dumbfucks who, when getting called out on misusing a word you retort with "English is a dynamic language," which to the rest of us just says "yes, I am a dumbfuck trying to sound smart about a word I really don't understand"). It has been in regular use in the English language for a couple hundred years, and in fact, if you check on it with the Google Ngram, you'll see that the use of "to my (or his) chagrin" has been fairly constant since around 1840.

      You should change "face" in your name to "dumb".

      • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @04:27PM (4 children)

        by Anonymous Coward on Thursday January 04 2018, @04:27PM (#617763)

        Oops. I meant you should change "fake", not "face" to "dumb".

        Man, I hate making a typing mistake when slapping someone down, because usually, and much to my chagrin, it opens the door for them to feel somehow vindicated in their superiority when they are really missing the whole point of the slapdown.

        • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @05:10PM (3 children)

          by Anonymous Coward on Thursday January 04 2018, @05:10PM (#617798)

          It's not your grammar that makes you look like a fool. It's claiming a foreign word couldn't change meanings in 200 years, and failing to look it up in a dictionary. Let me help you with that:

          "Distress or embarrassment at having failed or been humiliated" is the non 1840 definition.

          Since you likely still don't understand, let me do the substitution for you.

          Unfortunately, and much to the distress or embarrassment at having failed or been humiliated, all of the surveyors I know, there seems to be a slow push by the software side of the industry

          So the surveyors were distressed and embarrassed because of their failing and humiliation. Because some computer programmers don't' like open formats.

          Your a moron. Take an ESL class at your local community college.

          • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @06:38PM (2 children)

            by Anonymous Coward on Thursday January 04 2018, @06:38PM (#617866)

            I never said that foreign words couldn't change meaning over time (just to help you out, I am typing this really slow because you clearly have substantial reading comprehension issues), I'm just saying that the "language changes over time" is the cop-out "I've exposed my ignorance in trying to look smart" bail on an argument.

            To help your dumb-fuckery (or more likely (see--I'm giving you the benefit of the doubt) to help you overcome your intellectual laziness in copy/pasting the first internet definition you can find), I'll do the substitution with the same meaning it has had for 200 years:

            Unfortunately, and much to the annoyance of all the surveyors I know, there seems to be a slow push by the software side of the industry . . .

            So the word is used correctly, and unless all the surveyors he knows become embarrassed and humiliated when software developers don't add features to a program (I will admit the very slight possibility it is true that all of the surveyors this person knows have severe issues with their feelings of paranoia and self-worth), this should be a learning moment for you to consider what words mean and how they are used and not take internet definitions as definitive.

            I hope this information helps you grow a bit, and I am happy to help you further. The first step of lifting yourself out of debilitating ignorance is to first recognize the little box that you are intellectually confined in.

            • (Score: 0) by Anonymous Coward on Sunday January 07 2018, @11:40AM

              by Anonymous Coward on Sunday January 07 2018, @11:40AM (#619097)

              yeah, chagrin does not mean "annoyance," nor does it mean what it meant 200 years ago faggot. you should get yourself a dictionary.

            • (Score: 0) by fakefuck39 on Monday January 08 2018, @01:19AM

              by fakefuck39 (6620) on Monday January 08 2018, @01:19AM (#619350)

              What is it you're not getting moron? 200 years ago the word chagrin made it to English from french, where it means something like "sorrow" - like when someone died. It then changed meaning in English up to the modern day, and now means shame or embarrassment.

              I seriously have to wonder. I speak french well and am well-educated. I don't need to look up things like that. But I did anywise. You are simply making stuff up, and using that to poke "wrong?" Do you really think in this age where anyone can look up a word in 2 minutes to see you're wrong your made up facts can actually be used in a discussion?

              Knowledge is power, you retarded clown. Get some.

      • (Score: 0) by fakefuck39 on Thursday January 04 2018, @04:59PM (2 children)

        by fakefuck39 (6620) on Thursday January 04 2018, @04:59PM (#617785)

        yeah retard. sorry, but back then it came from french, originally meaning the same thing in english as it did in french. and then since 1840 it has changed meaning, separated from it's french root. (source: lived in france, fluent in french). are you one of those dumbfucks who uses an 1840 definition of the word in your 2018 speech? what a faggot nigger (not meant to be offensive of course, since it wasn't in 1840.

        retard, people who claim English is different now vs 1840 are not people who respond with "it's a dynamic language." we're actually people who point at you and laugh our asses off.

        • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @07:06PM (1 child)

          by Anonymous Coward on Thursday January 04 2018, @07:06PM (#617880)

          (source: lived in france, fluent in french

          Oh, ok, that explains your feelings of grandeur (am I allowed to use that word, or do you claim ownership of that one too?) about being a French/English lexicographer. Personally I second-guess my surgeon all the time because I used to work in a hospital (food court teller).

          Or maybe you are being "ironic"? Isn't that the latest word you dumbasses use (those of you who are educated through pop culture songe)? Oh, I know, language changes! I'm actually complimenting you when I say "dumbass" because you're probably thinking it a demeaning term, but that's not how we've been using it since last Sunday. The site hasn't been updated this week, but I'll come back in a few days and show you the new meaning on an online dictionary.

          • (Score: 0) by fakefuck39 on Saturday January 06 2018, @11:54AM

            by fakefuck39 (6620) on Saturday January 06 2018, @11:54AM (#618718)

            Sorry retard. Just as 100% USDA American as you are, just know 6 languages and lived in a lot of places. Funny how you actually did not respond to any point I made. So when you can't argue with the points you pretend someone is French and make fun of the French. I would love to see you argue with some more people - you are my personal clown.

  • (Score: 4, Interesting) by janrinok on Thursday January 04 2018, @10:26AM (1 child)

    by janrinok (52) Subscriber Badge on Thursday January 04 2018, @10:26AM (#617607) Journal

    I my (limited) experience, most of the more popular OS projects started out as much smaller projects. Someone had their own personal itch that need scratching and they produced a solution. When others saw it, they could also see its benefits for them, perhaps with a few changes and add-ons, and so the project grows. It is unusual to identify a large project, such as you describe, and then start wondering how to create an enthusiastic team to make it possible.

    I agree entirely with an earlier poster [soylentnews.org] who suggested starting with smaller projects that do one thing well, and then linking them together to achieve a more powerful combined 'program' that will meet a larger audience's needs. Look at GIS, not as a final solution, but look how they store and format their mapping data and then copy that. If you write another format, even if you intend to release it to the world, then you are just doing what the big boys do - writing a new 'proprietary' format. Find out how other commercial programs store data and see if you can make a converter to make it usable in your own program.

    Do NOT reinvent the wheel yet again. Many of the problems related to data storage, display formats, interfaces, mathematics etc have already been solved. Use them, either by forking existing code or simply by making use of existing libraries. If you create a different way of doing an existing task then new potential users will have to be retrained - this usually comes with some reluctance on the part of the new users, and always at a cost to the person paying their wages. Make your software emulate existing programs - your selling point is that it is free, not different.

    What operating system do the majority of those in your profession use? You can write a brilliant Linux/Unix program but if everyone is using Windows or iOS you will have additional work to do and a very hard sell to convince people to perhaps reinvest in hardware/software. If every other program they use is running under Windows they cannot simply throw it all away just to use your free (and even maybe better) offering. The OS will also dictate how many people you might find who are willing to invest in your proposal in terms of both finances and effort. Are there large numbers of skilled Windows programmers who want to get involved in a new project with little obvious financial reward looking to join the sort of project that you describe? Maybe there are, but you need to be certain that the support will not evaporate when the going gets tough - and it always does.

    I'm NOT trying to dissuade you from giving it a go, I'm just trying to identify some of the practical issues that will have to be addressed to give your project a reasonable chance of success. Other than that, good luck and please let us know what you finally decide, even if that decision is to abandon the idea. Other members of our community can always learn from your experiences.

    • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @10:04PM

      by Anonymous Coward on Thursday January 04 2018, @10:04PM (#617998)

      Makes me think of Torvald's announcement. [thelinuxdaily.com]

      won't be big and professional like gnu

      forking existing code

      ...or researching[1] what FOSS apps are available which already do -some- of what you need and contributing to one of those projects.

      [1] Reminds me of the old line

      A month in the lab can save you an hour in the library

      -- OriginalOwner_ [soylentnews.org]

  • (Score: 3, Insightful) by Pav on Thursday January 04 2018, @10:40AM (2 children)

    by Pav (114) on Thursday January 04 2018, @10:40AM (#617612)

    ...if you're serious about this, some things I'd suggest :

    This will be a political process. Before you talk to anyone you should know your stuff so you sound credible. Itemise the software that's out there, and list the ways falls short in your eyes. This will help you know the problem-space in sufficient detail to be able to talk to coders and potential stakeholders intelligently, and develop the discipline required to develop a requirements document if you end up having to go from scratch. I'd suggest seriously exploring modifying existing software first - an existing package presumably has coders competent enough to get something working, and a working product can help attract money and resources if you can show a working "prototype" (yes, why not call it that?). Find people in the same industry also interested in your goal, and ask them to also become involved evaluating software, talking to projects etc... Again, this is a political process - the software will need a user community, and your needs may not be as typical as you believe. Look at how actively developed the software you evaluate is, and how responsive the developers are - a responsive and active developer is VERY important. Find out if the coder/s are interested in implementing your suggested changes, and if so, what resources they would need to do the work. You could go from scratch, but be aware that even these days most software projects fail. Only after doing all this would I bother looking for financial backing.

    • (Score: 2) by Pav on Thursday January 04 2018, @10:56AM (1 child)

      by Pav (114) on Thursday January 04 2018, @10:56AM (#617614)

      Oh, and you'll want to list your requirements as "essential", "near essential", "nice to have", etc... This will give another dimension to understanding how existing offerings compare.

  • (Score: 4, Insightful) by maxwell demon on Thursday January 04 2018, @11:21AM (1 child)

    by maxwell demon (1608) on Thursday January 04 2018, @11:21AM (#617617) Journal

    Instead of writing a new program, consider whether you can take one of the existing, and add to it so that it no longer is wanting. Adding yet another Open Source project doing the same thing just further dilutes the amount of work done on each, including yours. Unless you manage to be so much better that everyone immediately switches to your program.

    Note that this is not the same as requesting the functionality from the developers. "I'd like to have this functionality, please implement it." probably has a much lower chance to succeed than "I'd like to implement this functionality, would you accept it into your code?"

    Also note that if you cannot contribute to an existing project for whatever reason (be it that the maintainers don't share your idea of what is desirable, be it that you cannot convince the funding providers to invest in something where someone else controls the main repository), it may still be a better idea to fork one of the existing projects than to start a new one from scratch.

    --
    The Tao of math: The numbers you can count are not the real numbers.
    • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @12:19PM

      by Anonymous Coward on Thursday January 04 2018, @12:19PM (#617632)

      Note that this is not the same as requesting the functionality from the developers. "I'd like to have this functionality, please implement it." probably has a much lower chance to succeed than "I'd like to implement this functionality, would you accept it into your code?"

      Or the also popular "who can I throw money at to get this implemented?"

  • (Score: 2, Informative) by sonamchauhan on Thursday January 04 2018, @11:40AM

    by sonamchauhan (6546) on Thursday January 04 2018, @11:40AM (#617625)

    Have you looked at TurboCAD? As second-rung players, they generally have quite competitive pricing and are forced to keep up in the arms race to read/write the main formats.

    https://www.turbocad.com/turbocad-windows/plugins/civil-design-suite-for-turbocad.html [turbocad.com]

    Otherwise, if you want a FOSS alternative, communicate with one of the open-source projects asking if they'd be open to funding specific enhancements. Alternatively, you can use topcoder, upwork or freelancer.com to 'source' (ahem) suitable freelance talent that'll do this for you instead. Just make sure you have someone technical on your side, guiding you through this.

  • (Score: 4, Informative) by Anonymous Coward on Thursday January 04 2018, @11:53AM

    by Anonymous Coward on Thursday January 04 2018, @11:53AM (#617627)
    You need to check out the full functionality of open source GIS software such as GRASS GIS , https://grass.osgeo.org/, [osgeo.org] and QGIS , https://qgis.org. [qgis.org.] The upcoming QGIS 3.0 has many CAD functions built in . In the current version of qgis, 2.18.15, there are 25 plugins with a relation to CAD and 3 plugins related to Azimuth and Distance It may be just a matter of jumping on an existing open source software project framework and working within the community to expand the functionality of QGIS to fit your corner cases .
  • (Score: 1, Interesting) by Anonymous Coward on Thursday January 04 2018, @12:16PM (3 children)

    by Anonymous Coward on Thursday January 04 2018, @12:16PM (#617631)

    Most successful FOSS projects start when someone who is talented and dedicated enough just does it. Once other developers see that the project is useful, they start trying it, and then contributing to it. You don't necessarily even have to write code to contribute, graphic design, writing documentation, legal assistance, helping new users, and even filing bug reports are still contributions. Relatively few successful software projects start with groups and discussions, because everyone just bickers over details and nothing ever gets done.

    Later on, large projects - GNU, Linux (separately in this case), Apache - can transition into a model that looks more like a commercial, or at least highly structured, operation, but only once they have enough contributors that they can afford the overhead, and because they have enough momentum that somebody will always be actually doing things instead of just talking. This is just amplified by the nature of the people involved, those who like to talk about things are attracted to the projects with lots of talking, those who like to do things are attracted to projects with lots of doing. Guess which one gets more done?

    Unfortunately in your specific case there are some extra hurdles that are endemic to free software in general. First is that there is not a lot of overlap between surveying and software. Surveyors use software of course, but not many can write it. This is why there are so many free software tools. Even if a tool is only useful for a few dozen programmers, they can all chip in on making it. And if it has a lot of users, it often has more manpower available than a large proprietary organization would at reasonable cost.

    Second is that free software only works well when you supply your own data. There isn't a popular free equivalent to Google Maps because, while the display, navigation and other aspects of the software itself could easily be made free (and likely better than Google does it), nobody has the actual map data (and now street view images) to make use of it. So everyone must use the proprietary software.

    Wikipedia proves that open source databases are possible, but only when the feedback loop is short. For example, on Wikipedia, you see something that's wrong, you fix it. For maps, if you see a blank spot, you can't easily fix that. It's not enough to know that Poplar street is north of Balsam street, you must have exact measurements. And editing the data would be harder, as Wikipedia is just text, but maps need special formats. There's not enough overlap between general knowledge and specialized ability. This parallels free software, where if you have a problem with a program, you can just fix it, and start using the fix immediately. Contrast this with computer hardware, which has a similar talent pool, but a much higher barrier to reward. There is a movement toward open hardware, but the cost in time and money of actually manufacturing it is a serious deterrent to use and contribution, and there aren't really any flagship open hardware projects in the PCB/IC area. But then, there are two exceptions that prove the rule: 3D printing and FPGAs. Both of these have a similar development cycle to software, and have thriving open communities alongside the expensive proprietary ones.

    Now, the next problem you'll run into is unwillingness to help competitors. This will probably be huge. If you make a free program, you're paying for your competitor's benefit. It's not impossible for this to pay off, but there are hurdles. For example, Intel and AMD both contribute to Linux. IBM and Oracle both contribute. But in this case, it's because that project has so much clout that they must work with it. If they don't contribute, they lose a "seat at the table" and what's more, they hamper their own products' abilities to work with it. So to not contribute would be a bigger disadvantage than contributing is. But it was many years before Linux received contributions from large companies. Early on, most companies ignored or actively worked against it.

    The only really successful free CAD tool that comes to mind is KiCAD, which is (I think) sponsored by CERN, so basically it's government funded, avoiding that particular problem.

    Now, many open-ish projects do start with contributions from many competitors, but this seems for some reason to work better in hardware, where the results aren't truly open. HDMI, USB, PCI (the interface, not the credit card thing), and even purely physical standards like VESA wall mounts for TVs. Anyone can use these standards, but you have to pay them and sign NDAs, so it's definitely not free. This sort of thing was often done in the commercial Unix world, but again the results weren't really open (and it was all built on top of the X windows system, which was created by MIT, again avoiding the competitor problem). More recently this approach was taken by Sun with Java. Java was a success, but the licensing model wasn't and now Sun is gone. The basic problem is that, even if you got all your competitors on board (and there would probably be more skeptics than participants for you), someone new could come along and benefit without any contribution.

    So to sum up, most successful projects have a motivated and capable founder, a ready pool of potential contributors, a short path from contribution to reward, and no incentive not to work on them. I don't want to be a downer, but I don't think your project has any of these things. Your best bet might be to adopt the commercial-Unix "open" model, build or commission a product that suits your needs, then recoup the cost by licensing it (including source) to competitors. Competitors won't buy it from you unless they get the source, so there's that, at least. You could even spin it off into an "independent" organization if all goes well. This isn't as good as a real open source tool, but it might be the only thing that can actually be done. And it might be the future for semi-open projects benefiting people who right now are tied strictly to proprietary software.

    • (Score: 1, Insightful) by Anonymous Coward on Thursday January 04 2018, @12:32PM (1 child)

      by Anonymous Coward on Thursday January 04 2018, @12:32PM (#617635)

      To add in the open hardware world, one odd case that might somehow inspire you is the Beaglebone. This is an open hardware design that is sponsored by Texas Instruments. In this case, they want to get more people using TI chips, and after the success of the Raspberry Pi (which is NOT open hardware), with a Broadcom CPU, they wanted a slice of the pi(e). In this case, being more open was a selling point, but in truth it is a free wrapper around a proprietary product, as the CPU is just as proprietary as any other. This parallels the common model of a proprietary product with a "community edition" AKA bait-and-switch edition, which always becomes fully proprietary just as soon as it gets enough users. In this case TI has no incentive to pull the rug out from under their users, and I don't predict it happening any time soon - in this case it's more of a carrot than a stick. Get people interested in the open version and if they want to put it in a bigger product someday, they'll be more likely to choose TI instead of Broadcom.

      • (Score: 2) by Grishnakh on Thursday January 04 2018, @10:58PM

        by Grishnakh (2831) on Thursday January 04 2018, @10:58PM (#618045)

        I think you're mischaracterizing things here. I'll take your word on Beaglebone vs. RasPi as I'm not that familiar with either, but I don't see how there's any "bait and switch" here, though there certainly is a desire to do "vendor lock-in". There's pretty much no such thing as an open CPU, unless you consider "open core" CPU designs that you can implement on FPGAs (which themselves are not really "open", just like almost any silicon). Obviously, CPU vendors want to sell more CPUs, so if TI's angle is to open up the design of the Beaglebone PCB hardware, compared to RaspPi which according to you is not open, then that's not bait-and-switch, that's simply providing more info to customers so it'll be easier for them to take an off-the-shelf Beaglebone, get something working on it, then develop their own custom PCB that's more optimized for what they're doing (and much cheaper in high volume), and reuse the same TI chip since it's already designed-in and tested. I'm pretty sure I've seen this done exactly the same way with Arduinos. Again, this isn't bait-and-switch, this is good business if your goal is to sell more CPUs rather than to sell more Beaglebones/RaspPis. You could call it vendor lock-in, but that's not really helpful because there's really no other option here: CPUs are all so different that you have to lock yourself into one of them, so there's no avoiding that aspect.

    • (Score: 2) by Grishnakh on Thursday January 04 2018, @10:50PM

      by Grishnakh (2831) on Thursday January 04 2018, @10:50PM (#618040)

      HDMI, USB, PCI (the interface, not the credit card thing), and even purely physical standards like VESA wall mounts for TVs. Anyone can use these standards, but you have to pay them and sign NDAs, so it's definitely not free.

      They're not? I was pretty sure that USB and PCI are free to implement; in fact, one of the big selling points of USB back in the old days was that, unlike its competitor FireWire (IEEE1394), it didn't require per-unit patent licenses, which added up to be pretty expensive for small devices like mice. Basically, Intel implemented USB and gave it away, because they wanted to sell more CPUs, and USB used a lot more CPU cycles than FireWire, but also was very useful in Intel-based PCs because the incumbent I/O standards at the time were crap (PS/2 especially, and RS232 and parallel ports).

      PCI too was pushed to make Intel-based PCs more useful and sell more chips. Companies could make expansion cards that performed far better than the ISA cards of the time, or the expensive proprietary MCA interface from IBM.

      HDMI I'm not sure about, except that the HDCP content protection component probably does require some kind of license and is certainly not free, but the base standard might be.

      VESA wall mounts requiring an NDA or license fee makes no sense at all: it's a very, very simple mount standard: 4 holes of a certain diameter spaced apart a specific distance. You can't require an NDA for that; any idiot with a ruler can figure it out and make a compatible stand or mount.

  • (Score: 3, Interesting) by Rich on Thursday January 04 2018, @12:24PM

    by Rich (945) on Thursday January 04 2018, @12:24PM (#617633) Journal

    Step 1: Write a resonably good program

    I usually don't agree with those who suggest to something existing to start with. If it was good enough, it would already have enough momentum. If you precisely (that is, down to the detailed behaviour of every last configuration option) know what has to be done, getting the bits together is trivial; if you don't, the project might be too problematic to be pulled off in the first place. Of course this does not apply to well proven and widely used components (e.g. don't reimplement fftw, unless you have very, very good reasons).

    Step 2: Deliver something usable

    Wow your prospective audience with an announcement. Your software must immediately be good enough for a good number of them to switch and continually use it in production. The last bit is hard, but if you don't hit it within a few weeks of iterations after going public, the stigma of "losers with useless shit trying to annoy me" will stick and prevent you from being successful.

    Step 3: Rule with an iron fist (hidden in satin gloves)

    Practically all community driven projects suck. Behind practically all great FOSS projects, there is a ruler with a clear concept of where to go, what to do to get there, and no qualms about enforcing the vision. No "boards", "panels", "codes of conduct", whatsoever. If you need some council to pacify prospective user organizations, organize it like a fan club. Don't listen to whiners, boot them out. Do, for good sense, listen to your best contributors, and, for good reason, to those paying industry rates to make you listen.

    That's it. Three almost easy steps for a successful FOSS project. :) You can have a look at Inkscape and Krita for two good examples of FOSS projects in the graphics area. Both forked off some existing base, though, so you can look at how long it takes to get good at something with their respective steering practices. The progress of Scribus and Xara might be interesting too.

    A final note regarding geo-information/CAD: if the task requires well-defined and production-stable output from shape combinations beyond polygons, solve this issue before you waste time on anything else. Also, please keep me posted on any progress in that area; i have some interest in that.

  • (Score: 2) by VLM on Thursday January 04 2018, @01:49PM

    by VLM (445) on Thursday January 04 2018, @01:49PM (#617661)

    Taking a step way back, if you convert

    What is the best way for me to begin a successful FOSS project

    into the almost identical to

    What is the best way for me to begin a successful project

    you'll probably find the issues are almost identical and even highly paid professionals epic fail on a regular basis unpredictably, so, best of luck, sincerely.

    What makes this comment more than mere snark, although insightful snark, is the point that most software projects don't end perfectly and you probably need to plan for that WRT back-out back-up revert plans. On the bright side, developing a really good rollback plan if your project explodes and sinks is a good exercise in defining the problem and timelines and challenges, even if the project doesn't crash and require reversion. It might also help sales/advocacy, well, you don't have much to lose because we can export industry standard XML or WTF if you decide to give up.

    I could foresee it being a fairly easy sell to convince the powers that be

    When I was a new contract freelance programmer I could see the brilliance of my first project I was gonna sell. Of course if upper mgmt were intelligent or better informed I'd already be working on it as a salaried dude. Or if I were better informed I'd know why its not organizationally possible. Just saying that merely because something makes sense to the guys in the trenches no matter how blindingly obviously better it is, that's no proof the mgmt will go for it. In fact if they haven't already assigned it to you as downtime project number #313515 for your infinite spare time, they probably do not want you working on it. Just saying that my experience is the best engineered mousetrap on the planet is still going to require sales schmoozing of epic proportions.

    There is a growing reality that the only option to keep work going is to pay many 1000's of dollars a year per person for what should be a fairly simple piece of software.

    That's like ALL enterprise IT since forever, yo. Again, snarky ha ha funny, but there's also insight that you need to separate your sales pitch away from "the enterprise IT model sux" because that's just too big for one dude to fix. Try something less ambitious like our SW has no bugs (LOL if they believe that) or our SW iterates much faster so we're up and running quicker and more security software patches than the competition because we're small. Or we're small so we can customize the hell out of it for you compared to bigcorp. Or we're small so we can integrate with existing systems faster and better than the megacorps. I'm just saying, yeah, enterprise IT is stupid and a ripoff and you'll get lots of high fives over saying that but you need something more specific to sell your specific survey software. Otherwise, they're like, what is this, a sales pitch for Chrome browser or EMACS or WTF?

    An amusing anecdote is my first experience with in-field (as opposed to desktop) survey software was seeing software libraries for sale in an "Educalc" catalog intended for a HP-48 (sx model of course) around 1990 (or so). I imagine CPU speeds and display resolutions have increased by a factor of thousands to billions but productivity is likely lower given ever more complicated and elaborate operating systems and UIs. Much like my desk calculator HP32 is about 100x faster than cold booting my desktop, connecting via rdesktop into the vmware cluster and firing up mathematica all to solve 2+2=?. I'm just saying, knowing enterprise megacorp software development as I do, your competition is bloated slow feature checklist CYA infused cruftware. Going back to the origins for inspiration from something fast simple and easy to use is an interesting idea. Thats why I like the retrocomputing hobby in general. I learn a lot more by playing TOPS-10 sysadmin or MVS/360 sysprog than I'll learn from glancing at the Apache Software Foundation's seventh (or whatever) trendy exciting new key-value store database thats almost, but not quite, perfectly identical to the other six projects. So just a strange idea for you to get inspiration on. Find the first TRS-80 surveying program and analyze the hell out of it because "whats the most important" probably hasn't changed much in your field for a couple centuries and teams of really smart people iterated the heck out of their answer to that question decades ago.

  • (Score: 1, Insightful) by Anonymous Coward on Thursday January 04 2018, @03:02PM (2 children)

    by Anonymous Coward on Thursday January 04 2018, @03:02PM (#617704)

    Let's see, you'll need a code of conduct document, give 75% of your funding to women in tech orgs, spec out LGBTQPOCSJW only projects...
    That should get you started on the right path, the rest is just details.

    • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @08:23PM

      by Anonymous Coward on Thursday January 04 2018, @08:23PM (#617923)

      you'll also need some ear spacers.

    • (Score: 0) by Anonymous Coward on Friday January 05 2018, @07:28PM

      by Anonymous Coward on Friday January 05 2018, @07:28PM (#618456)

      Insightful? I posted it as a joke, any resemblance to real organizations is of course unintentional. :)

  • (Score: 0) by Anonymous Coward on Thursday January 04 2018, @04:09PM

    by Anonymous Coward on Thursday January 04 2018, @04:09PM (#617748)

    I could foresee it being a fairly easy sell to convince the powers that be to throw some money (one time cost) at a development team to create for us what we need. Between the different companies and contacts that I know in the industry, a sort of corporate crowd funding effort is not far fetched. Why the heck isn't this already done for all the standard corporate software, rather than paying needless licensing fees into perpetuity?

    Part of the problem is management short-sightedness. I can buy X today, and I probably need to buy X anyway while the replacement is being built, and then I have to throw away all of my proprietary X-format work anyway and start over with the replacement when it's done. That's the exact reason Microsoft still owns the corporate desktop. Lock-in is real.

    But further, successful complex software projects are damn difficult. In the proprietary world and the open source one, for every glorious success there are hundreds or thousands of failures. It's likely some of the the open source CAD software you looked at that is inadequate or terrible already had big investments in it. It's quite possible to throw ten million dollars at this problem and come out with something that still doesn't fit your needs, or even with something that flat out doesn't work. I've worked with some brilliant engineers and engineering managers that still had big projects crash and burn.

  • (Score: 4, Interesting) by cyberthanasis on Thursday January 04 2018, @05:07PM

    by cyberthanasis (5212) on Thursday January 04 2018, @05:07PM (#617795)

    I would suggest ThanCad (thancad.sourceforge.net), which already has some staff for surveying engineers.
    You may even contact the author (me :) ) if you have something concrete in mind.

  • (Score: 0) by Anonymous Coward on Friday January 05 2018, @10:35AM

    by Anonymous Coward on Friday January 05 2018, @10:35AM (#618281)

    - Solve a problem
    - That many people need solved
    - Solve it well

    The first one should be obvious, but may not be. The second one ensures that your project can become more than a one man project, but also indicates that you should be aware of the competition. If the competition is doing well, not many people need it solved (it is already), but if you are going to solve it much better than the competition, you may still be successful.

    And the last one is probably what a lot of abandoned open source projects forget. If you solution isn't done well, or it's harder to use than doing it manually, you'll never attract any users, nor developers. Also, don't be another systemd/pulseaudio...

(1)