Why contracting developers is a good idea

i've changed the subject, so that these mixed threads can be separated now.
also, that gives the opportunity to ignore the long rant below.

Forgive me in advance for my unrelated LAMMPS blurb below. Will try to pay
back soon by responding some Qs on the forum. Note as well I am not the
original poster of this thread.

[...]

Well, more people doing it does not necessary implies more willing to pay
for it. The ROI in programming for scientific applications is very low as far as I
know thus, on average, good coders go somewhere else.

that is exactly my point. for people focusing on an *academic career*
it is indeed a bad investment of their time. this is why we have *so*
much crappy, incomplete and badly designed software around. this is
accelerated by the fact, that the time a grad student or postdoc can
spend on anything is implicitly assumed to be infinite. since grad
students are cheap and (still) plentiful, PIs become victim of the
"mythical man month" syndrome and just assume that problems will go
away, if they just hire more people. because there are more people,
people get less training, they produce crappier software or are
increasingly desperate to get even the most fundamental help from the
outside.

The ones left behind (me included in this bag) can find (or have found) at times difficult to find
properly structured curriculums with the essential knowledge to have in order to develop certain > expertise in a field.

in part this is because the post-graduate education in academia is
based on a) we need more people doing the work and b) everybody is
aiming to make a career in academia.

neither a) nor b) is correct. with research becoming increasingly
complex, we don't need more people, we need *better trained* people.
and also there simply isn't enough room in academia for all those grad
students and postdocs. 20 years ago doing a postdoc was the except and
rarely lasted longer than a year. now the postdoc phase is the holding
pattern until people finally give up and settle for a career that they
didn't prepare for.

Moreover, in the world I'm familiar with, teaching does not pay but
researching does, so the knowledgeable people are too busy researching,
grant writing, networking, etc and barely spend time of taking proper care of their groups/people. And these are the knowledgeable ones...

this is just another facet of the "just get more slave labor" and
"produce more publications at all cost" approach that has taken over
science. what irritates the hell out of me is the fact, that there are
plenty of people around that recognize this, yet they still continue
"because everybody else does it". even more so, i find it strange that
people realize that this kind of behavior favors people that are good
at gaming the system but those are rarely good at teaching or doing
good research and even more so, they'll just breed more people of this
kind. so in a way, the academic community has to realize that in the
end it is themselves that put this situation on them.

unfortunately, it is no business at all. in fact, i found asking
people to pay me a contractor/consultant fee for doing what is
essentially their own job, to be one of the most reliable ways to shut
them off.

A fee for a one-to-one consultation feels probably way too steep to the
average learner.

it all depends on how you look at it. you (or your PI) has to spend
quite a large chunk of money (or time) on getting computer hardware
and computer time and many other things. if you look at things from a
more business perspective, then you don't ask what does it cost to get
this service/hardware/software? you ask, what does it cost us, if we
*don't* have this? what can we do at the same time while the
specialist is doing the specialist tasks? how does our productivity
increase?

of course, it is not a working business model if you look at
individual people, but consider there would be something like a LAMMPS
foundation and researchers that know they'll use LAMMPS
in their research simply budget a certain amount of money to be given
to that foundation, just like you have to budget for people or
hardware. this amount wouldn't have to be in per person increments and
it is quite likely that there may be other researchers that need the
same or a similar feature or tool. now the LAMMPS foundation, given
that a sufficient number of people would be contributing, can employ
and train people that can implement those features and they would be
far more effective at this than any random - possible untrained or
less experienced - grad student or postdoc. moreover, you would have
an additional benefit, as there would actually be jobs and a career
path for people that do like both academia and computing and
programming, while now they have to either go elsewhere or suffer
through following the same career path as all their peers, which has a
alarmingly high chance of ending nowhere, unless you get lucky and/or
abandon most of what makes working in academia and doing research
attractive and instead participate in the ongoing rat race.

there are plenty of precedents in the IT industry where this kind of
approach is working, where stakeholders benefit from contributing to a
community software rather than having to roll their own. why should
this model not work in science, if it wasn't for people being too
stingy, paranoid and shortsighted.

Besides, why not ask highly qualified people like Kohlmeyer, Plimpton and
the Sandia team in this very same forum? They provide good answers for free

but think what people like steve and me could be doing, if we didn't
have to explain lots of trivial details to people, if we had a budget
to train people to become better programmers than us and
write better tools than what LAMMPS is (there are plenty of things
that could be done differently and would result in a more future proof
application, but those require a long-term commitment and capable and
experienced developers). what you don't see on this mailing list is
the plethora of mails that are sent to us individually, and often with
an attitude of entitlement that can be extremely frustrating and
disappointing at times.

again, if this was all put on a more reasonable financial grounds,
there could be a lot of benefits to people. there could be
user-support people that are willing to also handle beginner and
off-topic questions in a more forgiving way (my rough attitude is
often pure self-defense as being too helpful to beginners only
encourages people to spend even less effort and offloading even more
trivial stuff). there could be well-organized in-person training,
better tutorial material, better documentation, better support for
programmers, and so on.

