I occasionally coach small teams who work on open source software. They do have limited budget and often no dedicated designer role. I collected some advice I commonly give them:
Improving text (usually easy to do without code changes!)
I think this is important advice on how to improve existing software.
I think that observing users of the software is the most important thing. It doesn’t need to be well-prepared user research sessions, just watching people from time to time.
One thing that we did successfully in Forgejo is reworking forms and settings. It allows us to rework some really frustrating and overwhelming parts of the app without much effort:
Get rid of dropdowns with few options, they use a lot of space and require more clicks, and users can’t see their options while scanning the form
write useful help text
write hints for non-obvious settings (e.g. “X permission allows your users to do y and z”)
remove repetitive help text from obvious setting (e.g. “X permission allows your users to do X”)
group related settings and split monster sections into smaller ones
move optional / advanced settings to the end or hide them
Also, this is my addition for creating better things from the start:
Decouple UI from implementation: Developers tend to build user workflows the same way their system works. Common scenario: You have an organization, and users, and group them in teams. The data model is organization, teams and users and they need to be created one by one. However, the UI could already create a default team or allow adding people without creating a team first etc (although it means that a single click creates two things in the database)
Don’t reinvent the wheel: Sometimes, people think they got innovative design ideas (that are not directly related to the thing they’re building), and then they don’t get it right. Stick to what others do if you cannot design it properly.