NLNet - December 1st 2022 application (UI/UX) #4
Labels
No Label
2022-12-01-nlnet
User Research - bug
User Research - communication
User Research - documentation
User Research - feature
User Research - federation
User Research - governance
User Research - release
User Research - security
User Research - testing
User Research - UI
User Research - UX
No Milestone
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: forgejo/sustainability#4
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Work in a pad: https://pad.gusted.xyz/kYEJ64eaS-qn05szGu_7fg
Started in forgejo/meta#32 (comment)
There was a short session with @dachary, @circlebuilder and me. Only the first 35 minutes got recorded:
https://codeberg.org/forgejo/funding/src/branch/master/2022-12-01-nlnet-ui
Later on tallship joined (I'm not sure whether you will hear a sound in the recording). Towards the end of the session, but sadly not part of the recording, we talked about the logo. Those discussion was already recorded in forgejo/meta#45 (comment).
I see these areas worth applying for a grant:
Given that issue management and moderation are already applied for in a grant, I will limit my application to these two areas for now. The others could be picked up by contributors or will wait for another round.
My application is reworded accordingly.
Deadline 2022-12-01
https://nlnet.nl/news/2022/20221001-call.html
https://nlnet.nl/propose/
Thematic call: NGI Zero Entrust
Your name: André Jaenisch
Email address: entrust2022@forgejo.org
Phone numbers: (mobile or landline?)
Organisation (if any): N/A
Country: Germany
Project name: Forgejo UI
Website / wiki: https://codeberg.org/forgejo
Requested amount: 50.000 €
Abstract (currently 1052 characters)
As part of a collective of free software initiatives that have formed an alliance to coordinate our R&D for maximum effectivenes User Interface plays a central role. It is the touch point the majority of people will interact with when using a forge.
Federation opens up new possibilities for social collaboration. Learning from similar experiences on other platforms, the importance of moderation is indisputable. This involves different levels of granularity.
By opening up instances for a broader network, I expect the number of issues to raise accordingly. In order to not overwhelm Open Source maintainers, issue management needs to become better to allow all stakeholders to participate instead of focussing solely on developers.
With this grant I want to develop UI components over a course of six months to allow for moderation and issue management so that I can refine them with UX designers (if available) before implementing them. Focusing on components allow other projects to adopt the learnings thereby strengthening the whole alliance.
Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
I have worked in the industry for several years. My clients ranges from startups up to international enterprises. Next to Frontend development I learned the basics of adjacent fields such as backend development, design and UX. My focus is with accessibility.
I have already gained some experience with Gitea and want to bring Forgejo to the next level.
The challenge of designing for federation is exciting me. I am able to read source codes of already existing federated software like Mastodon, BookWyrm or GoToSocial in order to learn from them.
Explain what the requested budget will be used for?
Codeberg e.V. already gained experience with moderation a large Gitea instance. They will have switched to Forgejo by the time I can start working.
In a first step I am going to have interviews with them and administrators of Fediverse instances to learn about what works and what doesn't. Ideally UX professionals will support me in this endeavour.
Once I know what works I can compare it to what is already supported in Forgejo.
Following that I create prototypes in Penpot to evaluate what works. Once those are validated I will create components to be integrated into Forgejo.
During waiting times in moderation tasks I am progressing on issue management. The issue interface will be extended to invite stakeholders into the process that aren't working on code. Currently, the interface is not optimal for them so they work around its limitations.
Forgejo strives to be as inclusive as possible. Therefore each milestone is intended to be backed by user research wherever possible. Since we have a strategic alliance, documentation should help other projects to benefit from learnings made within this grant work.
Does the project have other funding sources, both past and present?
Gitea was funded through NLNet grants in the past.
There is currently no other funding than that.
Compare your own project with existing or historical efforts.
Previous grants on Gitea focused on the technical backbone.
In fact, UI pull requests appear to mainly consists of bugfixes and refactorings. Therefore spending efforts on the interface is going to improve the acceptance of the forge.
What are significant technical challenges you expect to solve during the project, if any?)
I expect less to be faced with technical challenges, since I can work together with amazing talents. Instead I expect to solve problems on a methodical level with respect to UX, moderation in a federated setting and digital wellbeing.
I have experience with Figma, but will learn to use Penpot extensively for Forgejo.
Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
Forgejo is part of a strategic alliance of free software initiatives. By adding federation capabilities it will become a citizen of the Fediverse and work together with other projects in this space. Since there is no standardised vocabulary of different applications, Forgejo contributors will have to study the respective codebases and negotiate with the maintainers to allow for interoperability.
Results and learnings will be promoted in the respective forums as well as on the fediverse itself.
Attachments
N/A
A couple of points are not clear for me:
I want this submission to be „well rounded”. Otherwise I will loose focus again, which would be a bummer.
This evening, https://gitea.com/xy/gitea/issues/8 was floated in the chat. The research will prove helpful. I'm not sure whether I can implement it right away, because there is no federation yet. But it will become relevant to me in case the application is accepted.
I mentioned point 4) in the context of point 3). And as a research theme that I would choose:
The problem statement being that FOSS projects find it hard to get contributions by UX designers. Designers find it hard to contribute to FOSS. And there's a tool mismatch. How do coders and designers work together? If there's a UI design, how is it iterated on, broken down into codable chunks? How about a full interaction design? Is a code forge sufficient to add support for designers or should multiple tools federate together? Etcetera. It is a whole field of study that can be furthered and deepened grant after grant. They are all explorations of what "forging free software" (supported by federated social networking) entails.. the larger mission/vision of the Forgers Guild.
Additional advantage is that, by using Forgejo as a reference impl of a code forge, your research will attract UX designers to the project. Which may not happen if the topic is "Moderation of a federated code forge".
For me personally the Moderation topic would be much less appealing. You are researching a problem that does not yet exists, but is assumed to be an issue in the future. Where does the assumption come from? There's some trolling in some Github projects, some in Codeberg repo's as well. But nothing that a basic Mute, Block, Report, Suspend account can't handle. In terms of instances you can defederate or have allowlist-based federation.
The above was mentioned also in Forgejo chat.
Next to three https://socialhub.activitypub.rocks/t/post-visibility-and-standardizing-ux-of-across-the-fediverse/2705 can serve as an example of confusing visibility settings, i.e. UX research patterns that are needed.
New UX patterns are required, because adding social networking capabilities to development processes will turn the latter to become unmanageable with the current fedi moderation resp. well-known practices from Social Media world.
I'm not an UX professional, so while I can see that this is a field worth researching, I consider myself to not be a good fit (at least for this round).
My takeaway at least is to focus more on the innovation part and position Forgejo as a reference implementation.
I submitted my application and got assigned the code 2022-12-119. Looks like all my newlines were lost 😿
Code: 2022-12-119
Requestor: André Jaenisch
Email: [redacted]
Phone: [redacted]
Organization: N/A
Country: Germany
Consent: You may keep my data on record
Call: Entrust_Fund
Project: UI components to catalyse cooperation between Dev & Design
Website: https://codeberg.org/forgejo
Amount: 50000
Abstract
As part of a collective of free software initiatives that have formed an alliance to coordinate our R&D for maximum effectiveness User Interface plays a central role for us. It is the touch point the majority of people will interact with when using a forge. Up until now, forges focused mainly on a developer experience. Other stakeholders have had to use alternative services, thereby causing friction in the Free Software Development Lifecycle. Using Forgejo as a reference implementation I believe it is possible to involve disciplines such as design. By opening up forges for a broader network by means of federation I expect the number of issues in play at anytime to surge and participation to increase. Issue management will become more inclusive, encouraging participation by more than developers. In furthering the reach of Open Source maintainers socially, we enlist and enable all stakeholders to participate. With this grant I want to develop UI components over a course of six months. I want to refine them with UX designers (if available) before implementing them; this will allow other projects to adopt and adapt from our discoveries, thus strengthening the whole community.
Experience
I have worked in the industry for several years. My clients range from startups up to international enterprises. Next to Front-end development I learned the basics of adjacent fields such as back-end development, design and UX. My focus is on accessibility. I have already gained some experience with Gitea [1] and want to bring Forgejo to the next level. The challenge of designing for federation is exciting me. I am able to read source codes of already existing federated software like Mastodon, BookWyrm or GoToSocial in order to learn from them. [1]: https://github.com/go-gitea/gitea/issues?q=commenter%3ARyuno-Ki
Use
The issue interface will be extended to invite stakeholders into the process that aren't working on code. Currently it is not optimal for them so they work around its limitations. Therefore I want to conduct expert interviews via Codeberg e.V. or other avenues to learn more about the challenges. Possible prototypes will be developed in Penpot and tested with them. After some iterations I expect patterns that work well enough to be implemented and documented in Forgejo to collect feedback from a wider population. Forgejo strives to be as inclusive as possible. Therefore each milestone is intended to be backed by user research wherever possible. Since we have a strategic alliance, documentation should help other projects to benefit from learnings made within this grant work. To my knowledge, NLNet grants are the sole funding for development of Forgejo.
Comparison
Projects like waffle.io were built on top of the proprietary forge GitHub and allowed for easier project management. I can see similar academic research and prototypes with https://github.com/jazlynhellman/oss-codesign Penpot focuses on cross-domain teams and make a good match from a starting point as designer.
Challenges
I only have limited experience with Penpot yet but I understand SVG well enough. As far as I can tell an experimental API is already available but requires investigation to learn about the structure. If Penpot cannot be used directly, alternatives have to be explored. Design is developed in iterations. I'm not sure, whether Penpot is version controlling steps in the process.
Ecosystem
Forgejo is part of a strategic alliance of free software initiatives. By adding federation capabilities it will become a citizen of the Fediverse and work together with other projects in this space. Since there is no standardised vocabulary of different applications, Forgejo contributors will have to study the respective codebases and negotiate with the maintainers to allow for interoperability. Results and learnings will be promoted in the respective forums as well as on the fediverse itself.
@Ryuno-Ki ay ai, I wrote an alternative abstract for the grant proposal, based on what I saw in the chat, but didn't know it was aleady submitted. Here's the abstract I wrote:
Forge federation based on ActivityPub and other interoperability standards enables an entire new paradigm to software development tools. Developing quality software is in large part a social activity. It requires deep collaboration between many different stakeholders and people with different skill-sets, coordinating their work. Yet current code forges are mostly focused purely on developers and technical tasks.
The free software projects in the forge federation ecosystem have united their efforts and work collectively to realize the vision of “forging free software on the Fediverse”. Considering the entire Free Software Development Lifecycle (FSDL) we will tie software development processes deeply into the social graph of the Fediverse and make participation inclusive and available to everyone.
This proposal kicks off two long-running innovation tracks that are required to realize our vision: Social Coding and Social Experience design (SX). Social Coding involves the analysis of processes and patterns of the FSDL, while SX focuses on mapping them to social networking environments.
This grant zooms in on the Issue Management process. Based on user research, involving both Designers and Developers, new Social Coding UX patterns will be prototyped in Penpot and the Forgejo code forge.
I received a mail today:
Congratulation @Ryuno-Ki I am extremely happy to hear this!
I hope to not have to wait another two months with zero communication 🤞
Yes, it seems they are quite overburdened. It is a very small team.
E-Mail in the inbox, but today the school holidays started, so I won't be available for Forgejo next week. Time to think hard what was on my mind two months ago ;)
Hello, just to say I'm here and you can tag me on discussions if it's helpful.
Ah Bernat!
Good to know you on Codeberg as well! Welcome!
I am here to help as well, if you have questions. Remember, do what you feel most comfortable with.. I am just a brainstormer ;)
I got a few minutes today to think about some items I had in mind. I will list them here to not forget about them, but haven't shaped them into a reply.
In the meantime I'm going to reply to let NLnet know that I am working on an answer.
For one, I saw this amount in previous applications in ForgeFed. Since it is my first applications, I went with it. This argument isn't strong.
My rate is 50 €/h. This yields 1.000 h worth of work. For personal reasons (family) I am going to work for six billable hours per day. I want to have a little slack in case I have other short-term gigs I want to accept (to avoid false self-employment).
This yields 166.67 days. Given about 20 work days per month the budget should be sufficient for about 8 months. Likely a little bit longer, because I will need to take time off for holidays (school) and sick days.
If I work 8 hours per day my mental health might suffer (given my experience as employee) and the budget will shrink faster. I will need to do some math what the effect on my bottom line is (after taxes). Either way I'm confident it will be enough to pay the bills either way but will influence the way I can build up reserves for times without income.
Given forgejo/forgejo#286 there is a need of someone leading the Frontend vision. In previous conversations you have noticed that I argue for different points of view when considering a solution.
Looking at forgejo/forgejo#403 we can see that people are unhappy with the UX of different elements of the application. I can see how this can be improved upon but lack the time to focus on it while I'm still not having a secured income. I received an e-mail from @ei8fdb in the meantime and can work closer on the details. There will also be threads on the Open Source Design discourse with specific problems to solve.
The context here was
My thought was that there is a copy-paste between different tools, because stakeholders have different needs on the software they use. Project managers have a need of keeping track, which often happens in spreadsheets.
Designers will work with design tools that are visually oriented (like Figma or PenPot) but allows for standardisation and reuse. Frontend developers are reading those values by hand and would benefit from a notification mechanism of updates. Software architects can work with Markdown (for example) and benefit from UML (or similar techniques). Those are read manually by developers and translated into code.
Using OpenAPI ( forgejo/forgejo#328 ) can integrate some parts of the work. I've talked to PenPot people at FOSDEM. Right now they don't have the APIs we need but are working on it (for example with folks at Storybook).
This sounds like a case of „just” do it. It's not that easy. Mainly because it involves humans.
Even given Open Source alternatives, there UX is often behind the commercial pendants. I have gained knowledge in the past decade and want to bring some professional attitude to the software I contribute to. Since Forgejo is also used by projects such as Friendica ( forgejo/forgejo#340 ) or in companies (Matrix had some mention of someone bringing the FreeBSD build to the company the person works for if I recall correctly), that level of professional quality will be beneficial.
Yes, there is a tight integration with the GitHub ecosystem. But there are also people who are unhappy with negotiating with Microsoft even though they offer options to host in Europe. Being an US company will still make them accept gag orders by security agencies. In the light of sovereignity this can't be accepted.
I'm not quite sure what ForgeFed is working on right now. I've seen ideas of proposing an RFC for the DNS record for communicating the supported versions. Then something about F3. But I'm thinking about more integration with PenPot and Fediverse apps. Who would be a good point of contact here?
I am willing to write Web Extensions that can be used regardless of a framework (and are often self-contained parts providing interactivity) as well as outline components in documented form to highlight which alternative approaches could have been taken. I would like to use https://adr.github.io/ here, because I have made good experience with them in the past.
Components are likely to be documented in https://storybook.js.org/, that is, using MDX (which we also gain experience with in light of Astro, i.e. website and documentation).
The components should conform to https://blockprotocol.org/ depending on what they will announce at end of the month (basically be described as JSON protocol). I'm not 💯 % sure about this.
I am not sure where this is coming from. I couldn't find how this relates to my application.
Web Extensions are JavaScript files that can be integrated into any framework. They are an official W3C standard and are supported by web browsers:
https://caniuse.com/custom-elementsv1
https://caniuse.com/template
https://caniuse.com/shadowdomv1
Since they add interactivity it makes sense to use JavaScript here. I will need to do some research on how to combine them with progressive enhancement. Therefore I joined the Lit Discord server who have deep experience with Web Components.
I haven't heard of Pagure before. What tech stack are both forges are using? Who could be a point of contact for me?
We already see requests such as forgejo/forgejo#410 that indicates that we reach a point where it is hard to stay on top of the incoming issues. I want to look into learnings from projects such as https://projectmanagernews.com/general/what-happened-to-waffle-io/ to see how exposing an OpenAPI can help slice and dice our issues to serve different stakeholders by providing a view that suits their needs.
I have experince in this regard with the Atlassian suite. (Can't point to something open, because employee and behind a login of the respective company).
forgejo/meta#151 factors into the second part by triaging issues to ease the ability to take up work.
The opinions have to be dealt with on a personal level. This would factor into moderation (not part of this grant) by providing moderatos a view of previous interactions with a profile (for example) to aid in decision making.
My aim is to reach a level of understanding good enough that I can talk to Open Source Design UX people and translate requirements to Forgejo developers and other stakeholders. I'm already seizing opportunities online on the Fediverse as well as in person to answer questions about Forgejo when I get aware of them.
As you can see I still have some open questions (especially regarding contacts to other projects) but already approaching an answer. Happy to get pointed towards people.
You are well underway in evaluating the questions. I will provide some of my own musings for you to maybe inspire. But they are just that.. brainstorm thoughts.
Your rate is good. Both @dachary and I used similar rates. They are at the low end of the spectrum for someone having an SMB, in particular when working in IT. But for FOSS they provide the basis for decent living standard in an EU country. So the next question is where you need to fill in a rough estimate of some core tasks.
Yes, and those issues are good pointers. In addition you might explicitly mention that forge federation leads to a kind of new cross-forge UX paradigm, and implementing this federation provides excellent opportunity to reconsider the entirety of the UX and make improvements.
Furthermore this federated UX can lead to UI designs / patterns that are reusable by other forges and devtools than Forgejo. Hence they are innovative to the internet.
You may introduce the answer with the observation that code forges are tools that are mostly tailored to people in a Developer role, but that in the FSDL many roles are involved in intricate interwoven interaction / processes. That leads to different roles using different tools, and awkward boundaries and formation of silo's that hamper good project communication.
With the observation that "Coding is Social" when bringing forges to the Fediverse, there is an opportunity to tie these processes directly into social networking environment, and diminish the gaps that individual poorly integrated tools create.
The mention of Penpot itself highlights one of the issues to be solved, namely the interaction betwee Developers and Designers. Tricky collaboration that is the main driver of Penpot CEO to solve.
You make many good observations. Along the lines of the "just develop it" remark, you may mention a general weakness of the FOSS movement as a whole that is observed within the Social Coding movement.
Where FOSS is strong in doing technical work, it is very weak in many of the other processes that are involved in the FSDL. Think e.g. product development, architecture, documentation. But especially the collaboration within broader ecosystems is lacking. And here is the tie to social networking again.
Building socio-technical facilities related to decentralized (federated) collaboration is a new and innovative field. It is a complex and broad field that must be explored. And that exploration itself involves collab with multiple initiatives that are part of the "federated free software development" (forge federation) field.
I think what they mean is that, given the broad scope, do you intend to create a body of work that many people are allowed / facilitated to contribute to. Or do you intend to work more on your own and deliver some final work package for everyone to do with as they wish after delivery.
Note that I have an open offer to use all the tools and facilities that Social Coding Movement may provide. This whole work is in line with its objectives.
You may add here that UX research will also deliver non-technical artifacts, such as documented interaction designs and UI patterns, maybe mockups. They are generally reusable. And then there is technical elaboration using open standards, as you mention.
Besides references to dynamics within Forgejo, you may once again refer to the objectives of Social Coding. The observation that "Coding is Social" is also the recognition that the social aspects, culture and dynamics within FOSS projects deserve more attention.
This also relates to the kind of technical innovation that NLnet is involved with. The innovation can be more effective if besides pure technical focus, the social dynamics are emphasized.
Here exist bigger plans. @dachary already summarized "The state of forge federation" before, but there are also plans to create ever more tightly-knit and strategic collaboration with The Forgers Guild (a software guild, and strategic ecosystem alliance).
You can mention you are able to play strong intermediary roles, since you understand different disciplines within software development. You can adopt the perspectives of different roles and translate needs between them. You do not need to be a 'master of UX'. For that you have UX designers that will be involved along the way.
This is a very personal take of mine. Remember you should only adopt what you feel comfortable with..
Aforemention interplay between all the different roles and stakeholders that are involved in the many processes of the FSDL. In other words look at the entirety of software development in a more holistic fashion.
For Forgejo in particular that may entail making the software more attractive and easier-to-use for people in different than highly-technical roles.
@Ryuno-Ki, I will give you feedback on the general vision I see according to the clarity you have reflected on the points you have in mind and the arguments you have put forward.
As I said in the other grant thread, I see a lot of good ideas and a good diagnosis of the state of the art in the field you have chosen to contextualise your proposal, but understanding that the proposal is very broad and the number of people involved is huge, if you want to receive this grant, I think you will have to exercise leadership in order to guide people to develop material. This material could be documentation, or even meeting minutes, UML diagrams, etc, it doesn't need to be code, but in the scope of this whole social coding environment, you need to prioritise what will come first in order to engage people in the interaction needed to get solutions. What solutions first, what depends on what, to prioritise, because you need a bounded plan, even if it is done in an extensible way (future grants).
So taking this first comment as an example:
What is the purpose of this response? will the grant pay you to document those different views? or are you planning to lead that vision yourself? are you planning to provide a full diagnostic? a list of requirements raised like an analyst does? I can't see your plan.
Let's assume you have defined what is the concrete problem to be addressed for you, according your abilities. What is the first task you will have to perform to implement a solution? How will you demonstrate that you have materialised that task?
My view, I think a bit different from the guidance provided by @circlebuilder which I see more in a political sense, is that the objetive is not to include all the social coding that's out there; you have enough knowledge right now, and it's time to do something with it. You will learn and probably influx the social coding movement walking that path, but you need to find the way to evaluate your intervention. What are you able to materialize. It doesn't need to be perfect, just useful, then you perfect it.
I'm totally open to talking more about this topic if you're willing.
@circlebuilder Thank you. I believe I can see
a red threadde rode draad that will form a story to tell now. More on that later.@fsologureng Thank you. I agree with you that a plan is on the table next. Right now, I have an idea, a vision so to speak. That is larger than what I would be able to complete in 6+ months. But since this is my first application with NLnet, I am also interested in creating a solid foundation, a relationship that we can build on.
My idea right now is to write a few sentences about the vision and then derive the action for this concrete term in 2023.
I'm about to sleep over the following draft. My plan is to submit my answer tomorrow:
Dear Michiel, dear NLnet team,
thank you for your patience. I believe I now have the answers you requested.
You asked me about my application „UI components to catalyse cooperation between Dev & Design”.
Allow me to answer them inline to preserve the context.
I'm going to answer these questions starting with the last one. I applied a rate of 50 €/h. This yields to
1.000 hours worth of time. Originally I estimated a standard 8 hours workday. This would yield to 125 days
of work. If you calculate with 20 days per month, the funding would last for about six months.
Given my family situation I might be able to work 6 hours / day on average with some spikes in between.
The duration would extend accordingly. In my experience I'm able to be more focused in less than 8 hours.
The timeframe does not account for vacations or other unproductive times (e.g. sick leaves).
Depending on how that grant will be taxed by the state, it provides a decent income that allows me to keep my living standard without taking on additional work. Given the current velocity in the process I'm currently evaluating to apply for the Prototype Fund to secure an additional income that will also benefit Forgejo (with a focus on providing well-needed GDPR elements). My conversation with representatives of them made me learn that both grants can co-exist as long as I avoid overlap.
Now what is feasible and realistic in six months worth of time?
Forgejo currently lacks a lead in Frontend. forgejo/forgejo#286
I have a decade worth of experience in that area. I have experience with mentoring colleagues to improve
the overall team results as well.
As it stands now, bad UX in different areas weakens our position: forgejo/forgejo#403
These two issues combined will inform my breakdown of tasks. I'm using 1 week as minimum to allow for times
when I might not be fully productive:
Now nothing is as hard to predict as the future. I expect the process to be transferable to other projects if they want.
As preparation of my grant I studied UX literature (e.g. The User Experience Team Of One by Leah Buley) and contacted experts.
This should frontload my onboarding so I can hit the ground running.
I asked for contact persons on the respective forges that are also part of the Social Coding Movement and will build a relationship with them.
The wider audience will be informed on our current channels (issue tracker, website, Mastodon) and invited to provide feedback if they have any.
As it currently stands forges are often developed by and for developers. This makes it harder to be used by other groups such as in academica.
I can see more stakeholders involved in the process (product managers, architects, translators, technical writers, testers, operations etc). These roles are interwoven. They have to work together to develop successful software.
I believe, Coding is Social. It is less about code but more about humans. Therefore my vision is broader than the Developer-Designer UI components I applied for in this grant.
Currently I observe those stakeholder copy-pasting information from one system to another. This is a friction that holds the chance of hampering communication, loosing information on the way. I would rather get to a point where we could get rid of these awkward boundaries between tools.
But the budget is limited. Therefore I focused on an area that is tangible. As Forgejo we want to research on how a paradigm change to federated forges transforms the way we interact with each other when building software. We have only limited experience in this area. I'm excited to research this field! I am confident that the fruits of this research can benefit other forges, devtools and the Social Coding movement. There's potential for innovation.
A first iteration will be the interaction between designers and developers. I talked to PenPot team during FOSDEM early February 2023 to learn more about their API. Right now they aren't in a shape we could use right away. That is, there is the possibility to use web hooks but not programatic access to the developed components. It's on the roadmap but there is no date that can commit to.
Given my experience with SVGs I'm able to semi-automate the process. SVG is a XML dialect. I know how to parse it. I collaborated with other people on Web Extensions so I suspect that I can develop a tool that I can use from within PenPot and generate a blueprint of the components I want to use. In fact as part of a side project I develop code on-the-fly based on input a person enters into a set of forms. It matches the code I would have written by hand (except some formatting). If my assumptions hold water the respective code will be made available under an Open Source license for others to re-use. I will also approach PenPot in this area to see whether they can adopt parts of it in their product.
Even if the required functionality would be available as free software those lack behind the UX of commercial pendants. This is rooted in the developer community („scratch your own itch”) which is often already satisfied with the functionality of their tool. This is not enough to appeal to a wider audience. The most efficient way is proven to be backed on user research.
In my observation a large part of commercial software is developed in the US. In the past there were repeated political actions that rendered the use of US software difficult for European parties. Currently Forgejos community is very Euro-centric. By contributing to it I hope to develop something that helps Europe to become more sovereign in the software it's using.
Specifications focus often on the technical aspect of a solution. However, Forgejo is also involving a social aspect. This would not be feasible to be specified as history told us (see XHTML and HTML specifications). In fact, the same specification can result in different experiences as the Mastodon clients show us. This allows for catering to different audiences while also staying interoperable.
I have only a limited view into the things ForgeFed is doing. Their work appears to be valuable but very focused on the communication between computers. I'm interested in working with humans.
I'm happy to do so! I want to do both. The conceptual part of the application has the highest value for being reused by other interested parties. But in order to show that this process can yield to better software my aim is also to develop working software that can be integrated into an existing project. This way I hope to inspire other communities to adopt user research in their processes.
Documentation is important in defining the adoption of software. My experience as employee has shown me that Architectural Decision Record are a format that is lightweight enough to be maintained but also providing a wealth of insights into how software reached the point it is at that point. The other aspect of documentation is in its usage. I have worked with Storybook for this in the past and consider it a good tool. PenPot is in touch with them as well so I can see synergy effects going forward.
Forgejo exists already for a couple of months at the point of this writing. We're very excited about the community that formed around it.
I can understand that there is value in drive-by contributions. However in order to form a sustainable project we will need more people willing to work on it in the long run. This will allow for the core team to take rests when they need it.
I want to not only bring active users into the loop but also adjacent disciplines. In this case starting with designers and the team over at PenPot.
In case I inspire others to contribute back their learnings to the work I listed above I don't know how to account for it.
You see, I applied in my own name. I'm aware that I can list beneficiaries that can then request payout. I understand that work should be compensated. But this grant will form the main income for me as I founded a freelancing career in 2023 to focus on developing software for the general public. I would love if we could talk more about this in a further round.
Generally speaking Web Components are a set of web standards that can be used in different UI frameworks. The license would allow for adoption in other projects. The user research part is more a mindset that can be followed and adapted. In this regard, yes, my solution is forge agnostic. I'm interested in forming strategic alliances if those communities are open to it.
I'm following the Block Protocol closely since they pair re-usable components with a schema. There is an announcement for end of February that will inform my decision to adapt it.
I'm very keen in using formats in my work that are open to remix. We already loose enough time and money by reinventing the wheel every so often.
This is an excellent question. We already observe a raise of issues and have to think about our triage process.
In case issue management is identified as one problematic aspect of our current Forge I want to research how humans respond to it.
My own personal experience is benefitting from metadata. For example, my role in a conversation (author, commented on, got mentioned) as well as the time passed since my last comment and the number of new comments. I miss a way to bookmark notifications for processing later (this is another friction point since right now I copy the link into another system) and an option to add annotation that is only visible to myself (e.g. ideas on what I want to do with a comment but don't have the time for right now).
Other people might work in spikes. They would benefit from a way to stash all notifications for a given time and be able to focus on their work. Then pull it back up when they need it.
You see, there are lot of different cultures in our world. I want to approach them with an open mind and learn about how they make sense of the world around them. There's so much to explore!
Regarding the opinionated people I would like to be able to get more insights in their behaviour in other repositories on the same forge. This is blurring into moderation considerations. I would like to see what their general tone is. How have others have reacted to them? Were they reported for misconduct? There are a lot of privacy considerations in developing this area.
Previous interactions with the Forgejo community have shown that I can take different point of views to enrich the conversation of an aspect of the software. More often than not there are alternatives to choose from. Yet psychology informs us about a fallacy that „all you can see is all there is”. My experience with working on different software projects as well as with different disciplines allows me to take a broader view and highlight areas that might otherwise be overlooked. This helps us to find the best solution we can identify.
In my opinion Frontend is an excellent focus point of different discplines. My self expectation is to learn enough about those areas to be able to translate between them. This motivates me to understand different points of views and mental models. I'm less interested in „mastering” those disciplines but feel well at home as an intermediary. My focus will be on Frontend development for the time being.
Thank you for showing interest in my application. I hope the answers will help you in the decision process.
If you have more questions don't hesitate to write me.
André Jaenisch
@Ryuno-Ki I really like how you elaborated and answered the questions!
I have some minor points:
Here the answer does not fully cover the question "why not build it?" imho.
You might add that thing can and should be built, and that that might be done in many different ways. All of these would lead to long-running FOSS projects.
What you are doing is providing these projects with 'building material' by the insights and interaction patterns you research and elaborate. I.e. you are not just doing Forgejo a service, but deliver work that can inspire many others.
Might expand e.g. to:
"I'm interested in working with humans, analyse their social interactions, and providing the socio-technical support to cover their needs."
You may be more informed than me while doing your preparation, but you mention both Web Components standard and Block Protocol, a young specification and possibly becoming a de-facto standard.
I a not sure how there is a 1-to-1 match between the two, and how well they combine. At the very least the URL to Block Protocol should be added.
(Note that providing URL's as references here and there throughout the text might be prudent execise to do before sending)
I do not know if it is valuable to add this, given you go into specific details above, but the interaction of people with very different skillset, interests and objectives (i.e. stakeholders) is central to the recognition that Coding is Social. Streamlining multi-disciplinary collaboration a primary goal.
Here too is a connection to Social Coding. Your perspective and experience matches that of the people who are gathering in the movement. They see how FOSS is great at technical work, but has many weak areas in other aspects of the development lifecycle. And that there is value in adopting a more holistic approach to increase success rate and sustainability of free software project.
Sent two minutes ago 📬 :
Dear Michiel, dear NLnet team,
thank you for your patience. I believe I now have the answers you
requested.
You asked me about my application „UI components to catalyse
cooperation between Dev & Design”.
Allow me to answer them inline to preserve the context.
I'm going to answer these questions starting with the last one. I
applied a rate of 50 €/h. This yields to 1.000 hours worth of time.
Originally I estimated a standard 8 hours workday. This would yield to
125 days of work. If you calculate with 20 days per month, the funding
would last for about six months. Given my family situation I might be
able to work 6 hours / day on average with some spikes in between. The
duration would extend accordingly. In my experience I'm able to be more
focused in less than 8 hours. The timeframe does not account for
vacations or other unproductive times (e.g. sick leaves).
Depending on how that grant will be taxed by the state, it provides a
decent income that allows me to keep my living standard without taking
on additional work. I'm aware that it is below my market worth, but I'm
happy to trade-in some income in exchange to be able to work on a
project that I can identify with and that is in the public interest.
Given the current velocity in the process I'm currently evaluating to
apply for the Prototype Fund [0] to secure an additional income that
will also benefit Forgejo (with a focus on providing well-needed GDPR
elements). My conversation with representatives of them made me learn
that both grants can co-exist as long as I avoid overlap.
Now what is feasible and realistic in six months worth of time?
Forgejo currently lacks a lead in Frontend [1].
I have a decade worth of experience in that area. I have experience
with mentoring colleagues to improve the overall team results as well.
As it stands now, bad UX in different areas weakens our position [2].
These two issues combined will inform my breakdown of tasks. I'm using
1 week as minimum to allow for times when I might not be fully
productive:
Create an inventory of the current user interface. That is, going
through each view, screenshot it and identifying the elements used
there. The deliverable here will be a set of PenPot [3] pages (1 per
view). Possible states will be annotated on each page. (2 weeks)
Correlating UI/UX related issues with these pages. Each PenPot page
will link out to Forgejo's issue tracker. This will inform the
relative importance of each feature. In order to bound the time I
can work, I'm going to pick the top 3 components. (1 week)
Researching about the history of those components to understand the
rationale. This involves code history (leading to the issues and PR
that introduced the behaviour) as well as expert interviews with
the authors and maintainers. Deliverable here will be documents
online that explain the history of each component that appear to be
problematic. Those will also be linked from the respective PenPot
page. If the interviewee agrees, the interview will be recorded and
transcribed. I'm going to make up my mind on to what degree I can
share the results publicly. A safe space is important to get
meaningful insights. I'm likely orienting with the previous
behaviour of ForgeFriends. (2 weeks for the research, interviews
depend on availability and willingness of the respective person)
Derive suggestions on how to improve the existing behaviour. These
will be discussed with UX experts on Open Source Design forums [4] to
benefit from their knowledge. Since we don't gather analytics I
can't work with Personas [5] here. Instead I'm going to develop
empathy maps [6] at this point to deepen emphasis with people using
Forgejo. The outcome of this step can be beneficial for other forges
as well. They might take another suggestion than Forgejo but won't
have to do the research to the same extent. (3 weeks, I expect
feedback loops with Open Source Design).
Create low fidelity prototypes [7] in PenPot to explore the
suggestions of the previous step. These will help gain feedback from
people to inform our assumptions. A low fidelity prototype is easy to
develop but is detailed enough to get a sense of the general
direction (1 week).
Interview people using those prototypes. The panel will be recruited
from the Forgejo core team as well as volunteers from the community.
I will need some assistance early on in the grant to define a privacy
respecting way to collect PII on those people. I'm going to ask Open
Source Design experts on the best way to conduct these interviews
remotely. I would like to apply Thinking Out Loud methodology
[8] here, but not everyone is familar with this technique. There
might be recordings. (2 weeks assuming people are willing to help)
Developing high fidelity prototypes in PenPot and iterate further.
At this point I expect a design language to emerge that represents
the identity of Forgejo. Part of it is already visible through the
colour palette used in the software and the website. (4 weeks)
Assuming we iterate on interactive elements I want to develop web
components [9] at this point. Those are independent on the respective
UI framework but are an official set of Web Standards that are
supported in evergreen browsers. I'm going to include accessibility
considerations here (semantic HTML, keyboard access, ARIA when
needed). The components are going to be documented (perhaps in
Storybook [10] if the team agrees) and unit tested. If we are working
on non-interactive elements, I'm working with Forgejo team to write
Go templates to produce the markup I needed. Either way I will also
handle the CSS. (6 weeks)
Refinements and wrapping up. I want to get back to people I had an
interview with and compare the situation against the past. This is
also the time I can adjust minimum changes if they come up (3 weeks).
Now nothing is as hard to predict as the future. I expect the process
to be transferable to other projects if they want.
As preparation of my grant I studied UX literature (e.g. The User
Experience Team Of One by Leah Buley [11]) and contacted experts.
This should front-load my onboarding so I can hit the ground running.
I asked for contact persons on the respective forges that are also part
of the Social Coding Movement and will build a relationship with them.
The wider audience will be informed on our current channels (issue
tracker, website, Mastodon) and invited to provide feedback if they
have any.
As it currently stands forges are often developed by and for
developers. This makes it harder to be used by other groups such as in
academia.
I can see more stakeholders involved in the process (product
managers, architects, translators, technical writers, testers,
operations etc). These roles are interwoven. They have to work together
to develop successful software. I believe, Coding is Social. It is less
about code but more about humans. Therefore my vision is broader than
the Developer-Designer UI components I applied for in this grant.
Currently I observe those stakeholder copy-pasting information from one
system to another. This is a friction that holds the chance of
hampering communication, loosing information on the way. I would rather
get to a point where we could get rid of these awkward boundaries
between tools.
But the budget is limited. Therefore I focused on an area that is
tangible. As Forgejo we want to research on how a paradigm change to
federated forges transforms the way we interact with each other when
building software. We have only limited experience in this area. I'm
excited to research this field! I am confident that the fruits of this
research can benefit other forges, devtools and the Social Coding
movement. There's potential for innovation.
A first iteration will be the interaction between designers and
developers. I talked to PenPot team during FOSDEM early February 2023
to learn more about their API. Right now they aren't in a shape we
could use right away. That is, there is the possibility to use web
hooks but not programmatic access to the developed components. It's on
the roadmap but there is no date that can commit to.
Given my experience with SVGs I'm able to semi-automate the process.
SVG is a XML dialect. I know how to parse it. I collaborated with other
people on Web Extensions so I suspect that I can develop a tool that I
can use from within PenPot and generate a blueprint of the components I
want to use. In fact as part of a side project I develop code
on-the-fly based on input a person enters into a set of forms. It
matches the code I would have written by hand (except some formatting).
If my assumptions hold water the respective code will be made available
under an Open Source license for others to re-use. I will also approach
PenPot in this area to see whether they can adopt parts of it in their
product.
Even if the required functionality would be available as free software
those lack behind the UX of commercial pendants. This is rooted in the
developer community („scratch your own itch”) which is often already
satisfied with the functionality of their tool. This is not enough to
appeal to a wider audience. The most efficient way is proven to be
backed on user research.
I agree that Open Source alternatives should be build. I don't
necessarily see it as part of Forgejo itself, because it will be useful
even outside of a forge. The work I want to do as part of this grant
can then serve as a source of inspiration and building material in the
form of interaction patterns and insights.
In my observation a large part of commercial software is developed in
the US. In the past there were repeated political actions that rendered
the use of US software difficult for European parties. Currently
Forgejos community is very Euro-centric. By contributing to it I hope
to develop something that helps Europe to become more sovereign in the
software it's using.
Specifications focus often on the technical aspect of a solution.
However, Forgejo is also involving a social aspect. This would not be
feasible to be specified as history told us (see XHTML and HTML
specifications). In fact, the same specification can result in
different experiences as the Mastodon clients show us. This allows for
catering to different audiences while also staying interoperable.
I have only a limited view into the things ForgeFed is doing. Their
work appears to be valuable but very focused on the communication
between computers. I'm interested in working with humans. I'm
fascinated by social interactions and would like to support them with
socio-technical solutions that address their needs.
I'm happy to do so! I want to do both. The conceptual part of the
application has the highest value for being reused by other interested
parties. But in order to show that this process can yield to better
software my aim is also to develop working software that can be
integrated into an existing project. This way I hope to inspire other
communities to adopt user research in their processes.
Documentation is important in defining the adoption of software. My
experience as employee has shown me that Architectural Decision Record
[12] are a format that is lightweight enough to be maintained but also
providing a wealth of insights into how software reached the point it
is at that point. The other aspect of documentation is in its usage. I
have worked with Storybook for this in the past and consider it a good
tool. PenPot is in touch with them as well so I can see synergy effects
going forward.
Forgejo exists already for a couple of months at the point of this
writing. We're very excited about the community that formed around it.
I can understand that there is value in drive-by contributions. However
in order to form a sustainable project we will need more people willing
to work on it in the long run. This will allow for the core team to
take rests when they need it.
I want to not only bring active users into the loop but also adjacent
disciplines. In this case starting with designers and the team over at
PenPot.
In case I inspire others to contribute back their learnings to the work
I listed above I don't know how to account for it.
You see, I applied in my own name. I'm aware that I can list
beneficiaries that can then request payout. I understand that work
should be compensated. But this grant will form the main income for me
as I founded a freelancing career in 2023 to focus on developing
software for the general public. I would love if we could talk more
about this in a further round.
Generally speaking Web Components are a set of web standards that can
be used in different UI frameworks. The license would allow for
adoption in other projects. The user research part is more a mindset
that can be followed and adapted. In this regard, yes, my solution is
forge agnostic. I'm interested in forming strategic alliances if those
communities are open to it.
I'm following the Block Protocol [13] closely since they pair re-usable
components with a schema. It's a young specification so its future
isn't determined yet. There is an announcement for end of February that
will inform my decision to adapt it. If everything unfolds as I imagine
I can develop the Web Components in a format that implements the Block
Protocol which then leads in turn into even higher re-usability in
other projects.
I'm very keen in using formats in my work that are open to remix. We
already loose enough time and money by reinventing the wheel every so
often.
This is an excellent question. We already observe a raise of issues and
have to think about our triage process. In case issue management is
identified as one problematic aspect of our current Forge I want to
research how humans respond to it.
My own personal experience is benefiting from metadata. For example,
my role in a conversation (author, commented on, got mentioned) as well
as the time passed since my last comment and the number of new
comments. I miss a way to bookmark notifications for processing later
(this is another friction point since right now I copy the link into
another system) and an option to add annotation that is only visible to
myself (e.g. ideas on what I want to do with a comment but don't have
the time for right now).
Other people might work in spikes. They would benefit from a way to
stash all notifications for a given time and be able to focus on their
work. Then pull it back up when they need it.
You see, there are lot of different cultures in our world. I want to
approach them with an open mind and learn about how they make sense of
the world around them. There's so much to explore!
Regarding the opinionated people I feel like this question is
blurring into moderation considerations. There is another grant
application for it so I don't want to interfere here.
Previous interactions with the Forgejo community have shown that I can
take different point of views to enrich the conversation of an aspect
of the software. More often than not there are alternatives to choose
from. Yet psychology informs us about a fallacy that „all you can see
is all there is”. My experience with working on different software
projects as well as with different disciplines allows me to take a
broader view and highlight areas that might otherwise be overlooked.
This helps us to find the best solution we can identify by taking a
holistic approach. I expect this to increase the success rate and
sustainability of free software projects.
In my opinion Frontend is an excellent focus point of different
disciplines. My self expectation is to learn enough about those areas to
be able to translate between them. This motivates me to understand
different points of views and mental models. I'm less interested in
„mastering” those disciplines but feel well at home as an intermediary.
My focus will be on Frontend development for the time being.
Thank you for showing interest in my application. I hope the answers
will help you in the decision process. If you have more questions don't
hesitate to write me.
André Jaenisch
[0] https://prototypefund.de/en/
[1] forgejo/forgejo#286
[2] forgejo/forgejo#403
[3] https://penpot.app/
[4] https://discourse.opensourcedesign.net/
[5] https://www.uxdesigninstitute.com/blog/what-are-ux-personas/
[6] https://www.nngroup.com/articles/empathy-mapping/
[7] https://www.uxpin.com/studio/blog/high-fidelity-prototyping-low-fidelity-difference/
[8] https://www.nngroup.com/articles/thinking-aloud-the-1-usability-tool/ [9] https://developer.mozilla.org/en-US/docs/Web/Web_Components
[10] https://storybook.js.org/
[11] https://rosenfeldmedia.com/books/the-user-experience-team-of-one/
[12] https://adr.github.io/
[13] https://blockprotocol.org/
Received a rejection today:
Subject: Message from NLnet
Date: Tue, 14 Mar 2023 10:45:47 +0100
Dear André,
we have identified the projects we will be entering negotiations with for the latest NGI0 Entrust open call. I'm sorry to have to inform you that your project "UI components to catalyse cooperation between Dev & Design" (2022-12-119) unfortunately was not among those selected.
This in no way means that we do not see the value of the work you proposed. We get many more excellent proposals than we can grant with our limited means, so competition is extremely tough. There are unfortunately many talented independent researchers, developers and community leaders that need funding. In addition to that, the specific scope and rules of play of each call pose (sometimes artificial) limits in our selection that mean excellent projects leave empty-handed - because they just do not fit well enough within a certain fund.
Again, we are very sorry that we cannot offer you support for your good efforts. We hope you are not discouraged, and are able to secure funding elsewhere for the project, for instance from any of these organisations:
or through other calls from the Next Generation Internet:
And do trust that we have your funding need and the outline of your project in the back of our head from now on, and so we might come back to you if an opportunity arises (unless you asked us to destroy your contact details in the application form, in which case we will do so).
If you should have any questions, please let us know. And in case you have another good project in mind in the future, do not hesitate to submit again!
Kind regards,
on behalf of NLnet foundation,
Michiel Leenaars
Strategy Director
Given this I'm going to close this issue.
My opinion is that the competition was too high in this specific round.
A better chance might arise in the future. By then the environment in which the application was made might have changed as well.
I'm going to look into PrototypeFund next. That being said, I assume that the grant funding through them won't be as high as with NLnet which forces me to take on less favorable gigs in the commercial world to generate income.
This will imply less flexibility in terms of time I can spend on projects for the upcoming months. Looking at the offers in the past I will hardly find anything less than six months. Most of them have an option to prolong (or can yield in employment which I'm not interested in).
The effect on Forgejo will subsequently be less engagement in terms of contributions.
I'm around for reviews, I think, but I haven't made up my mind how much I can commit to in terms of writing code. Will need to think this through and discuss with my family.