if people would see things from a more business like perspective, the
rent-a-guru model is actually quite attractive. you just pay as you
go. you do not have to commit to keeping somebody around until this
person gets a phd or finds a job or both. you can focus on your
strengths, don't have to dissipate as much energy on simply procuring
more money to hire more people to produce more output.

anyways.I guess a business model for this simulation stuff has to rely on
its global scaling nature, i.e. lower fees for a wider audience.

when i see how many resources and particularly people hours
are wasted in our field simply because people are not properly trained
or don't invest any effort in having effective and suitable tools for
their work, i have to shake my head so much i fear it will come off.

The same applies to a lot of other fields out there. Cutting corners is so
much human nature. The majority are only after the end goal and the path to
get there is just a hurdle to circumvent. After all, even a broken clock is right twice a day.

there is cutting corners for the right reasons (by finding smarter
solutions) and cutting corners for the wrong reasons (by not caring).

axel.

You sold me out. I do share a ton of your feelings and discontents. And I can tell you than I am actually one of those who lost it in the path to the academic career. Can’t play the game. So against my nature. I do love science and that’s why still participate here. But for a hobby have not much time at my disposal.

Who knows, perhaps our rant will ring (or ding) into the ears of somebody with higher powers or at least will resonate with other soul mates in the field.

Carlos

Well, this is a very interesting thread! I think that it is hitting some very deep topics that would be good for all of us to think about, but first let me put in a large disclaimer: I founded and run a commercial software company that does both contract research, which is something like the rent-a-guru model Axel mentions, as well as providing (=selling) a unified interface with building and analysis tools, etc. that work with LAMMPS, VASP, MOPAC, Gaussian, etc. In spite of what you may fear, I am not trying to push anything commercial here. However, I think that working in this field for the last 37 years, and of that the last 28 making my living commercially gives me a different — and hopefully useful — perspective.

Also I hope that I have not misread or misinterpreted anything anyone else has written. If I have please correct me!

Dear All,

I really appreciate the discussion and the valuable comments of people who have valuable insights on this topic like Paul, but it also makes me feel anxious a little; if the help from experts becomes a business, it will mean that people without funding will not be able to get help, and this will become dangerously money-driven.

I think there are two aspects to simulations- the internal coding and the physics. Now I am not a code developer, for instance, but I understand the physics of what needs to be done and how to analyse it’s, which requires coding skills but not at the same level as the code developer for sure.

There are lots of people asking for elementary help, which not only annoys the developers, but also the rest of us on the mailing list. However, most questions are legitimate and very useful. Now we have to realise that as soon as one commercialises all this area of support, there will be no access to all the questions that the experts provide individually, and a price tag will be attached to everything. This is not going to help anyone in the long run, I feel.

Anna

Dear All,

I really appreciate the discussion and the valuable comments of people who
have valuable insights on this topic like Paul, but it also makes me feel
anxious a little; if the help from experts becomes a business, it will mean
that people without funding will not be able to get help, and this will
become dangerously money-driven.

why would this be worse than the situation that we are in now?
right now, everything is a volunteer work and the support given to
people solely depends on the generosity of individuals that volunteer
their time. as paul rightfully pointed out, we *are* already money
driven, because what can or cannot be done depends on whether
there is funding available or whether we can find time and basically
give up doing something else that might be to our personal benefit
and instead help the community. people that regularly answer to the
questions on the list and/or do maintenance work basically give up
what is worth money and contribute that to the community.

if there was actually a way to channel money (in whatever small
increments) it would very likely improve the situation. there would
be money to hire *additional* people and processes or tasks that
are not fundable, can be done.

please also keep in mind, that you cannot lose anything since LAMMPS
is GPL licensed. the software *will* remain free and open source software.
the worst version of your concern would simply be equivalent of all current
LAMMPS developers retiring (something that is worth considering, BTW,
given the longevity of large software projects these days). so nothing will
be taken away from you.

I think there are two aspects to simulations- the internal coding and the
physics. Now I am not a code developer, for instance, but I understand the
physics of what needs to be done and how to analyse it's, which requires
coding skills but not at the same level as the code developer for sure.

There are lots of people asking for elementary help, which not only annoys
the developers, but also the rest of us on the mailing list. However, most
questions are legitimate and very useful. Now we have to realise that as
soon as one commercialises all this area of support, there will be no access
to all the questions that the experts provide individually, and a price tag
will be attached to everything. This is not going to help anyone in the long
run, I feel.

again, you are not seeing the big picture and this is why i am claiming
that we need a change in culture. as software is becoming a commodity,
people have to start treating it like one. as you rightfully pointed out, the
vast majority of questions, doesn't *need* expert help, and thus - in theory -
those questions should be answered by *other* people on this list that
have *sufficient* knowledge (and *many* have). yet it rarely happens,
and if you ask them individually why, they usually say
"i cannot answer this, i am not an expert!".

