Hi, I'm @quickfold, a daily Freeplane user for 10+ years. I've been very active in Freeplane discussions and development from June 2021 until about 2 months ago. I began active contributions to Freeplane after a post I made arguing that Freeplane needed better documentation, and on Dimitry's invitation, I started working on that documentation. Since then, I have spent over 100 hours developing Freeplane documentation, a small portion of which is posted in draft form on the site https://freeplane.github.io/wiki/#/. I went through the entire Freeplane website, available books on Freeplane, the tutorial mindmaps, @kewapo's Spanish user manual (which I auto-translated into English), the Full Circle Freeplane tutorials, and I consolidated all of their information into one organized outline (this took a very long time, which is why the visible output may not seem to reflect the amount of time I spent on this project). I talked with Dimitry live on Zoom for 1-2 hours per week for several months to understand Freeplane so I could explain it to others and worked with Dimitry to plan, implement, and test improvements. I also worked with other users off-line on this project. I have lots of other documentation notes, fragments, etc. that unfortunately are not useful for posting in their current form.
I drastically reduced my level of participation a few months ago because I became skeptical that Freeplane could ever become a highly popular program accessible to the average user. I'm still interested in using Freeplane and contributing, but it doesn't make sense to make documentation a major priority for me if the program has no hopes of reaching the average user. I'm going to explain my reasons in hope that someone can suggest a way forward or convince me that I'm wrong about its potential. At minimum, the post will provide crucial context that I didn't have 6 months ago for people that might hope to contribute to the project going forward.
If you are one of the members of the community who think that Freeplane (FP) is fine as a niche tool and shouldn't change direction to attract average users, please don't respond to this post. I understand your position, I disagree, and I'm looking for constructive comments or advice on making FP more accessible.
First, there is no avoiding the fact that the main Freeplane developer, Dimitry, is what determines Freeplane's future. Dimitry is a genuinely good guy and has stood behind Freeplane for years and I believe he will stick with it. People like me who use Freeplane daily have him to thank for the great things about Freeplane. The other listed developers, as far as I can tell, play very minor and intermittent roles by adding specific functionality, not by working with Dimitry on Freeplane's core.
But since Dimitry is the sole authority / BDFL on Freeplate, his approach both enables and limits Freeplane's development. I am sorry to be talking about Dimitry in the 3rd person like he is not reading this, but he is not interested in discussing this topic further over email, and I want to reach out to the community before totally giving up on making Freeplane a tool usable by a much broader audience (and to be clear, I am NOT talking about dumbing FP down or removing functionality). When I started working with Dimitry, the first thing he told me was that FP decisions are made by consensus, and I think at the time he believed this (obviously all comments about Dimitry's approach or thought process are just my personal take on things, albeit based on a lot of observations), but it is simply not the case that FP decisions are made by consensus. Dimitry may be clearer about this fact after working with me for a while. It seems to me that Dimitry does listen to others, but once he feels he knows enough to make a decision about something, and decides, he does not want to continue the discussion—he wants to implement his decision, and he is willing to explain his reasons, but he does not want to be challenged on his reasons, and he does not want to be pressured to change his decision. You have all seen this in his frequent posts about not being confrontational or directly challenging others. But that's not, in itself, the problem.
Here is the problem. Dimitry is perhaps the most NON-average user of Freeplane. His intuition about what makes sense from a user perspective is the about the LEAST representative intuition you can get. But he is highly resistant to arranging Freeplane in ways that do not make sense to him personally when he is interacting with FP. He is open to implementing changes that he is neutral about—things he would never do or has no current opinion about—but not anything that goes against an opinion he does have. In the abstract, I believe Dimitry really wants Freeplane to have great impact in the world. Freeplane could potentially be 1000x more popular than it currently is. It could be tremendously helpful to people who can't pay for commercial mindmapping programs, such as people in developing countries, and to non-English speakers, since it has an intergrated system to contribute translations. But it is not suitable for most users that could benefit from it because it is very poorly documented and it is very confusing to learn and use.
Dimitry does recognize that he is not good a writing documentation, so he doesn't even try, leaving it to others. But he does not recognize that he is not good at knowing what makes sense to most (non-programmer) users, or even if he does recognize this, he is not willing or able to defer to others' judgments about what makes sense. I am not a UI expert, but I have decades of teaching experience, including teaching software and very complex ideas to hundreds or thousands of students, and my intuition about what will confuse the average user is probably much more accurate than Dimitry's. I think that Dimitry recognizes this fact in the abstract, but when we disagree about any specific decision (such as what is a less-confusing way or more sensible way to display information), he falls back on saying something like "neither of us have any data on this so your opinion is just baseless speculation" as a way to justify rejecting my position. Or, if he gives his reasons for a decision, and I respond to those reasons with opposing reasons, he ignores my points. I'm not criticizing him—we all have our particular ways of interacting. I'm just stating the facts, and you all can look at forum posts to confirm/disconfirm my analysis.
But even if my intuition about what makes sense for Freeplane is wrong in some cases, I'm open to doing things in a way that does not make the most sense to my personal brain/mental approach if there is good reason to think that my intuition is wrong, which might include such as feedback from average users, opposing reasons, data about UI in general, and the way other mindmapping programs do things. In my view, this type of mental maneuver is very hard for Dimitry—it is hard for him to imagine why other people might see things differently from him and accept that, if we are interested in creating a tool with social impact and broad usability, often what makes the most sense to him personally as a Freeplane user is not the best decision strategically to make Freeplane a useful and usable tool in general.
I could give you many examples of decisions about improving FP going in the direction of the more technical/flexible/confusing solution rather than the more learnable/understandable/user-friendly solution. Dimitry is also, in my experience, very hesitant to make any changes that forum users object to, even if there are only a very small number of actual complaints. Freeplane users, myself included, are a very particular bunch and often want FP to work for them in specific ways, so they often resist any changes to their workflow. This is why FP has just added and added and added functionality over the years, without adding documentation to keep up, and is now impossible to really learn and use without asking for help on the forums here. That's an absurd situation for such a long-standing program. Some (many?) user forum questions never get answered because Dimitry and/or the community do not reliably respond to all questions, and many times this may be because no one but Dimitry actually knows or can figure out the answer. So that kills FP as an option for the average user. For 99% of people, if your questions are not answered in the documentation and no one responds to your question on the forums, you will leave for an easier-to-use and much more limited or expensive product.
I agree with Dimitry about many aspects of Freeplane development and decision-making, including the notion that he shouldn't change Freeplane in ways that he fundamentally disagrees with. But since he often disagrees with changing Freeplane in ways that are more user-friendly and agrees with changing Freeplane in ways that add both to Freeplane's functionality and learning curve, what I hope is that he can adopt a new framework for evaluating the changes he disagrees with, and should not disagree with FP changes just because they don't match HIS intuition of how HE would use it. Or maybe he incorrectly thinks that his intuition about using FP is likely to match the intuition of most other users. The truth is that Dimitry doesn't actually USE Freeplane except to develop it—it's not a tool he uses for non-Freeplane tasks. And even if he used it daily, his experience is totally non-representative of the typical Freeplane user experience.
OK, so this is sort of like the mega-post linked at the top that started me down the path of spending all of my free time on FP. Comments from Dimitry and all other community members are welcome.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am sorry to be talking about Dimitry in the 3rd person like he is not reading this, but he is not interested in discussing this topic further over email, and I want to reach out to the community
I think that this kind of discussion belongs to the community. I am totally fine with referencing me in the 3rd person. If someone wants to contribute to the discussion don't hesitate to write your comments in this thread.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is a lot to unpack to say the least 😅. I think this is also a good topic to discuss on the upcoming online event, though things might get heated if I'm reading the room correctly? 😂
I like to think about changes in terms of "Adjacent Possible" . Basically what features can we implement now, as of this very moment, that could be highly beneficial. And a restructuring of a decade's worth of code for a ribbon UI is very much out of our Adjacent Possible even if it's exponentially beneficial. But the good thing is, if we develop and transform, little by little, enough times, we're going to encounter a new set of Adjacent Possibilities!
I also think this post also highlights a common problem in FOSS, that these programs can't scale well. By scale I mean, it struggles to expand so that it can provide (or will be able to provide) the needs of its large user base. To maintain a happy large user base, you would likely need to have a large development team behind it too. Though I'm not saying Freeplane is destined to have a small user base, I'd like for this to be discovered by a lot of people too, which is why I want to help by making it look pretty! I'm just stating the reasons why I think FP is not as popular as it could be.
Despite this, I still see where you're coming from @quickfold . It's hard to see a really capable program not getting the recognition it deserves and how its development is limited by lots of different factors, one being the person you need to work with isn't convinced with your ideas. Ironically we are kind grateful that we get to build on top of the code Dimitry and Freemind's developers have previously written but we're also fighting with it as the code isn't likely to be versatile to begin with (which is just the nature of FOSS I guess).
When I first made my post about my problems regarding the UI, it led to many conversations with Dimitry about how Java Swing works and how some of my suggestions regarding the UI are pretty much impossible in Swing but is possible in Java FX. It enlightened me on what will likely be implemented, so I focused on those "likely to be implemented" stuff instead, rather than hoping Dimitry could consider dedicating his free time for the next few years to transfer everything from Swing to JavaFX 😂. And with a fortunate turn of events, I'm pretty happy with how my suggestions affected FP's UI even though it's not what I expected initially. So maybe an outcome like this is also possible for the changes you want, @quickfold ? A solution that we didn't initially envisioned but mainly solves the same problem we encountered?
I could help with the documentation too as I think it's the next big thing I can help with after the icons facelift etc. I also really like how pretty the documentation page looks! (even though it doesn't have a lot of content)
Lastly, instead of getting into the weeds of how one argued with another (that will likely confuse me anyway 😂) maybe you can add another post or edit your existing post about the vital features or general big picture direction you think Freeplane is missing out on? So we've covered the Ribbon UI and the documentation, what other ideas/features have you tried to convince Dimitry of?
❤️
2
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I drastically reduced my level of participation a few months ago because I became skeptical that Freeplane could ever become a highly popular program accessible to the average user. I'm still interested in using Freeplane and contributing, but it doesn't make sense to make documentation a major priority for me if the program has no hopes of reaching the average user. I'm going to explain my reasons in hope that someone can suggest a way forward or convince me that I'm wrong about its potential.
If I were you, my pragmatic approach would be: forget about the documentation. The UI/UX is the current bottleneck for FP to become a "highly popular program accessible to the average user". Until FP doesn't become very solid about it, creating an extremely well thought documentation will have very little impact. It will take you a lot of time, and result in more frustration for you. In the end, it can pay out if Fp actually becomes more popular, but it's too risky to invest your time on it right now.
Being more clear: what breaks the deal for the average user is the UI/UX, and not the documentation. If some user is interested in an advanced feature of FP that is not enough documented, the Forum will 99% of the time solve it. I've been following the forum, and everything is being solved. It's unfair to say that the support here is not good enough.
Now, to put into use all the time you already put into the documentation, I suggest the model that I already talked about before: a documentation built bottom up and by peasant users. A documentation built by a small number of users with high credentials is unsustainable, as it will always be necessary to have a super motivated person to do the job of documenting all the changes.
Create an outline of topics in a wiki, and promote a culture of small contributions to the wiki. The documentation won't be pretty, but it will get good enough after some time.
The Sourceforce Wiki seems good enough for that. Anyone registered in the forum can
comment there. It's frictionless. I know Dimitry dismissed it before, but it would be interesting to reconsider, as the other option failed.
About Dimitry's decision-making, it seems that the best option is to just accept it as it is. So, try to see it like this: Dimitry likes to compare himself with a working horse. Horses make excellent working partners, but sometimes they refuse to follow a certain path, for unexplainable reasons. In that case, the best solution is to take another path, even if it's a bit longer 🤣.
Seriously, the overall picture of decisions made by him are correct. There is only a small portion of decisions that can be subject of criticism. So, let's not throw the baby out with the bathwater.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hmmmm while I agree that the UI/UX is bit higher in priority compared to the documentation, I don't necessarily think it's that hard to at least cover the general features in FP. Though that may just be me, since I'm a teacher and do lots of outlining for my lectures so I'm used to this type of stuff.
I think both are essential to for the betterment of FP but right now yea, since we're developing the new icons right now anyway, a better UI is much easier to achieve.
I kind of see it as a funnel, you know marketers say there's a sales funnel and the customer goes through each stage. The first stage being the customer gets introduced to the product then later down the line gets more familiar with the product, then eventually becomes a buyer if everything goes right.
I think there's a user funnel too. Where the program gets first introduced to the user, either the github or sourceforge page
And honestly the current sample screenshots aren't that enticing… and very dated. Also the user has no clue on what are the general features FP brings to the table. A feature overview would be great
This landing page is filled with examples, use cases, and gifs that highlight a particular feature. UI would be a good thing to showcase here too. I think the current content of the documentation can provide at least some of these things.
Then once the user downloads the program, installs it. The next part is being able to guide him through the program, like an onboarding sequence or, of course, a ready documentation for the user to go through. So in this phase, UX, tooltips and the documentation go hand in hand to cultivate the user's relationship to this program.
Then honestly we can stop there and everything else is optional. But if there were other phases, I guess it would be for the user to become very proficient in FP and/or becoming an active member in the community, then finally becoming a contributor which would be the best case scenario.
The introduction and cultivation phase is I think where we're lacking in and is currently holding back Freeplane's potential to reach more users and consequently more contributors.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dimitry, I just noticed that you have deleted some of my previous forum posts without notification to me, and they are now not available to me in my own Sourceforge history or the forum search. I understand if you disagree with my statements, but it is hard for me to participate in discussions if I am worried that my comments can disappear in ways that will prevent others from seeing them in the future. Can I ask you to commit to not doing this in the future? Of course you are always welcome to respond to these posts and tell me I am wrong.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dimitry, I just noticed that you have deleted some of my previous forum posts without notification to me, and they are now not available to me in my own Sourceforge history or the forum search. I understand if you disagree with my statements, but it is hard for me to participate in discussions if I am worried that my comments can disappear in ways that will prevent others from seeing them in the future. Can I ask you to commit to not doing this in the future? Of course you are always welcome to respond to these posts and tell me I am wrong.
Quickfold, I am sorry but I want to neither give you such commitment nor tell you that you are wrong. I think I have never deleted any other posts in the past because of their content. However in these cases I have not found any better way to answer the posts then deleting them because I considered them harmful. Let me explain you my reasons and hope for your understanding.
I want to maintain safe environment for myself and for all community members. It means that I want to avoid any kind of public person related critique, personal confrontation and person related remarks or pressure. I want to avoid and abandon posts containing such statements completely because I find them inappropriate in any public communication. We are neither a quarreling family nor a parliament. At the personal level only words of respect, recognition and support should be expressed. I believe that personal and judgmental expressions like "you are wrong", "your decision XY is wrong", "why have you done XY", "I disagree with you" and insisting on answering to such claims are harmful for the reputation of their writer, for the reputation of the addressed person and for the community as a whole. Mixing factual and personal levels makes constructive discussion very difficult.
You can see this response as example of what I consider a better way to express disagreement. I expressed my reasons and disagreement not touching the level of our personal relationship. I am describing the point in general and not attaching it to persons. I wish you decide to implement these principles in our future communication.
Last edit: Dimitry Polivaev 2022-02-17
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dimitry, what should I do if I disagree with you about whether my words are harmful, or if I feel that you have violated the standards of personal respect that you are advocating here and harmed me in the process?
The post that Dimitry deleted was a post where I was pointing out that, in my opinion, Dimitry was violating the standards that he outlines here as unacceptable speech. I won't explain the details out of fear that Dimitry will delete this post also.
Please note that a discussion in which you feel free to delete any conversation that you disagree with can leave others feeling unsafe. I am feeling unsafe here if you can write things that might offend me, but if I point out that you have spoken in a way that offends me, then you delete my comments.
I do not think that the post of mine that you removed violated any of the standards or rules that you have mentioned in your post above. The community cannot judge since you deleted the post.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not long ago I was talking to a friend. We disagreed about an opinion. Strongly disagreed. The things he was saying were ridiculous. And I could gather he thought as much about what I was saying. Were we still good friends then? Or were we enemies, thinking the other person is so wrong, maybe even stupid to have these ridiculous thoughts?
I told my friend I'd rather hear him saying that he disagrees with my opinion rather than me personally; I'm more likely to change my ways if I hear him saying how he feels about me doing/saying something rather than him telling me to stop or change doing/saying something.
We were still good friends. The disagreement was about our opinions, which we did not like. As soon as we shifted our focus from the other person to his opinion, it was much easier to talk. We started saying how we feel, and the other person started to try and understand that feeling or at least acknowledge the fact that someone might feel that way in such circumstances.
We both said we were hurt by the other saying or doing something. We both said that we had no intention to hurt the other person and that we were sorry. We started to think what we could do to make amends, to fix what each of us broke.
I would like to be part of a community where such conversations are possible, where people express their feelings rather than tell others what to do, where disagreements are about opinions not people, where we try to act with compassion so that the injuries that were caused (to us or to others) can be healed.
❤️
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I definitely agree with everything macmarrum expressed here. I want to have a free space for everyone expressing personal feelings, observations and ideas and arguments and to agree or disagree on ideas freely without a fear to be judged as a person .
For me the quickfold's statement "I feel that you have violated the standards of personal respect" does not sound as a feeling. It sounds rather as an accusation, a judgement about me and by behavior. And it sucks. Reading such posts I do not feel safe myself.
This project exists mainly through my efforts with significant help from many other people. I have been working on it since 2007 and always trying to do my best in both coding and communication, being open to different opinions and trying to integrate them, make good decisions and so on. Such posts are able to question my integrity as a person and the whole thing. They are not the way to reach any positive developments.
If you were me how would you react?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dimitry, I also agree with everything macmarrum says. I have to point out that you said I wrote something, and put a statement in quotation marks, that omitted words that changed the meaning. I am not accusing you of any intentional wrongdoing. At minimum, we must take care to accurately quote what people actually said. This might also indicate to you that you may have unintentionally misinterpreted what I wrote or what I meant to write.
My words were not from a statement, but a question I asked, and it was an honest question: "Dimitry, what should I do if I disagree with you about whether my words are harmful, or if I feel that you have violated the standards of personal respect that you are advocating here and harmed me in the process?"
Note the IF in "if I feel that".
You told me that my statement feels like a personal attack to you and asked how I would react. I'll tell you—if someone said that they felt I had violated the standards of personal respect, I would ask them to explain with a specific example so I could clarify my intent, apologize if I thought it was necessary, rephrase if necessary, and rebuild the trust. I do apologize that my statement upset you. I am not trying to attack you. But it is the case that all of us, myself included, sometimes say things that upset others, and when others point this out, it is not an attack on us. For example, you are stating that my post was a personal attack on you. Is your statement then also a personal attack me? Where does it end? People in a community have to be able to freely express their feelings, including the feeling that others are speaking rudely to them, without fear of censorship. Short of something that uses explicitly rude language, I don't see any benefit in deleting posts.
You repeatedly state that you don't want anyone saying that individual people or ideas or wrong. I am not sure how to post this without you deleting it again, but hopefully you can respond. You posted a response to me saying "Your [quickfold's] claim that the majority of users would be looking for markdown related helper styles is worse than a speculation, it is obviously wrong, because we can not expect the majority of users to use markdown at all".
When I posted, asking why this did not go against the forum standard of not telling others they were wrong, you deleted my post. It is not an attack on you to ask this question. It is a fair question. It is a question, not a statement accusing you of something. Perhaps you made a mistake. Perhaps you changed your mind. Maybe what you wrote is fine by your standards, and what I wrote is not, but it's not clear to me why this is the case.
So, please advise. If you think that your statement is within the bounds of conversation that you advocate, and that my statement is not, can you please explain? I'm not angry or even highly insulted that you said my idea was "obviously wrong" — I just wanted to be treated by the same rules that you keep asking me to follow.
If you want to post forum guidelines "no harmful content" or "no stating that others are wrong" then that is fine—I am happy to be as polite as I can be. But I do think it is fair to have everyone, including you, meet those standards. And I am concerned if you are allowed to tell me I am wrong and then delete my posts if I ask "Dimitry, why is it ok to tell me I am 'obviously wrong'?".
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Quickfold, my general problem with your posts is that I feel that even just reading them and even more answering to them drains a lot of my energy. I am not sure why exactly. Maybe because they are pretty long. Maybe because they are complicated. Maybe because I do not understand them correctly as it might be in the following example
My words were not from a statement, but a question I asked, and it was an honest question: "Dimitry, what should I do if I disagree with you about whether my words are harmful, or if I feel that you have violated the standards of personal respect that you are advocating here and harmed me in the process?" Note the IF in "if I feel that".
This sentence is just very complicated and it is easy for me to get it wrong. But I don't think that it is the origin of the problem. In the first post of this thread you complained
he does not want to be challenged on his reasons, and he does not want to be pressured to change his decision
This is a thing. I consider my continious work on Freeplane to be my gift to the world and to all people using it. I am not looking for money or for honor. Freeplane users are not my clients. When I work on Freeplane I want to spend my personal time and put my efforts in what I personally want to do. I do have all freedoms to decide how I spend my personal time, don't I? And I particularly don't want to spend my time on fruitless efforts to convince you or someone else about anything. You can call me a dictator (or BDFL), but actually the only resource I own is me. And therefore I want you to remember an old saying "Don't look a gift horse in the mouth".
I want to see this community as source of inspiration rather than people making decisions about what I should do. I follow the discussions and sometimes I prefer not to be involved in them. There are so many smart folks around. They carefully read your posts. They can participate in discussions and I am sure that Freeplane benefits from it.
So, if you really want to help, first of all I ask you to accept that my work on Freeplane is my personal project. Keep away from pressing and challenging me, don't insist that I answer all your posts. If you like to try doing a better job you can create your own fork. Some time ago I did it with Freemind because I saw no way to implement my ideas in that project. And feel free to advertise your project on Freeplane forums (which I was asked not to do on Freemind pages). Or try to find ideas which I would like to implement, cooperate with Freeplane community members, contribute content, be constructive, creative and positive and thankful.
👍
1
Last edit: Dimitry Polivaev 2022-02-25
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, taking a step back and looking at what happened in the last months, I got to this conclusion:
Maybe, me and quickfold have been acting like adults who put way too much pressure on a kid in whom we see a lot of potential. We frequently express our vision that FP can make a high impact in the world.
Quickfold and I are clearly type A personality, falling into the classic trap of type A people: expecting from others the same level of extreme rigor that we expect from ourselves. But, it doesn't make any sense to act like that with volunteers that we don't even know. If FP had a team of professionals hired to achieve the highest results, things would be different.
So, it seems that what happened is that things escalated to a point where Dimitry had to take strong measures to release this pressure. I suggest that the discussion around those measures be left for a future discussion, so we can now focus de-escalating the current tensions. Both sides seem to be upset, so it's better to leave for later the discussion about the acts taken during the emotional moments.
So the conclusion that I will take for me (and I invite quickfold to join me): Stop pressuring the kid (Dimitry, the community, and the project as a whole), and let things flow naturally.
If my analysis is correct, I suggest that, in order to avoid that this situation happens again in the future, this procedure could be adopted: if someone appears with plans that are too big, then present to him this experience that we had here.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If I were you, my pragmatic approach would be: forget about the documentation.
Agreed; for now, I've paused my participation in the documentation project.
About Dimitry's decision-making, it seems that the best option is to just accept it as it is.
If the consensus is that the decision-making won't change from what I described, and others agree with my analysis of the situation, then I'll accept that FP will never be a widely used tool and I'll stop pushing to significantly improve its accessibility.
Seriously, the overall picture of decisions made by him are correct. There is only a small portion of decisions that can be subject of criticism. So, let's not throw the baby out with the bathwater.
I also don't want to throw anything out. But I am not sure that I agree that the overall picture of decisions made by Dimitry are correct—many are probably correct, and many are probably incorrect. After 15+ years of development, Freeplane remains a very functional, barely documented, immensely confusing program whose UI scares off many casual users from even trying it and whose advanced functionality is only used by (I'll guess) a few dozen programmers worldwide who have taken the initiative to understand it.
I also think this post also highlights a common problem in FOSS, that these programs can't scale well. By scale I mean, it struggles to expand so that it can provide (or will be able to provide) the needs of its large user base.
Do you mean that they can't scale well or that they usually don't scale well? Aren't there some FOSS programs that are usable and popular? Look at something like the outliner Logseq (www.logseq.com)—it is powerful but can totally be used by average users before they learn all of the functions.
And with a fortunate turn of events, I'm pretty happy with how my suggestions affected FP's UI even though it's not what I expected initially. So maybe an outcome like this is also possible for the changes you want, @quickfold ? A solution that we didn't initially envisioned but mainly solves the same problem we encountered?
I'm totally fine with alternative solutions to usability challenges. I don't even really like a Ribbon UI myself, but the current UI is clearly not working.
The issue isn't about any particular issue or decision, it's about an overall approach to decision-making that affects many decisions, whether big or small, in Freeplane development.
I'll give an example of the type of situation I'm talking about. Consider the Style Editor. As an end user, I found/find the Style Editor extremely confusing. It has three types of style groups organized as children to a root node: technical styles (which include many different types of things, such as parts of a node, temporary "system" styles such as selected node, and floating node), user-defined styles (which are what word processer users think of as normal "styles"), and level styles (which are applied automatically by rule based on a node's position relative to the root). They are visually set up as three equal-level children of a root node. There is no explanation of what they are and since they are very different types of things, it is confusing as all get-out, and even if a user wanted to look at documentation to understand it, none exists.
To me, the style editor should show user-defined styles as a separate and primary map interface, and there should be a different style map/tab for styles for parts of a node, since these are a different type of thing in the user's mind (I think) and are likely to be changed less often across maps. I'm not sure if level styles should be together with user-defined styles or on a separate tab. The current presentation of the three types as three parallel groups is quite misleading. But when I raised this issue to Dimitry, he would justify the presentation based on similarities or differences the different groups of styles had in terms of the data logic behind the visual presentation. e.g. he made a comment that level styles couldn't be grouped with user-defined styles because user-defined styles have names that are input directly by the user but level styles have names (Level 1, Level 2) that are generated by the program. Whether the style names are programmatically generated or whether they can be treated identically by FP behind the scenes are totally irrelevant to the user experience, but to Dimitry that type of difference is the end of the conversation because he can't imagine grouping things together that, to him as a developer, are obviously different types of things. Of course, I don't think how the names are generated matters at all or would even occur to most users, so to me that is a poor reason to decide on the Style Editor layout. I may have gotten some details about this discussion wrong, but hopefully you get the main idea.
I don't want to discuss details of the Style Editor here. The point of the example is just to illustrate the thinking behind Freeplane development choices. This same conflict between a choice that makes sense from the user perspective and one that makes sense according to a developer perspective of internal logic/beauty/efficiency/parallelism (not what is technically possible, but what "feels right" in matching the UI to the internal logic of the program concepts) happens over and over. It doesn't affect every decision, of course, but it affects lots of them. I saw examples of this conflict in perspective repeatedly in discussions with Dimitry about numerous topics. I would say that something wouldn't make sense to users, and he would say that it made sense by referring to some aspect of how he, as a developer, mentally categorized programming elements when programming FP's functionality, and that was the end of the discussion. If I pushed him to think about the user perspective rather than the developer perspective, he would say that neither of us had any evidence to prove that we were right and that he would not implement something that didn't feel good to him.
If Dimitry could imagine ordinary users' needs or wants and make decisions based on that, OR if Dimitry was open to continued discussion a process where other community members could advocate for ordinary users' needs, then FP could develop in ways that could be accessible to more users. But if neither of these things is the case, then it seems hopeless to me.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Do you mean that they can't scale well or that they usually don't scale well?
You're right about my point about scaling. I meant they don't "usually" scale well.
I don't even really like a Ribbon UI myself
That's really weird. I was under the impression that you were advocating for it 😅
The issue isn't about any particular issue or decision, it's about an overall approach to decision-making that affects many decisions, whether big or small, in Freeplane development
I think Dimitry himself says that he prioritizes feature requests that are low effort but has great payoff. I think another one I've noticed is he prioritizes fixing things that are broken. So I think Dimitry's thought process can be simplified in a Venn Diagram of three circles: low effort, great payoff, and broken, I think what you mentioned about the Style Editor is only on the great payoff circle since he already mentioned that it would take a bit of effort to do. It's not broken either since it's certainly usable, to an extent, and is working as intended. To add to that, it's very vague and anecdotal how we measure its "usability", we don't necessarily have a concrete metric regarding "usability" other than following the industry standards. So even its placement in the great payoff circle is debatable.
I don't think I myself am entirely convinced the Style Editor is confusing. I agree it has its learning curve but I actually appreciate it for what it is now. Also, Mindmeister doesn't even have a style editor, only presets (which we already have) and a way to edit one specific node at a time (which we also already have as the formatting panel), so I personally think it's not going to be touched by a casual user because they'd just pick what preset they're most happy with. If one were to edit their own Map Styles, they would likely be a superuser (or will be) and have a really specific use case for it. So having a slightly confusing Style Editor is kind of a small bump in the road to consider flattening out if the end user is already taking a huge amount of effort to tailor FP to their uses, they likely have bigger bumps in the road than this IMHO.
Regardless, I can still see how this Venn Diagram can get problematic. We're essentially locked into a very small number of options to take Freeplane further. I'm not really sure what else to say other than it is what it is 😅. So if a feature request is basically denied, our options are limited to just finding another way the problem could be fixed, be it for the same problem we're trying to target or for another.
Despite this, I actually like talking about the usability of FP here in the forums, so if you have other usability challenges that you mentioned to Dimitry but haven't mentioned in the forums yet, please share :) Maybe we can all brainstorm for a better solution that has a better placement inside the Venn Diagram
❤️
1
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
One other thing to consider as well is that Freeplane is a fork of Freemind. I started using Freeplane years ago after running into issues with Freemind.
I am also an opensource maintainer who inherited/adopted a mature project (Roundup Issue Tracker). Just keeping the software working with updates to the underlying language is a challenge. If it wasn't for some dedicated and talented programmers, Roundup would have been killed off during the move from Python 2 to Python 3. I still have areas of the code base that I am uncomfortable working with. Also I have had "simple" changes that turn into a quagmire.
I agree with Rexel's assessment. Bugs, well scoped and easy fixes or enhancements (that don't require understanding/rewriting/modifying a lot of unfamiliar, untested inherited code) with a big payoff are at the top of my "todo" list. In some cases the "payoff" is something that I want. These are the things that prevent working on Roundup from being a chore. I have actually thrown away work because writing test cases for it was too difficult or testing turned up a failing test case that required a major change to other code. Adding the complexity of the new code without testing was just the wrong thing to do.
UI design and documentation are an ongoing issue with any tool and help there is always welcome.
But at the end of the day unless you can provide working code and tests that implement your vision, you risk driving away the people who are willing to and can maintain the tool for future use which is a significant job in and of itself.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Documentation mind maps distributed with Freeplane
a bunch of pdf documents, article series and video tutorials with slightly overlapping slightly different content
Our Freeplane Forum.
[...]
And if you ask me which of the above collaborative wiki tools I prefer, I think that https://github.com/freeplane/wiki has the most flexibility and configurability (docsify), allows to create better quality content with less effort, uses standard language (markdown), the right entry barrier important for spam protection ( a github account, Pull Request and easy way to get editor rights), quite good github's own in-browser markdown editor, versioning, and it the most up-to-date tool.
It has just got quite little content after it was started. And I would like to have a plan how we want to develop it.
In July 2021 I converted the content of the old wiki into markdown because quickfold asked me.
I am attaching the file here for the case you find it useful.
Dear all,
I would prefer to have new threads in this forum to continue the discussion about documentation and other about development strategy.
(in the open discussion forum, because the documentation forum has much less views)
I would let this one about how to interact as a team and collaborate accepting that all of us are different persons in different life stages coming from different cultures.
Although we use English as the common language, we all have different ways to interpret sentences and personal statements. In some cultures highlighting another's error is just that, and in other cultures, it is the usual way to insult somebody.
jm2c
edo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, I'm @quickfold, a daily Freeplane user for 10+ years. I've been very active in Freeplane discussions and development from June 2021 until about 2 months ago. I began active contributions to Freeplane after a post I made arguing that Freeplane needed better documentation, and on Dimitry's invitation, I started working on that documentation. Since then, I have spent over 100 hours developing Freeplane documentation, a small portion of which is posted in draft form on the site https://freeplane.github.io/wiki/#/. I went through the entire Freeplane website, available books on Freeplane, the tutorial mindmaps, @kewapo's Spanish user manual (which I auto-translated into English), the Full Circle Freeplane tutorials, and I consolidated all of their information into one organized outline (this took a very long time, which is why the visible output may not seem to reflect the amount of time I spent on this project). I talked with Dimitry live on Zoom for 1-2 hours per week for several months to understand Freeplane so I could explain it to others and worked with Dimitry to plan, implement, and test improvements. I also worked with other users off-line on this project. I have lots of other documentation notes, fragments, etc. that unfortunately are not useful for posting in their current form.
I drastically reduced my level of participation a few months ago because I became skeptical that Freeplane could ever become a highly popular program accessible to the average user. I'm still interested in using Freeplane and contributing, but it doesn't make sense to make documentation a major priority for me if the program has no hopes of reaching the average user. I'm going to explain my reasons in hope that someone can suggest a way forward or convince me that I'm wrong about its potential. At minimum, the post will provide crucial context that I didn't have 6 months ago for people that might hope to contribute to the project going forward.
If you are one of the members of the community who think that Freeplane (FP) is fine as a niche tool and shouldn't change direction to attract average users, please don't respond to this post. I understand your position, I disagree, and I'm looking for constructive comments or advice on making FP more accessible.
First, there is no avoiding the fact that the main Freeplane developer, Dimitry, is what determines Freeplane's future. Dimitry is a genuinely good guy and has stood behind Freeplane for years and I believe he will stick with it. People like me who use Freeplane daily have him to thank for the great things about Freeplane. The other listed developers, as far as I can tell, play very minor and intermittent roles by adding specific functionality, not by working with Dimitry on Freeplane's core.
But since Dimitry is the sole authority / BDFL on Freeplate, his approach both enables and limits Freeplane's development. I am sorry to be talking about Dimitry in the 3rd person like he is not reading this, but he is not interested in discussing this topic further over email, and I want to reach out to the community before totally giving up on making Freeplane a tool usable by a much broader audience (and to be clear, I am NOT talking about dumbing FP down or removing functionality). When I started working with Dimitry, the first thing he told me was that FP decisions are made by consensus, and I think at the time he believed this (obviously all comments about Dimitry's approach or thought process are just my personal take on things, albeit based on a lot of observations), but it is simply not the case that FP decisions are made by consensus. Dimitry may be clearer about this fact after working with me for a while. It seems to me that Dimitry does listen to others, but once he feels he knows enough to make a decision about something, and decides, he does not want to continue the discussion—he wants to implement his decision, and he is willing to explain his reasons, but he does not want to be challenged on his reasons, and he does not want to be pressured to change his decision. You have all seen this in his frequent posts about not being confrontational or directly challenging others. But that's not, in itself, the problem.
Here is the problem. Dimitry is perhaps the most NON-average user of Freeplane. His intuition about what makes sense from a user perspective is the about the LEAST representative intuition you can get. But he is highly resistant to arranging Freeplane in ways that do not make sense to him personally when he is interacting with FP. He is open to implementing changes that he is neutral about—things he would never do or has no current opinion about—but not anything that goes against an opinion he does have. In the abstract, I believe Dimitry really wants Freeplane to have great impact in the world. Freeplane could potentially be 1000x more popular than it currently is. It could be tremendously helpful to people who can't pay for commercial mindmapping programs, such as people in developing countries, and to non-English speakers, since it has an intergrated system to contribute translations. But it is not suitable for most users that could benefit from it because it is very poorly documented and it is very confusing to learn and use.
Dimitry does recognize that he is not good a writing documentation, so he doesn't even try, leaving it to others. But he does not recognize that he is not good at knowing what makes sense to most (non-programmer) users, or even if he does recognize this, he is not willing or able to defer to others' judgments about what makes sense. I am not a UI expert, but I have decades of teaching experience, including teaching software and very complex ideas to hundreds or thousands of students, and my intuition about what will confuse the average user is probably much more accurate than Dimitry's. I think that Dimitry recognizes this fact in the abstract, but when we disagree about any specific decision (such as what is a less-confusing way or more sensible way to display information), he falls back on saying something like "neither of us have any data on this so your opinion is just baseless speculation" as a way to justify rejecting my position. Or, if he gives his reasons for a decision, and I respond to those reasons with opposing reasons, he ignores my points. I'm not criticizing him—we all have our particular ways of interacting. I'm just stating the facts, and you all can look at forum posts to confirm/disconfirm my analysis.
But even if my intuition about what makes sense for Freeplane is wrong in some cases, I'm open to doing things in a way that does not make the most sense to my personal brain/mental approach if there is good reason to think that my intuition is wrong, which might include such as feedback from average users, opposing reasons, data about UI in general, and the way other mindmapping programs do things. In my view, this type of mental maneuver is very hard for Dimitry—it is hard for him to imagine why other people might see things differently from him and accept that, if we are interested in creating a tool with social impact and broad usability, often what makes the most sense to him personally as a Freeplane user is not the best decision strategically to make Freeplane a useful and usable tool in general.
I could give you many examples of decisions about improving FP going in the direction of the more technical/flexible/confusing solution rather than the more learnable/understandable/user-friendly solution. Dimitry is also, in my experience, very hesitant to make any changes that forum users object to, even if there are only a very small number of actual complaints. Freeplane users, myself included, are a very particular bunch and often want FP to work for them in specific ways, so they often resist any changes to their workflow. This is why FP has just added and added and added functionality over the years, without adding documentation to keep up, and is now impossible to really learn and use without asking for help on the forums here. That's an absurd situation for such a long-standing program. Some (many?) user forum questions never get answered because Dimitry and/or the community do not reliably respond to all questions, and many times this may be because no one but Dimitry actually knows or can figure out the answer. So that kills FP as an option for the average user. For 99% of people, if your questions are not answered in the documentation and no one responds to your question on the forums, you will leave for an easier-to-use and much more limited or expensive product.
I agree with Dimitry about many aspects of Freeplane development and decision-making, including the notion that he shouldn't change Freeplane in ways that he fundamentally disagrees with. But since he often disagrees with changing Freeplane in ways that are more user-friendly and agrees with changing Freeplane in ways that add both to Freeplane's functionality and learning curve, what I hope is that he can adopt a new framework for evaluating the changes he disagrees with, and should not disagree with FP changes just because they don't match HIS intuition of how HE would use it. Or maybe he incorrectly thinks that his intuition about using FP is likely to match the intuition of most other users. The truth is that Dimitry doesn't actually USE Freeplane except to develop it—it's not a tool he uses for non-Freeplane tasks. And even if he used it daily, his experience is totally non-representative of the typical Freeplane user experience.
OK, so this is sort of like the mega-post linked at the top that started me down the path of spending all of my free time on FP. Comments from Dimitry and all other community members are welcome.
I think that this kind of discussion belongs to the community. I am totally fine with referencing me in the 3rd person. If someone wants to contribute to the discussion don't hesitate to write your comments in this thread.
This is a lot to unpack to say the least 😅. I think this is also a good topic to discuss on the upcoming online event, though things might get heated if I'm reading the room correctly? 😂
I like to think about changes in terms of "Adjacent Possible" . Basically what features can we implement now, as of this very moment, that could be highly beneficial. And a restructuring of a decade's worth of code for a ribbon UI is very much out of our Adjacent Possible even if it's exponentially beneficial. But the good thing is, if we develop and transform, little by little, enough times, we're going to encounter a new set of Adjacent Possibilities!
I also think this post also highlights a common problem in FOSS, that these programs can't scale well. By scale I mean, it struggles to expand so that it can provide (or will be able to provide) the needs of its large user base. To maintain a happy large user base, you would likely need to have a large development team behind it too. Though I'm not saying Freeplane is destined to have a small user base, I'd like for this to be discovered by a lot of people too, which is why I want to help by making it look pretty! I'm just stating the reasons why I think FP is not as popular as it could be.
Despite this, I still see where you're coming from @quickfold . It's hard to see a really capable program not getting the recognition it deserves and how its development is limited by lots of different factors, one being the person you need to work with isn't convinced with your ideas. Ironically we are kind grateful that we get to build on top of the code Dimitry and Freemind's developers have previously written but we're also fighting with it as the code isn't likely to be versatile to begin with (which is just the nature of FOSS I guess).
When I first made my post about my problems regarding the UI, it led to many conversations with Dimitry about how Java Swing works and how some of my suggestions regarding the UI are pretty much impossible in Swing but is possible in Java FX. It enlightened me on what will likely be implemented, so I focused on those "likely to be implemented" stuff instead, rather than hoping Dimitry could consider dedicating his free time for the next few years to transfer everything from Swing to JavaFX 😂. And with a fortunate turn of events, I'm pretty happy with how my suggestions affected FP's UI even though it's not what I expected initially. So maybe an outcome like this is also possible for the changes you want, @quickfold ? A solution that we didn't initially envisioned but mainly solves the same problem we encountered?
I could help with the documentation too as I think it's the next big thing I can help with after the icons facelift etc. I also really like how pretty the documentation page looks! (even though it doesn't have a lot of content)
Lastly, instead of getting into the weeds of how one argued with another (that will likely confuse me anyway 😂) maybe you can add another post or edit your existing post about the vital features or general big picture direction you think Freeplane is missing out on? So we've covered the Ribbon UI and the documentation, what other ideas/features have you tried to convince Dimitry of?
I have not heard about the concept of adjacent possible before, so I searched for it and found this lovely picture
![Adjacent-Possible](https://www.techtag.de/wp-content/uploads/2018/03/Adjacent-Possible.jpg)
If I were you, my pragmatic approach would be: forget about the documentation. The UI/UX is the current bottleneck for FP to become a "highly popular program accessible to the average user". Until FP doesn't become very solid about it, creating an extremely well thought documentation will have very little impact. It will take you a lot of time, and result in more frustration for you. In the end, it can pay out if Fp actually becomes more popular, but it's too risky to invest your time on it right now.
Being more clear: what breaks the deal for the average user is the UI/UX, and not the documentation. If some user is interested in an advanced feature of FP that is not enough documented, the Forum will 99% of the time solve it. I've been following the forum, and everything is being solved. It's unfair to say that the support here is not good enough.
Now, to put into use all the time you already put into the documentation, I suggest the model that I already talked about before: a documentation built bottom up and by peasant users. A documentation built by a small number of users with high credentials is unsustainable, as it will always be necessary to have a super motivated person to do the job of documenting all the changes.
Create an outline of topics in a wiki, and promote a culture of small contributions to the wiki. The documentation won't be pretty, but it will get good enough after some time.
The Sourceforce Wiki seems good enough for that. Anyone registered in the forum can
comment there. It's frictionless. I know Dimitry dismissed it before, but it would be interesting to reconsider, as the other option failed.
About Dimitry's decision-making, it seems that the best option is to just accept it as it is. So, try to see it like this: Dimitry likes to compare himself with a working horse. Horses make excellent working partners, but sometimes they refuse to follow a certain path, for unexplainable reasons. In that case, the best solution is to take another path, even if it's a bit longer 🤣.
Seriously, the overall picture of decisions made by him are correct. There is only a small portion of decisions that can be subject of criticism. So, let's not throw the baby out with the bathwater.
Hmmmm while I agree that the UI/UX is bit higher in priority compared to the documentation, I don't necessarily think it's that hard to at least cover the general features in FP. Though that may just be me, since I'm a teacher and do lots of outlining for my lectures so I'm used to this type of stuff.
I think both are essential to for the betterment of FP but right now yea, since we're developing the new icons right now anyway, a better UI is much easier to achieve.
I kind of see it as a funnel, you know marketers say there's a sales funnel and the customer goes through each stage. The first stage being the customer gets introduced to the product then later down the line gets more familiar with the product, then eventually becomes a buyer if everything goes right.
I think there's a user funnel too. Where the program gets first introduced to the user, either the github or sourceforge page
And honestly the current sample screenshots aren't that enticing… and very dated. Also the user has no clue on what are the general features FP brings to the table. A feature overview would be great
A good example is something like this:
https://blendermarket.com/products/hard-ops--boxcutter-ultimate-bundle
This landing page is filled with examples, use cases, and gifs that highlight a particular feature. UI would be a good thing to showcase here too. I think the current content of the documentation can provide at least some of these things.
Then once the user downloads the program, installs it. The next part is being able to guide him through the program, like an onboarding sequence or, of course, a ready documentation for the user to go through. So in this phase, UX, tooltips and the documentation go hand in hand to cultivate the user's relationship to this program.
Then honestly we can stop there and everything else is optional. But if there were other phases, I guess it would be for the user to become very proficient in FP and/or becoming an active member in the community, then finally becoming a contributor which would be the best case scenario.
The introduction and cultivation phase is I think where we're lacking in and is currently holding back Freeplane's potential to reach more users and consequently more contributors.
Dimitry, I just noticed that you have deleted some of my previous forum posts without notification to me, and they are now not available to me in my own Sourceforge history or the forum search. I understand if you disagree with my statements, but it is hard for me to participate in discussions if I am worried that my comments can disappear in ways that will prevent others from seeing them in the future. Can I ask you to commit to not doing this in the future? Of course you are always welcome to respond to these posts and tell me I am wrong.
Quickfold, I am sorry but I want to neither give you such commitment nor tell you that you are wrong. I think I have never deleted any other posts in the past because of their content. However in these cases I have not found any better way to answer the posts then deleting them because I considered them harmful. Let me explain you my reasons and hope for your understanding.
I want to maintain safe environment for myself and for all community members. It means that I want to avoid any kind of public person related critique, personal confrontation and person related remarks or pressure. I want to avoid and abandon posts containing such statements completely because I find them inappropriate in any public communication. We are neither a quarreling family nor a parliament. At the personal level only words of respect, recognition and support should be expressed. I believe that personal and judgmental expressions like "you are wrong", "your decision XY is wrong", "why have you done XY", "I disagree with you" and insisting on answering to such claims are harmful for the reputation of their writer, for the reputation of the addressed person and for the community as a whole. Mixing factual and personal levels makes constructive discussion very difficult.
You can see this response as example of what I consider a better way to express disagreement. I expressed my reasons and disagreement not touching the level of our personal relationship. I am describing the point in general and not attaching it to persons. I wish you decide to implement these principles in our future communication.
Last edit: Dimitry Polivaev 2022-02-17
Dimitry, what should I do if I disagree with you about whether my words are harmful, or if I feel that you have violated the standards of personal respect that you are advocating here and harmed me in the process?
The post that Dimitry deleted was a post where I was pointing out that, in my opinion, Dimitry was violating the standards that he outlines here as unacceptable speech. I won't explain the details out of fear that Dimitry will delete this post also.
Please note that a discussion in which you feel free to delete any conversation that you disagree with can leave others feeling unsafe. I am feeling unsafe here if you can write things that might offend me, but if I point out that you have spoken in a way that offends me, then you delete my comments.
I do not think that the post of mine that you removed violated any of the standards or rules that you have mentioned in your post above. The community cannot judge since you deleted the post.
Not long ago I was talking to a friend. We disagreed about an opinion. Strongly disagreed. The things he was saying were ridiculous. And I could gather he thought as much about what I was saying. Were we still good friends then? Or were we enemies, thinking the other person is so wrong, maybe even stupid to have these ridiculous thoughts?
I told my friend I'd rather hear him saying that he disagrees with my opinion rather than me personally; I'm more likely to change my ways if I hear him saying how he feels about me doing/saying something rather than him telling me to stop or change doing/saying something.
We were still good friends. The disagreement was about our opinions, which we did not like. As soon as we shifted our focus from the other person to his opinion, it was much easier to talk. We started saying how we feel, and the other person started to try and understand that feeling or at least acknowledge the fact that someone might feel that way in such circumstances.
We both said we were hurt by the other saying or doing something. We both said that we had no intention to hurt the other person and that we were sorry. We started to think what we could do to make amends, to fix what each of us broke.
I would like to be part of a community where such conversations are possible, where people express their feelings rather than tell others what to do, where disagreements are about opinions not people, where we try to act with compassion so that the injuries that were caused (to us or to others) can be healed.
I definitely agree with everything macmarrum expressed here. I want to have a free space for everyone expressing personal feelings, observations and ideas and arguments and to agree or disagree on ideas freely without a fear to be judged as a person .
For me the quickfold's statement "I feel that you have violated the standards of personal respect" does not sound as a feeling. It sounds rather as an accusation, a judgement about me and by behavior. And it sucks. Reading such posts I do not feel safe myself.
This project exists mainly through my efforts with significant help from many other people. I have been working on it since 2007 and always trying to do my best in both coding and communication, being open to different opinions and trying to integrate them, make good decisions and so on. Such posts are able to question my integrity as a person and the whole thing. They are not the way to reach any positive developments.
If you were me how would you react?
Dimitry, I also agree with everything macmarrum says. I have to point out that you said I wrote something, and put a statement in quotation marks, that omitted words that changed the meaning. I am not accusing you of any intentional wrongdoing. At minimum, we must take care to accurately quote what people actually said. This might also indicate to you that you may have unintentionally misinterpreted what I wrote or what I meant to write.
My words were not from a statement, but a question I asked, and it was an honest question: "Dimitry, what should I do if I disagree with you about whether my words are harmful, or if I feel that you have violated the standards of personal respect that you are advocating here and harmed me in the process?"
Note the IF in "if I feel that".
You told me that my statement feels like a personal attack to you and asked how I would react. I'll tell you—if someone said that they felt I had violated the standards of personal respect, I would ask them to explain with a specific example so I could clarify my intent, apologize if I thought it was necessary, rephrase if necessary, and rebuild the trust. I do apologize that my statement upset you. I am not trying to attack you. But it is the case that all of us, myself included, sometimes say things that upset others, and when others point this out, it is not an attack on us. For example, you are stating that my post was a personal attack on you. Is your statement then also a personal attack me? Where does it end? People in a community have to be able to freely express their feelings, including the feeling that others are speaking rudely to them, without fear of censorship. Short of something that uses explicitly rude language, I don't see any benefit in deleting posts.
You repeatedly state that you don't want anyone saying that individual people or ideas or wrong. I am not sure how to post this without you deleting it again, but hopefully you can respond. You posted a response to me saying "Your [quickfold's] claim that the majority of users would be looking for markdown related helper styles is worse than a speculation, it is obviously wrong, because we can not expect the majority of users to use markdown at all".
When I posted, asking why this did not go against the forum standard of not telling others they were wrong, you deleted my post. It is not an attack on you to ask this question. It is a fair question. It is a question, not a statement accusing you of something. Perhaps you made a mistake. Perhaps you changed your mind. Maybe what you wrote is fine by your standards, and what I wrote is not, but it's not clear to me why this is the case.
So, please advise. If you think that your statement is within the bounds of conversation that you advocate, and that my statement is not, can you please explain? I'm not angry or even highly insulted that you said my idea was "obviously wrong" — I just wanted to be treated by the same rules that you keep asking me to follow.
If you want to post forum guidelines "no harmful content" or "no stating that others are wrong" then that is fine—I am happy to be as polite as I can be. But I do think it is fair to have everyone, including you, meet those standards. And I am concerned if you are allowed to tell me I am wrong and then delete my posts if I ask "Dimitry, why is it ok to tell me I am 'obviously wrong'?".
Quickfold, my general problem with your posts is that I feel that even just reading them and even more answering to them drains a lot of my energy. I am not sure why exactly. Maybe because they are pretty long. Maybe because they are complicated. Maybe because I do not understand them correctly as it might be in the following example
This sentence is just very complicated and it is easy for me to get it wrong. But I don't think that it is the origin of the problem. In the first post of this thread you complained
This is a thing. I consider my continious work on Freeplane to be my gift to the world and to all people using it. I am not looking for money or for honor. Freeplane users are not my clients. When I work on Freeplane I want to spend my personal time and put my efforts in what I personally want to do. I do have all freedoms to decide how I spend my personal time, don't I? And I particularly don't want to spend my time on fruitless efforts to convince you or someone else about anything. You can call me a dictator (or BDFL), but actually the only resource I own is me. And therefore I want you to remember an old saying "Don't look a gift horse in the mouth".
I want to see this community as source of inspiration rather than people making decisions about what I should do. I follow the discussions and sometimes I prefer not to be involved in them. There are so many smart folks around. They carefully read your posts. They can participate in discussions and I am sure that Freeplane benefits from it.
So, if you really want to help, first of all I ask you to accept that my work on Freeplane is my personal project. Keep away from pressing and challenging me, don't insist that I answer all your posts. If you like to try doing a better job you can create your own fork. Some time ago I did it with Freemind because I saw no way to implement my ideas in that project. And feel free to advertise your project on Freeplane forums (which I was asked not to do on Freemind pages). Or try to find ideas which I would like to implement, cooperate with Freeplane community members, contribute content, be constructive, creative and positive and thankful.
Last edit: Dimitry Polivaev 2022-02-25
Ok, taking a step back and looking at what happened in the last months, I got to this conclusion:
Maybe, me and quickfold have been acting like adults who put way too much pressure on a kid in whom we see a lot of potential. We frequently express our vision that FP can make a high impact in the world.
Quickfold and I are clearly type A personality, falling into the classic trap of type A people: expecting from others the same level of extreme rigor that we expect from ourselves. But, it doesn't make any sense to act like that with volunteers that we don't even know. If FP had a team of professionals hired to achieve the highest results, things would be different.
So, it seems that what happened is that things escalated to a point where Dimitry had to take strong measures to release this pressure. I suggest that the discussion around those measures be left for a future discussion, so we can now focus de-escalating the current tensions. Both sides seem to be upset, so it's better to leave for later the discussion about the acts taken during the emotional moments.
So the conclusion that I will take for me (and I invite quickfold to join me): Stop pressuring the kid (Dimitry, the community, and the project as a whole), and let things flow naturally.
If my analysis is correct, I suggest that, in order to avoid that this situation happens again in the future, this procedure could be adopted: if someone appears with plans that are too big, then present to him this experience that we had here.
@euu wrote:
Agreed; for now, I've paused my participation in the documentation project.
If the consensus is that the decision-making won't change from what I described, and others agree with my analysis of the situation, then I'll accept that FP will never be a widely used tool and I'll stop pushing to significantly improve its accessibility.
I also don't want to throw anything out. But I am not sure that I agree that the overall picture of decisions made by Dimitry are correct—many are probably correct, and many are probably incorrect. After 15+ years of development, Freeplane remains a very functional, barely documented, immensely confusing program whose UI scares off many casual users from even trying it and whose advanced functionality is only used by (I'll guess) a few dozen programmers worldwide who have taken the initiative to understand it.
@rexelbartolome wrote:
Do you mean that they can't scale well or that they usually don't scale well? Aren't there some FOSS programs that are usable and popular? Look at something like the outliner Logseq (www.logseq.com)—it is powerful but can totally be used by average users before they learn all of the functions.
I'm totally fine with alternative solutions to usability challenges. I don't even really like a Ribbon UI myself, but the current UI is clearly not working.
The issue isn't about any particular issue or decision, it's about an overall approach to decision-making that affects many decisions, whether big or small, in Freeplane development.
I'll give an example of the type of situation I'm talking about. Consider the Style Editor. As an end user, I found/find the Style Editor extremely confusing. It has three types of style groups organized as children to a root node: technical styles (which include many different types of things, such as parts of a node, temporary "system" styles such as selected node, and floating node), user-defined styles (which are what word processer users think of as normal "styles"), and level styles (which are applied automatically by rule based on a node's position relative to the root). They are visually set up as three equal-level children of a root node. There is no explanation of what they are and since they are very different types of things, it is confusing as all get-out, and even if a user wanted to look at documentation to understand it, none exists.
To me, the style editor should show user-defined styles as a separate and primary map interface, and there should be a different style map/tab for styles for parts of a node, since these are a different type of thing in the user's mind (I think) and are likely to be changed less often across maps. I'm not sure if level styles should be together with user-defined styles or on a separate tab. The current presentation of the three types as three parallel groups is quite misleading. But when I raised this issue to Dimitry, he would justify the presentation based on similarities or differences the different groups of styles had in terms of the data logic behind the visual presentation. e.g. he made a comment that level styles couldn't be grouped with user-defined styles because user-defined styles have names that are input directly by the user but level styles have names (Level 1, Level 2) that are generated by the program. Whether the style names are programmatically generated or whether they can be treated identically by FP behind the scenes are totally irrelevant to the user experience, but to Dimitry that type of difference is the end of the conversation because he can't imagine grouping things together that, to him as a developer, are obviously different types of things. Of course, I don't think how the names are generated matters at all or would even occur to most users, so to me that is a poor reason to decide on the Style Editor layout. I may have gotten some details about this discussion wrong, but hopefully you get the main idea.
I don't want to discuss details of the Style Editor here. The point of the example is just to illustrate the thinking behind Freeplane development choices. This same conflict between a choice that makes sense from the user perspective and one that makes sense according to a developer perspective of internal logic/beauty/efficiency/parallelism (not what is technically possible, but what "feels right" in matching the UI to the internal logic of the program concepts) happens over and over. It doesn't affect every decision, of course, but it affects lots of them. I saw examples of this conflict in perspective repeatedly in discussions with Dimitry about numerous topics. I would say that something wouldn't make sense to users, and he would say that it made sense by referring to some aspect of how he, as a developer, mentally categorized programming elements when programming FP's functionality, and that was the end of the discussion. If I pushed him to think about the user perspective rather than the developer perspective, he would say that neither of us had any evidence to prove that we were right and that he would not implement something that didn't feel good to him.
If Dimitry could imagine ordinary users' needs or wants and make decisions based on that, OR if Dimitry was open to continued discussion a process where other community members could advocate for ordinary users' needs, then FP could develop in ways that could be accessible to more users. But if neither of these things is the case, then it seems hopeless to me.
You're right about my point about scaling. I meant they don't "usually" scale well.
That's really weird. I was under the impression that you were advocating for it 😅
I think Dimitry himself says that he prioritizes feature requests that are low effort but has great payoff. I think another one I've noticed is he prioritizes fixing things that are broken. So I think Dimitry's thought process can be simplified in a Venn Diagram of three circles: low effort, great payoff, and broken, I think what you mentioned about the Style Editor is only on the great payoff circle since he already mentioned that it would take a bit of effort to do. It's not broken either since it's certainly usable, to an extent, and is working as intended. To add to that, it's very vague and anecdotal how we measure its "usability", we don't necessarily have a concrete metric regarding "usability" other than following the industry standards. So even its placement in the great payoff circle is debatable.
I don't think I myself am entirely convinced the Style Editor is confusing. I agree it has its learning curve but I actually appreciate it for what it is now. Also, Mindmeister doesn't even have a style editor, only presets (which we already have) and a way to edit one specific node at a time (which we also already have as the formatting panel), so I personally think it's not going to be touched by a casual user because they'd just pick what preset they're most happy with. If one were to edit their own Map Styles, they would likely be a superuser (or will be) and have a really specific use case for it. So having a slightly confusing Style Editor is kind of a small bump in the road to consider flattening out if the end user is already taking a huge amount of effort to tailor FP to their uses, they likely have bigger bumps in the road than this IMHO.
Regardless, I can still see how this Venn Diagram can get problematic. We're essentially locked into a very small number of options to take Freeplane further. I'm not really sure what else to say other than it is what it is 😅. So if a feature request is basically denied, our options are limited to just finding another way the problem could be fixed, be it for the same problem we're trying to target or for another.
Despite this, I actually like talking about the usability of FP here in the forums, so if you have other usability challenges that you mentioned to Dimitry but haven't mentioned in the forums yet, please share :) Maybe we can all brainstorm for a better solution that has a better placement inside the Venn Diagram
One other thing to consider as well is that Freeplane is a fork of Freemind. I started using Freeplane years ago after running into issues with Freemind.
I am also an opensource maintainer who inherited/adopted a mature project (Roundup Issue Tracker). Just keeping the software working with updates to the underlying language is a challenge. If it wasn't for some dedicated and talented programmers, Roundup would have been killed off during the move from Python 2 to Python 3. I still have areas of the code base that I am uncomfortable working with. Also I have had "simple" changes that turn into a quagmire.
I agree with Rexel's assessment. Bugs, well scoped and easy fixes or enhancements (that don't require understanding/rewriting/modifying a lot of unfamiliar, untested inherited code) with a big payoff are at the top of my "todo" list. In some cases the "payoff" is something that I want. These are the things that prevent working on Roundup from being a chore. I have actually thrown away work because writing test cases for it was too difficult or testing turned up a failing test case that required a major change to other code. Adding the complexity of the new code without testing was just the wrong thing to do.
UI design and documentation are an ongoing issue with any tool and help there is always welcome.
But at the end of the day unless you can provide working code and tests that implement your vision, you risk driving away the people who are willing to and can maintain the tool for future use which is a significant job in and of itself.
This a continuation of the discussion started in bug-3113, where Dimitry wrote (excerpt)
I believe it would be beneficial to have a single documentation platform. It might make sense to move everything to https://github.com/freeplane/wiki, decommissioning https://www.freeplane.org/wiki and https://sourceforge.net/p/freeplane/wiki and to list the links link to pdf documents and video tutorials. It would help promote https://github.com/freeplane/wiki and might attract more documentation writers.
I will definitely continue to contribute to https://github.com/freeplane/wiki. I can also take a whack at moving the content from the other platforms to https://github.com/freeplane/wiki, if we agree it makes sense.
In July 2021 I converted the content of the old wiki into markdown because quickfold asked me.
I am attaching the file here for the case you find it useful.
Dear all,
I would prefer to have new threads in this forum to continue the discussion about documentation and other about development strategy.
(in the open discussion forum, because the documentation forum has much less views)
I would let this one about how to interact as a team and collaborate accepting that all of us are different persons in different life stages coming from different cultures.
Although we use English as the common language, we all have different ways to interpret sentences and personal statements. In some cultures highlighting another's error is just that, and in other cultures, it is the usual way to insult somebody.
jm2c
edo