Thoughts on the 2017 Conference
As the sun begins to set on the ERPNext conference 2017 here in Mumbai, I clearly can see how we have stumbled into a classic Hayek topic: The coordination problem. Who is this guy, what does he postulate, and how can this help us find our roles within the broader ERPNext community scope? The following quote is from Gerald P. O’Driscoll’s book freely available here:
The proper field of economic study is, in the first instance, the type of relationship into which men spontaneously enter, when they find that they can best further their own purposes by approaching them indirectly (Philip H. Wicksteed, “The Scope and Method of Political Economy” .)
Let that sink in for a moment! Think about the individuals present at the conference (and those absent as well). Thus, our ERPNext community can be defined as:
…a type of relationship into which men spontaneously enter, when they find that they can best further their own purposes by approaching them indirectly.
The devil is in the details, where do you draw the line between ”own purpose” and ”community purpose”?
We spent the better part of October the 13th vigorously discussing this. In true “bazaar” atmosphere, the microphones at the auditorium moved from one speaker to the other inside the auditorium at blazing speeds. While some members discussed, others observed, others perhaps intervened ever so briefly, and at least one person “meditated” so profoundly in his seat, that his heavy breathing became what I know as “snoring”.
Mr. Hayek won the Nobel Prize in Economics as a shared prize and one of the reasons was for his
penetrating analysis of the interdependence of economic, social and institutional phenomena.
Let us now turn to the master himself Friedrich Hayek :
It will be obvious…that nothing is solved when we assume everybody to know everything and that the real problem is rather how it can be brought about that as much of the available knowledge as possible is used. This raises for a competitive society the question, not how we can ‘find’ the people who know best, but rather what institutional arrangements are necessary in order that the unknown persons who have knowledge suited to a particular task are most likely to be attracted to that task.
The “elephant in the room” yesterday (Oct 13) at the auditorium was precisely what Mr. Hayek has postulated.
Application to our case (premises)
- Everyone does not not everything regarding ERPNext and its inner workings.
- How can we best use all the available knowledge of Coding, Project management, Open Source, ERPNext, Accounting, Processes, Human Resources, etc.?
- Those who know best about specific topics mentioned above already exist.
- What institutional arrangements are necessary to attract to a task at hand, those unknown people who have the best knowledge to fulfill that particular task?
I believe that @rmehta and others before me have answered the 4th question perfectly:
Necessary Institutional Arrangements
A brief, 30 second visit to the link above will show you how neatly these arrangements have been centralized in one place. You see these categories:
- Explaining what the modules in ERPNext do
- business domains that ERPNext supports out of the box
- A fantasic section with further Institutional arrangements for the community (GitHub, this forum, service providers, apps,etc.)
- How to get started
- Abundant documentation
- Localization portals
- Foundation and its structure, activities, etc.
So, the institutional arrangements are clearly in place! This answers the question #2 posed above.
ERPNext foundation is the necessary and sufficient institutional arrangement, that will attract the best available knowledge for the current tasks at hand.
So, what is next?
In my own limited knowledge and experience, there is only one possible outcome from the current institutional arrangement: spontaneous order. (This is precisely the topic of my presentation as a user on Oct 14)
The Spontaneous Future
(According to what I understand, anyway, and what Ludwig von Mises stated)
It is clear that we all attended the conference, and actively participate in these topics, giving so much of our time, because we clearly prefer to live in society, and not isolated from it. It does not mean we are socialists, it just means we individually choose to participate in society. Check out these premises:
- Man / Woman will act to improve his or her current state (reduce his specific unsatisfaction)
- Humans are capable of choosing
- Everything in this universe is relatively scarce. Humans are subject to opportunity cost.
- Humans are imperfect and fallible, they make mistakes, The Universe is thus, full of imperfections.
- Work, by itself is not wealth. We sacrifice something to obtain a desired result. We seek to do things in the fastest and simplest manner.
What does all this have to do with ERPNext?
Since I cannot profess knowledge of what others will do, I will only venture to state my expectations based on these premises stated by Ludwig von Mises in his seminal work: Human Action (Study Guide here).
1. As more people use ERPNext, many more will join in and ask many questions. The appropriate direction to suggest for them to follow is to take a glance at the ERPNext foundation page, so they can best try to answer their questions themselves first. If this does not satisfy them, they are welcome to ask questions in the forum. With this resource, they can then make a choice on wether to contribute and in which way, to ERPNext.
2. @rmehta was very clear in stating “Better Together”, but he also showed that venn diagram where we have a combination of three different roles related to ERPNext: Developers, Users, Service
roviders. This means that work is to be done individually up to the standards already set forth in developer videos and other widely available documentation, then submitted for user and community evaluation before it can then be considered for merging to the core.
3. Tasks for improvement DO have to be categorized, prioritized, and an owner from the community assigned to them. Frequent releases, even if the GitHub code is incomplete (state it clearly in the Readme) seem reasonable, so that if an owner eventually abandons a project for whatever reason, others can pick it up. I foresee logical groups of 3 to 5 individuals on specific tasks. This will ensure the “flywheel is spinning faster”
4. Only one task per module or feature should be expected per a logical time period, items in the list after priority #1, have to wait. This enhances focus, because for all our “multitasking glory”, it turns out we are lousy at it as humans. I suggest setting 5 priorities per quarter/trimester for each module or major feature, and expecting only the first to be actually implemented into the core by the end of the quarter. This takes a lot of pressure off core developers and service provider developers. Keep it simple. I suggest a quarterly rhythm because, in my experience, it provides ample time to act as necessary to accomplish the stated objective.
My plan of action
- I hired a developer locally to help me execute what I clearly do not have time to finish programming, we meet once per week, check our specific tasks towards our goal, and work in chunks. Each of us has one task per week. I also chose to participate in the AgriNext module.
- All our software is being pushed to GitHub, even if it doesn’t work yet. The code is there. I have creatd repositories for our planned software (ideas) even if not a single line of code exists, This pegs to the existing necessary institutional structure concept.
- Only one application is close to functional release of V1. Code will be commented in english and spanish, given that our target application solves a specific problem. Documentation will also be included. Even if it only is one sentence. Future commits can include more abundant and clear documentation as well as comments.
- We will follow the same process for each application.
- Since code is available for testing, after a round of issues and community support for it, a pull request can be made if deemed necessary, so that the core integrates it, even if it is a separate app. I understand test cases, but until I have a firm grasp of this concept, the users are the best source for finding bugs and limitations, or confirming the app works as expected.
- It is clear that ERPNext foundation reserves the right to reject merges to the core. If this happens, nothing is lost, I simply will promote the installation of the app separately, under an open source license equal to ERPNext. I don’t want to force anything into the core. If they like what our software does, take it! The code is there. I’ll gladly send pull requests when I consider the app ready for one. Not before. I don’t want crappy code in the core, and neither do you,
- Upon releasing all that I intended (2 years) I will switch to a maintenance and monitor focus, to verify further ERPNext releases don’t break a separate app. If in the core, I delegate it to the foundation and core developers to manage and will give input as necessary. This also means that one has to pay $ for that delegation, something which I will gladly do. I can then move on to those projects where I intended to USE the software to solve real world problems.
As we move forward and get to work, I would like to extend my profound appreciation to each and everyone in the core team for organizing and hosting this event. I have benefited immensely in knowing each person involved, and have not only read, but personally experienced the feelings of all members of the core team. I am also appreciative to the volunteers, attendees, and everybody who contributed to this event. It is fantastic to visit India with such gracious hosts. For those who have not come to a conference in India, I highly suggest you do. You will learn a lot and will be given a chance to contribute as well.