so if there was an infrastructure that would generate money, people at
a sufficient expert level could be paid to focus on that task. that would
actually serve two purposes. it would make the development and support
process more efficient *and* it would provide a suitable career path for
people with programming and simulation knowledge that have no chance
(or no ambition) to do an academic career.

the model i am see is more of that of a scenario, where you contract out
*special* needs, i.e. projects where people now use grad students or
postdocs for and who are struggling to do it right because few of them are
properly trained and who usually have to abandon their work (complete or
incomplete) once they move on to the next step in their career. from a
business perspective this would actually be a much cheaper approach,
since a properly trained and experienced person will take much less time
to do a quality job *and* the result will be maintained and usable for a
longer time. and you only need to pay for how long it takes to get it done.

there are many precedents for why this will work. you probably use quite
a lot of software that is funded in this or a similar way. the rent-a-guru
strategy is one that *adds* value to a software, it cannot take away.
just as what paul described that his company does. he aims to make
software usable to people that do not have the time or training to learn
it the hard way and have applications, where you don't need any complex
specialized tools, but just something that does a well understood and
conventional task. like i wrote earlier, one has to accept that large
software package are becoming a commodity tool.

in summary the biggest problem in all of that is one of perception and
perspective.
what is so irritating in the whole situation is the fact that very same people
that say they cannot spend money on this, spend it without thinking on
other items, that often have much less impact. say conferences, or publishing
articles in journals. or just consider how much money would come together,
if everybody that would present results from LAMMPS simulations or publishes
a paper that used LAMMPS, now would be giving 30% of that money to
a hypothetical LAMMPS foundation to sponsor future development of features
and support of current and future users. you might consider this
amount offensive,
but that is *exactly* the percentage that apple is currently withholding from
anything that is sold through its sales infrastructure. yet, this is seen as
a successful service, while asking for much smaller amounts of money is
a "dangerous commercialization". since the "LAMMPS customers" these day
already treat it just like a commodity service, it would simply be a logical
consequence to set up an infrastructure to make people understand that
such a commodity cannot be free. the roots of software projects like LAMMPS
lie in collaboration or *equal* partners, i.e. people that would use
the software
would also contribute to it and help improve it. yet now this mutual support is
gone and we are left with a few people providing a service to a large number
of people. why is it wrong to make those people that do not pay back through
their work, pay back in cash (and citations and acknowledgements don't
really count, since they can only be exchanged for writing grant proposal to
implement new features, but not to provide the support that those people
need to use what is there for their purposes).

axel.

Hi Anna,

Certainly a good point, and I am by no means advocating a completely commercial solution. There is room for many different parts of solution, including better classes and training in e.g. universities, for national labs and people like Steve, for dedicated moderators of mailing lists, such as Alex — but also for commercial solutions.

Now let me comment on something you say: “…it will mean that people without funding will not be able to get help, and this will be dangerously money-driven.” What does “dangerously money-driven” mean? It is a nice, catchy phrase — and pejorative too. Is not the system that you are alluding to “funding-driven”? Is that not “money-driven”, since “funding” == “money”? So should I follow you and say the current “dangerously funding-driven environment that leaves people without funding, and hence unable to get help"?

Well, funding agencies and managers have to make decisions, too. They do not have an infinite pot of money. So perhaps it is an indication that people without funding should be thinking of changing what they do, moving towards areas that are being funded.

Whether we wish to admit it or not, the entire situation comes down to allocation of resources. We can talk about people’s time and a barter system, or we can just admit that it really does almost completely come down to money. Your funding — or lack thereof — is money from a funding agency or your university. Steve’s salary and the computers he uses are funded by Sandia National Lab, and ultimately by American tax-payers including companies and people like me. I think it is safe to guess that Axel’s time and fantastic work on this mail list is at least in part made possible by funding for other projects, or teaching, something like that. My funding and the funding for the code we give back to the LAMMPS community comes from our customers. It really is all the same. However, many academics feel that they are above this detail, that “commercial” == “dangerous” or unseemly.

What I think Axel was talking about as he started this thread was limits of resources, how to allocate resources perhaps a bit better, how to increase the overall pool of effort (which comes down to increasing the funding pool). I may have broadened his idea a bit, but there is an extremely important and valid point in what he is saying. How do we sustain the type of work that he and other top contributors to this mailing list are doing? How do we raise the level of education so that those manning the list can concentrate or more specific questions and less on general education? We can talk with funding agencies. We can encourage professors to work more with their students and not dump that role on the mailing list. We can advocate for more and better classes in this new field. Can we broaden how academics are measured to include contributions to mailing lists, to open codes like LAMMPS so that selfless volunteers are actually recognized for their dedicated work? What are your suggestions?

