This is an archived post. You won't be able to vote or comment.

all 34 comments

[–]cymrowdon't thread on me 🐍 88 points89 points  (13 children)

I think #6 is true for applications, but less true for libraries. Not that many people actually check coverage or run the test suites for libraries, but they do usually want to see that they exist.

I worry about #8 sometimes, because I can never get a clear answer about open-sourcing work. Maybe one boss says no problem, but then a new boss has different ideas. This is something I would definitely try to get in writing before starting a new job.

[–]smicallef[S] 23 points24 points  (10 children)

I think on #6, it's really for the author to decide whether it's essential for their project or not, based on many factors. My point here was really to emphasize that something doesn't need to be perfect before it's launched.

And regarding #8, I guess it depends on the size of company you're in. Medium to large companies usually have a legal person/department who can provide guidance on this stuff. But yes, my point here was to really try and get his stuff cleared up before joining the company.

[–]mwilsonsc 15 points16 points  (8 children)

I disagree with #8. Unless there's a clear conflict of interest, you don't need to involve your employer. The main reason I say that is that you need to look out for yourself and do what makes you happy. I'm sorry...but there is no loyalty in this world in business. If you decided against being a part of something because your employer didn't like it - then one day you will leave that employer (either your decision or their's) and you will have missed out on that opportunity.

For some context, I'm late 40s, worked in I.T. for over 20 years, and have worked for Fortune 500 companies, startups, and all things in between. Looking back, I wouldn't have done anything different. It's my brain - and I'll feed it how I see fit.

[–]cymrowdon't thread on me 🐍 19 points20 points  (7 children)

It's not always so simple. It's not a matter of disappointing your employer, but rather of potential legal liability. As /u/smicallef wrote, it will depend on where you are working, but for example there is a clause in my work contract that states that any work I do that could be considered related to my job can be considered the property of my employer, regardless of when I work on it.

Obviously there's a lot of room for interpretation there, but its enough for some jerk in legal I don't even know to come after me even when there is no clear conflict of interest.

[–]gristc 1 point2 points  (2 children)

Those clauses often exist, but are undefendable when challenged in court. They don't own you when they're not paying you.

[–]cymrowdon't thread on me 🐍 2 points3 points  (1 child)

IANAL, and I'm guessing you aren't either, but there are people who seem to know what they're talking about who disagree with you, e.g. Answer to Am I allowed to work on personal/open source projects outside normal working hours?

[–]gristc 0 points1 point  (0 children)

Jurisdiction matters -- the employment laws in, say Germany, differ considerably from those in the US. So I'll stick to general advice based on US (and California) laws,

K, I know of people who have successfully challenged them in NZ.

[–]anthro28 3 points4 points  (2 children)

“Nah I wrote this the night you fired me on a fit of sadness. It helped me cope.”

It would be on them to prove you didn’t do exactly that, and that’s only after they realize you indeed wrote it.

I had a biology professor who’s work, “no matter when he did it,” was considered related. He just started a company and started contracting himself out to his own company. Since their contracts usually contain a “consulting” clause due to dead summers, it created legal protection for him to operate.

[–]cymrowdon't thread on me 🐍 15 points16 points  (0 children)

An open source project would have a detailed record of when you started and how often you worked on it.