And I suggest that we get beyond these pejorative concepts about dangerous money-grubbing commercial enterprises and think if commercial solutions can be a part of helping move forward. I must say there is something very odd about software that makes people turn off their brains, stop thinking, and act in a very entitled way. I find it very useful to replace software in a sentence with a physical object and see how it sounds. Let’s try that with your statement, Anna. Something like this: “…if the help from computer hardware experts becomes a business, it will mean that people without funding will not be able to get help fixing their hardware, or adding components such as GPU’s to extend their capabilities”. Sounds odd, doesn’t it? Why doesn’t it sound odd to so many people when it is software, not physical goods? Something to ponder.

Hi Axel,

You are talking about the support aspects. If instead you apply your logic and experience to the code itself, you will come to a similar conclusion. However, your rent-a-guru concept may not work as well due to the copyleft nature of the GPL.

A guru working with the science or support can accumulate inputs, scripts, lessons, etc. to help support his work, building a valuable base (capital) along with his knowledge. A “LAMMPS foundation” can do likewise.

A code guru can accumulate modifications and extensions to VASP — again capital — to help him compete and make a living. Or can he under the terms of the GPL? Certainly when he joins the LAMMPS foundation he cannot — or at least he must give everyone in the community access to his modifications. Much as professors may be taking advantage of you, letting you teach their students for free, our software guru or at least a foundation of gurus will be forced to let other non-affiliated gurus take advantage of them.

We are embarking on an interesting experiment with LAMMPS under the GPL. I may be wrong, but my personal belief is that this has doomed LAMMPS. It will not take anything away — LAMMPS code will be freely available — but that as the government stops funding it the development will slow and stop due to this dynamic.

This is why I use the term “government-funded open source”. It is not truly open source in the sense that Linux is, but is being propped up by government funding. Nothing wrong with that, but by using a copy left scheme, LAMMPS has removed some possible sources of funding for the future. As government funding is withdrawn, as it inevitably will be, we will see if LAMMPS is viable on its own. It is an interesting bet that was made, unintentionally I believe.

Hi Axel,

You are talking about the support aspects. If instead you apply your logic
and experience to the code itself, you will come to a similar conclusion.
However, your rent-a-guru concept may not work as well due to the copyleft
nature of the GPL.

exactly!

A guru working with the science or support can accumulate inputs, scripts,
lessons, etc. to help support his work, building a valuable base (capital)
along with his knowledge. A “LAMMPS foundation” can do likewise.

A code guru can accumulate modifications and extensions to VASP — again
capital — to help him compete and make a living. Or can he under the terms
of the GPL? Certainly when he joins the LAMMPS foundation he cannot — or at
least he must give everyone in the community access to his modifications.
Much as professors may be taking advantage of you, letting you teach their
students for free, our software guru or at least a foundation of gurus will
be *forced* to let other non-affiliated gurus take advantage of them.

i think your way of seeing things is disregarding the fact that software like
LAMMPS is becoming a commodity. i don't believe that there is much value
in developing some feature and then only making it available for a price. i've
worked with people that have thought like this and what happened was that
the open community developed an alternative, often even better than the
original feature. thus the way of thinking that software itself is of big value
to science or ways to make software "smarter" is going to help making it
useful to more people is becoming obsolete. what is of value is the expertise.
just look at how the IT industry is changing. people are no longer running their
own facilities, but renting them as needed. the reason why more and more
people use software packages instead of rolling their own is that they don't
have or can afford the expertise to do this at a sustainable level. so why not
take this one step further and rather than trying to tailor the software to
guess and manage the expectations of non-expert users, go ahead and
offer the full simulation process as a service? rent-a-person to set up
and oversee the actions of a student doing the research? or simply
have the whole simulation data produced as a service?

We are embarking on an interesting experiment with LAMMPS under the GPL. I
may be wrong, but my personal belief is that this has doomed LAMMPS. It will
not take anything away — LAMMPS code will be freely available — but that as
the government stops funding it the development will slow and stop due to
this dynamic.

This is why I use the term “government-funded open source”. It is not truly
open source in the sense that Linux is, but is being propped up by
government funding. Nothing wrong with that, but by using a copy left
scheme, LAMMPS has removed some possible sources of funding for the future.
As government funding is withdrawn, as it inevitably will be, we will see if
LAMMPS is viable on its own. It is an interesting bet that was made,
unintentionally I believe.

i think this argument cuts both ways. i for one would not want to contribute
to a scientific software project where somebody else can take my code and
add some feature of his own and then sell the result, without me having
access to that code and being able to vet it and validate it. i think if LAMMPS
were not GPL, there would be much less contributions. and while projects
and science becomes multi-scale and multi-physics, we need to have ways
to have software become compatible in licensing terms, and GPL is one
of the few ways that makes this possible.

i have been part of projects that were not GPL and not open source, i ultimately
left those projects because i consider *them* to be doomed and because they
would not inspire as many people to contribute as an open project as
LAMMPS does.

linux works (and many, many other open source projects), because the people
that are paid to work on it full time are paid by stakeholders that understand
that the alternative will cost them much more. this understanding hasn't settled
in with most PIs in academia, since their mind is too much set on
their immediate
personal benefit and since they disregard the waste of workforce and resources
they cause by treating their students and postdocs as it currently happens.

i have personally benefited immensely throughout my career by doing everything
in the open, by not having to worry about what i can give away and what not,
because it might impact my "business". there certainly is a price to
pay for that,
but in my book i come out as a winner (just not financially, but i am
doing quite
alright in that respect, too). i attribute it mainly to the fact that
i do things in the
open, and that i am approachable by people that respect my choices, that i
have been given opportunities and made experiences that few people in the
business of science ever get. and i have been able to initiate processes and
activities that have - over the years - shown a significant positive impact on
how people do computational science.

axel.

As I see the story so far:

We all tend to value most the things (ideas, decisions, approaches) the have worked better for us. While Paul and Axel share many points they seem to diverge in certain particulars leading to a friendly crossfire with some “dooming” sparks. Axel is calling for a change in paradigm, a call that I personally share, and he uses the IT example as “proof/evidence” that his proposal here has high chances of being successful. But then the market; all those short-sighted, egoistic, partially blind, professors and scientists in the race to the top

do not seem to care or bother with Axel’s view and just keep milking their grants to buy local equipment and continue hiring more human labor (those crappy coders) in order to further bulk up their resumes. If with great power comes great responsibility, with great vision should also come the same dosage of responsibility. Why not coming up then with a pilot program that aims to raise extra funds for Lammps to run Axel’s experiment? Unfortunately the initial work once again will probably end up on the developers shoulders and that may be too much to start with ;-( Why not identifying some key features (or services) related to high flying topics in science than can be ported to Lammps (and do not exist in alternative software) and will benefit a lot of those academic patrons and then prey on their ambition to raise some of the funds to get such experiment going? Why not coming up with a list of the costs in $ terms to make people understand what is the value of their purchase and how are their “future” contributions to be deployed?

In the end this could well be me lobbying in the dark, as I have no clue what are the plans that Sandia and Steve have for Lammps and if this is even of interest down there. All I’m trying to say is that those who can see the future have to lay the first stone for us the rest of the mortals to follow. If I was a PI I would not hesitate to taking the risk and give some fellows here some $ for them to go and proof their points. Their dedication as shown in this forum combined with their contributions is more than enough proof to me they will take the challenge with great responsibility.

Carlos

Hi all,

I am happy to see this discussion happening and I thought that I'd share
something here too.

My original "contractor" idea was not that much about changing the academic
system, which would be in my mind a very risky business expectation. It was more
about having independent programmers/scientists proposing computing services. In
other words, have jobs outside universities/institutions.

Either as "simulation as a service" (unfortunately, saas is already taken as an
acronym) or "code as a service" but where the code would be contributed back
under the GPL, thereby strengthening the position of open-source scientific
codes. I believe that businesses can be friendly to open-source (or I hope) and
that this model can be good for all parties.

For Anna: none of this has to take away the academic/support community around
lammps. lammps has the most responsive mailing-list that I know of and this is
mostly due to the activity of Axel K and Steve P. They are very responsive and
friendly with everyone (with some limit for really out-of-bounds behaviors).
This model has limits, obviously, and is only sustainable if the support core
grows. Given the large number of users I am a bit surprised that there is no
more participation of that kind.

I would be curious to have an overview of the governance and fundings models for
large scientific codes (open-source preferably), has anyone such a document?
Molecular Dynamics would be a good case study as there are several large codes
with a long history.

Anyway, thanks for the software so far :-

Pierre

Hi all,

I am happy to see this discussion happening and I thought that I'd share
something here too.

My original "contractor" idea was not that much about changing the academic
system, which would be in my mind a very risky business expectation. It was more
about having independent programmers/scientists proposing computing services. In
other words, have jobs outside universities/institutions.

Either as "simulation as a service" (unfortunately, saas is already taken as an
acronym) or "code as a service" but where the code would be contributed back
under the GPL, thereby strengthening the position of open-source scientific
codes. I believe that businesses can be friendly to open-source (or I hope) and
that this model can be good for all parties.

well, i maintain that the current "business model" of academia is
ultimately doomed. it is essentially a pyramid scheme: to get
sufficient access to ever shrinking resources, people have to produce
more output and that is only possible by having a larger group with
more people that stay longer and are given less freedom and are rather
micromanaged. due to this, each generation will be less well trained
than the previous one and thus even more people are needed. so a "less
is more" strategy seems to me like the only viable conclusion. what is
really irritating is that in other aspects, there is little
questioning of costs and fees for services. publication fees and
conference fees are the most obvious to me. both are basically
collected by for-profit service providers (directly or indirectly) and
while people may complain about the cost, there is not questioning the
need. i might venture that the value you can get from contracting an
experienced software developer for the cost of sending multiple group
members to a big conference will have significantly more impact.

strangely enough, there are some cases where people are willing to pay
large amounts of money for software, for example for MATLAB licenses.
while there is no question of the usefulness of MATLAB, i cannot help
to wonder what a free and open source alternative like SAGE would look
like, if those people had as little as 10% of that money as a funding
source. and i think here also lies a specific strength of "government
supported open source" (like paul prefers to call it): unlike
commercial offerings, that have to add new features (useful or not) in
order to justify their license fees, people can focus more on doing
"the right thing(tm)" and producing a software that keeps the bulk of
their users productive.

For Anna: none of this has to take away the academic/support community around
lammps. lammps has the most responsive mailing-list that I know of and this is
mostly due to the activity of Axel K and Steve P. They are very responsive and
friendly with everyone (with some limit for really out-of-bounds behaviors).
This model has limits, obviously, and is only sustainable if the support core
grows. Given the large number of users I am a bit surprised that there is no
more participation of that kind.

after being around different mailing list with different policies and
communities for ~20 years, i would claim that there are two main
reasons there isn't more participation: 1) steve and i are too
responsive. :wink: if we would let questions sit for a day or two and
give others a chance to answer, that would encourage more people.
only, it is quite difficult to resist if you know a good answer. 2)
paranoia and concern about wasting time. few people realize how great
a learning tool it is to answer questions and how little damage they
can do to their perception in the scientific community by making the
occasional mistake. however, given the extremely competitive
environment that students and postdocs are in these days (compared to
15-20 years ago) as well as the misunderstanding that any time spent
on anything but the immediate topic of your research is wasted, people
refrain from trying to answer for fear of appearing incompetent and
thus damaging any further career aspirations, for fear of getting
distracted from what is needed for their task at hand.