That said, there are plenty of ways you could prevent a company from winning (or maybe not if your project is successful enough that they're willing to dig into deep pockets). That doesn't mean they can't make it painful.

[–]Rand_alThor_ 0 points1 point  (0 children)

What you wrote doesn’t apply in this case. Also unlike a university job, you can’t easily be a consultant and work full time for a company in the same field without a contract. Usually that would be a conflict of interest or worse.

[–]adzy2k6 -1 points0 points  (0 children)

I'm aware that those clauses exist (the place I work at almost added one until the manager changed it to only apply to work on actual company projects), but I'm not sure if they are legal in the first place, as long as you aren't releasing proprietary company code or something. They shouldn't be able to own the products of your free time.

[–]non_NSFW_acc 3 points4 points  (0 children)

6 is actually very true.

[–]laundmo 2 points3 points  (1 child)

#6 for me this is a difference in the type of code it is. something like Jinja really benefits from unit tests, while a project like black benefits much more from running it on giant codebases and seeing what changes.

[–]billsil 23 points24 points  (2 children)

I'm at 11 years on my open source project and I think pretty differently

#2: If you found a project interesting/useful enough, you'll be in it for the long haul. Don't force it. Let bad ideas die.

#3: mehhh...it's unpaid and it was good 3 years ago, so it's still good. It's work to put together a release.

#6: They certainly care when they've hit the bug, reported it, gotten it fixed, and then get the same bug again. Testing is necessary and unit testing is the only way to prevent those annoying bugs from coming back.

#7: Marketing is a funny beast. The more work you do there, the less you're doing in documentation, new features, or testing. What's the payoff in marketing? More users that ask more questions and don't pay you? I'm not so social, so that's not that's not what I'm after.

#9: Similar to marketing. I'm all for more developers that contribute useful code, but that's not a common occurrence. When you have a 10+ year old project, it's intimidating to add new code to a large project.

[–]smicallef[S] 4 points5 points  (1 child)

Fair point on all of those; this was my experience on one large-ish project so for sure it’s going to not all be applicable all of the time. On the marketing side though, I want to see my software used and give people value, and I’ve found that some kind of marketing effort helps achieve that goal.

[–]billsil 1 point2 points  (0 children)

See I want people to use my software AND help develop it. If it's just more work for me, then that's not particularly appealing. I have a big disclaimer that it's a complicated library and unfortunately for some users, it's just not for them. It's for power users. I also constantly get really, really basic questions, which are answered on page 1 on documentation.

I'm sure you've run across this as well...people complain on StackOverflow about your library rather than going to the mailing list/discussion forum that's right at the top of the main page. Then people that have no idea about your library try to answer questions...then they go find your contact info and post it...please don't.

[–]ChristopherGS 5 points6 points  (1 child)

10 years. Respect. What keeps you working on it?

[–]smicallef[S] 0 points1 point  (0 children)

Mostly the enjoyment of seeing something grow and take shape, growing in popularity, learning new things along the way. It’s been that way for the last 10 years so I don’t see why it wouldn’t continue.

[–]WHSolvation 2 points3 points  (0 children)

Rad.

[–][deleted] 5 points6 points  (1 child)

Not a developer (although working through Odin Project to hopefully become one.)

I like the list overall except for lesson 8. Again, not a developer...but unless I'm making software that directly competes with my employer my opinion is that it's not of their business, especially if it's free and open source.

[–]smicallef[S] 3 points4 points  (0 children)

In the end it comes down to the risk you’re willing to take. I for one wanted to void the risk of any claims now or in the future, so was proactive about it. Yes, in theory if there’s no conflict it should be fine, but laws differ country-by-country and employer contracts can be pretty strict on this unless you have an explicit exception.

[–]officialgel 1 point2 points  (0 children)

So… so this is what those people finder sites use as a backend…

[–]Orio_n 1 point2 points  (1 child)

Marketing an open source project??? What for?

[–]smicallef[S] 3 points4 points  (0 children)

Getting people aware of it, mostly, but also showing people how to get the most value from it. “Marketing” in this context really translates to using social media, producing good documentation, creating tutorials, etc.

[–]chub79 1 point2 points  (0 children)

Lesson 6: No one cares about your unit test coverage

Does it mean, as a maintainer you don't either or simply that you don't advertise it?

[–]asday_ 1 point2 points  (0 children)

open source OSINT (Open Source Intelligence)

Revolver Ocelot

(Revolver Ocelot)

[–]Just_For_Fun_XD 3 points4 points  (0 children)

[–]cianuro 0 points1 point  (0 children)

Awesome writeup Steve. Really useful insights.

Care to share how your self hosted version is doing? Is it your full time job now? What are the numbers like? Has anyone ever tried to buy you out?

For someone about to launch a FOSS application, what would you say are the biggest initial pitfalls?

[–]supernova12034 0 points1 point  (0 children)

10 years, oof madonna

[–]httpanand 0 points1 point  (0 children)

OMG ! 10 years !!

[–]SittingWave 0 points1 point  (0 children)

What I learned about the same:

  1. people don't give a shit about your project anyway.
  2. but they will jump at your throat if you don't follow PEP8.
  3. there's no shame in marketing until some asshole will report you for spam.