positive impact participating in mailing lists for scientific software
has. not only does it teach you more about the software, but also it
provides a incredible training in problem solving. and the latter is a
skill that is essential in good researchers, but there is very little
practical training in it and less and less so as research becomes more
competitive. thus i can only encourage people to participate more for
their own benefit, helping others is a welcome side effect. that is
how i always viewed it and looking back for the time i have been doing
it, i can see that i have likely benefited more than any of the people
i have helped in the process.

I would be curious to have an overview of the governance and fundings models for
large scientific codes (open-source preferably), has anyone such a document?

doubt it. but i would venture it is primarily based on a combination
of creative ways of diverting government funding (for full time
developers) and explicit funding from (government) programs designed
explicitly support community software packages. some recover some cost
by selling licenses or licensing the software to commercial vendors.
plus a variety of contributions from "external" groups that are mostly
funded through being a component of a research project. ...and then
there are a few dedicated people that can perform the tasks they get
paid for in a subset of the assigned time, and then use the resulting
"free" time to contribute to software projects.

i would expect that in the end every package will have a somewhat
different and rather unique combination of these.

axel.

Dear Axel and others,

I suppose that in case of LAMMPS there is not enough market for code-developing contractors. Most people use the already provided functionality, even more so as it becomes more and more rich and includes not only MD engine but diverse analytical tools, too. Those who develop new methods would likely want to implement them themselves to not lose control over the approach and be sure in what it does (even if it runs slower or may be less reliable in unexperienced hands). Writing a code may also be a good way to learn the underlying theory.

The problem with MD-running contractors for academy, in my opinion, lies in the "ownership" of the results. New knowledge in simulations is obtained either by new model, or by new analytical technique, or both. If you came up with an idea, but all the actual work of implementing it was done by someone else, is it still your research? Isn't it a reason why Axel wrote in the original topic that "in fact, i found asking people to pay me a contractor/consultant fee for doing what is _essentially_their_own_job_, to be one of the most reliable ways to shut them off"? I think it is an evidence that it is commonly considered that performing a calculation _yourself_ is an important part of "doing" it.

Maybe industry could be interested in such simulations. Does it need LAMMPS? I don't know.

Like many others, I am often surprised how friendly and helpful this mailing list is. The answers to "how do I do that?" could probably be paid for, if there was no free alternative. As long as there are always people (mostly two or three people) who provide good answers here at no price, there is no demand for commercial support, too.

And concerning the license. IIRC, if there is an agreement among the contributors, GPL code may be re-licensed to whatever they want (old versions will remain GPL). I think it is still possible as the majority of code was written by only a few people (am I correct?).

Regards,
Oleg

The problem with MD-running contractors for academy, in my opinion, lies
in the "ownership" of the results. New knowledge in simulations is obtained
either by new model, or by new analytical technique, or both. If you came
up with an idea, but all the actual work of implementing it was done by
someone else, is it still your research?

Just go at it like in the business world. An employee is not necessarily a
shareholder. The first one takes a salary in advance for the work done but
cannot claim ownership of the product. The second one "buys in" with the
corresponding associated risks and thus owns part of the enterprise. This
actually happens a lot when academia gets involved in collaborations with
private companies. Researcher sign NDAs, get immediate compensation and
despite doing the work the "added value" stays with the private enterprise.

Carlos

I have a more romantic view on this... What enterprise is interested in is money, while researchers do not work for money only, but for knowledge, and sometimes also for priority/acknowledgement. So what knowledge do you get, and what acknowledgement can you ask for, if the essential work was done by someone else? Wouldn't it resemble a "writer" who pays someone to write novels for him, publishing them under his own name?

Oleg

22.06.2015, 20:45, "Carlos Campana" <[email protected]...>:

The problem with MD-running contractors for academy, in my opinion, lies in the "ownership" of the results. New knowledge in simulations is obtained either by new model, or by new analytical technique, or both. If you came up with an idea, but all the actual work of implementing it was done by someone else, is it still your research?

Just go at it like in the business world. An employee is not necessarily a shareholder. The first one takes a salary in advance for the work done but cannot claim ownership of the product. The second one "buys in" with the corresponding associated risks and thus owns part of the enterprise. This actually happens a lot when academia gets involved in collaborations with private companies. Researcher sign NDAs, get immediate compensation and despite doing the work the "added value" stays with the private enterprise.

Carlos

22.06.2015, 20:45, "Carlos Campana" <[email protected]...>:

I have a more romantic view on this... What enterprise is interested in is money, while researchers do not work for money only, but for knowledge, and sometimes also for priority/acknowledgement. So what knowledge do you get, and what acknowledgement can you ask for, if the essential work was done by someone else? Wouldn't it resemble a "writer" who pays someone to write novels for him, publishing them under his own name?

Acknowledgments:

Though Author A designed the algorithm, the implementation was written by
Contractor C. The resulting code is available under free license L, following
the development model of software S.

There is so much that is sometimes done by someone who is not an author
(debugging, re-reading the manuscript, discussions, sample preparation in the
lab, etc) that writing code for someone else's algorithm should be doable.
Actually, the situation arises whenever someone re-implements someone else's
algorithm. This does not specifically lead to a new paper, "just" to new code.

Ownership (copyright) goes to A who paid (or his/her institution). Authorship
goes to C. Actually, I have seen the model where authorship goes to persons and
ownership to the university. See for instance the software khmer
https://github.com/dib-lab/khmer/blob/master/LICENSE where it is stated
"Copyright (c) 2010-2014, Michigan State University".

This is going to be my last email on the topic cause I think we are already in science fiction territory by continuing this chat :wink:

Before i replay a little disclaimer. I work for a company that provides contract research, offers a scientific software lib (ReaxFF+) and generation of parameter files.

Paul Saxe wrote:

A code guru can accumulate modifications and extensions to VASP — again capital — to help him compete and make a living. Or can he under the terms of the GPL? Certainly when he joins the LAMMPS foundation he cannot — or at least he must give everyone in the community access to his modifications. Much as professors may be taking advantage of you, letting you teach their students for free, our software guru or at least a foundation of gurus will be *forced* to let other non-affiliated gurus take advantage of them.
We are embarking on an interesting experiment with LAMMPS under the GPL. I may be wrong, but my personal belief is that this has doomed LAMMPS. It will not take anything away — LAMMPS code will be freely available — but that as the government stops funding it the development will slow and stop due to this dynamic.

Before i replay a little disclaimer. I work for a company that provides
contract research, offers a scientific software lib (ReaxFF+) and
generation of parameter files.

Paul Saxe wrote:

A code guru can accumulate modifications and extensions to VASP — again
capital — to help him compete and make a living. Or can he under the
terms of the GPL? Certainly when he joins the LAMMPS foundation he
cannot — or at least he must give everyone in the community access to
his modifications. Much as professors may be taking advantage of you,
letting you teach their students for free, our software guru or at least
a foundation of gurus will be *forced* to let other non-affiliated gurus
take advantage of them.
We are embarking on an interesting experiment with LAMMPS under the GPL.
I may be wrong, but my personal belief is that this has doomed LAMMPS.
It will not take anything away — LAMMPS code will be freely available —
but that as the government stops funding it the development will slow
and stop due to this dynamic.
----

I agree with what Paul wrote. In our case the GPL makes it impossible
for us to offer a lib of our changed implementation of ReaxFF (with
improved charge equilibrium scheme) for LAMMPS if you don't want to give
away your business. It takes quite some time to gain the knowledge to be

this logic just has one problem:
if all potential contributors would think the same way, there was no
project worth contributing to and instead we would have a fragmented
market with competing variants that all have some additional features,
but they may not even be compatible.

also, i believe that this way of thinking is that of the past, where
having more and improved features is the main selling point. but as
the user base is growing and at the same time the complexity of
simulations and setups, the need is more in the expertise to set up
suitable workflows and to validate them. new features or improved
models are becoming simply an enabler. we may not be there yet, but to
me this is the direction simulation tools and simulation in general is
heading to.

able to implement a multibody forcefield and add your own improvements
to it. In an academic setting you gain that level of knowledge when you
are near the end of your thesis. After finishing the Ph.D. you're
heading off to get a job and start doing something completely different.
At that point the next Ph.D. student takes over and it takes a year
until he understands what has been done. In this cycle you just loose a

this is assuming that you actually *can* get students that are capable
of this and are willing to do this. in both cases, it is getting
increasingly harder. even though computers are everywhere, computer
literacy is at a decline, especially in science. ...and given the
current research situation, any smart student would not even want to
spend the time developing these skills and writing the software
needed. as it would be time lost that could be spent on producing
results that can be published. just compare typical posts from mailing
lists for scientific software. 10-15 years ago people would typically
ask in a style of "i am trying to do X, i got this far by doing Y and
Z and applying what was written in the documentation on pages A, B and
C, but how do i go from here?" or "I did X and i expected to get Y,
but instead i get Z. this doesn't match what is written in paper A.
could this be a problem of the code?". nowadays, you will primarily
get request of the kind "does somebody have a script/tool/input to do
X?" or "i am new and want to do <incredibly complex thing>, can
somebody give me simple step by step instructions" or "i did X, but it
doesn't work. does somebody know how to fix this software?"

tremendous amount of knowledge and time, which from the point of view of
a professor doesn't matter so much because you can just get more Ph.D
candidates, to get the work done.

yet, on average the time it takes is increasing, and the quality of
the work is decreasing and i suspect most PIs either don't realize
this because they are too busy competing for funding sources that they
don't even have the time to see it, or they conveniently hope that
this will go away if they get more funding to have more students
working for them. i am doing a *lot* of training in various
programming techniques for scientific applications and over the last
decade, we had to massively simplify the curriculum of activities, in
order for them to have a visible impact. on average, we see that
people have some vague knowledge about most of the topics, but it is
often very shallow and thus we see people often struggle with rather
simple problems. mostly because they never spend the time of really
understanding the problem, but only memorized a pattern or recipe.
thus if there isn't a webpage that gives simple "do this, than that"
instructions, problems quickly become insurmountable. only if we force
people to stick with solving the simpler problems thoroughly until
they have completely understood the solution, we see that they can
transfer this knowledge to more complex problems and suddenly many of
the formerly insurmountable problems become solvable again.

If you invest so much time to get good at something you probably enjoy
what you're doing. Unfortunately there aren't so many positions
available where you get paid doing scientific coding. You either are
stuck at one Post doc position after the other until you're too old and
"drop-out" to get a real job or your get one of the really few positions
that are available in that field.

that is exactly my point. and that is why it would be a good thing to
outsource some of the work that is currently handed off to students
and postdocs that do not have the sufficient experience and expertise,
but in order to get there, it takes a change in attitude from the
people that have the money to spend. in the end, there is a
win-win-win scenario: PIs get their developmental work done more
efficiently and competently (mind you, this will primarily be building
workflows and tools to set up and analyze simulations for specific
purposes), people that do have an interest in a career in scientific
computing have more choices, there are more jobs for people that
currently fall off the rim once they are beyond the point where they
can do their n+1st postdoc, and scientific software would be managed
and developed more professionally and reliably.

i understand why you think the way you think, but i very much believe
that this is becoming an outdated business model. at the moment it
mainly works because the community has not realized how the situation
is changing.

axel.

oh, and i forgot one issue with "closed source add-ons": bugfixes.

for example, several of the add-ons that paul's company contributed to
LAMMPS had problems and inconsistencies that were primarily found and
resolved by the LAMMPS community developers and that was only possible
because the source was available. nothing serious, but rather subtle
and thus most regular users would not have noticed.

axel.

software license, to me, is the limit. I know that what I will say will sound extremely naive, but it has also an interpretation as a political stand. i, as a scientist (or a scientist wannabe) have the ultimate goal of enlarging the knowledge pool, aiming to gain wisdom. I do understand that my goal is not pursued by everyone, I am ok with that, but I regard as dangerous phrases like (sorry if my quote isn’t literal) “it’s GPL code what marks the demise of LAMMPS”. for one, I’ve already heard prophetic sentences like that one before, and not all of them have become true (coming to my mind is the “capitalism is doomed” trotskyish sentence). but also keep in mind the idea of lammps, as a scientific software that should improve the knowledge. as scientists, the contract is with society, hence the existence of (as Paul comically says) “government funded open source software”. scientific software is science. most of the science (thought as the one that has the goal I previously stated) is government funded, because it’s society funded. usually when someone says things like I’ve just said, people that don’t share this view of science usually get offended, because they think I am attacking their work. I think it suffices to say that I highly respect your work, and I have no doubt that many of these people do things I’m interested in much better than I do.

as a political stand, I do not like non-open software, I don’t use it, almost never will, and I don’t like working with people that use, for example, matlab. but that’s a personal view, and very dependent on how I feel towards my coworker. (there is also the question as to which business model leads to better software, like bugfixes, code duplication, homogeneity of styles, refactoring easiness, etc)

with all these, I do love the idea of a lammps foundation (at least as a theoretical thought, I don’t think it will actually be done) and more general the idea of software gurus that spread simulation knowledge for a living.

pablo