When should I cancel my code?

I continued to release the library that I wrote, because this is the first library that I will publish publicly. Here are my problems:

  • The library is not complete, it is in a very convenient state, I would say that this is version 0.3, but it still lacks a number of functions that I would like to implement at some point and control how they work (which means not merging someones implementation).
  • I am afraid of criticism, I know that there are several things that need to be reorganized / reorganized, but I quickly wrote an initial class in order to be functional for another project that I am working on.

So, when is the best time to exit? Should I just drop it on github and work on releasing releases? Or should I wait until I reorganize and feel completely comfortable with what I wrote?

Most of the classes / libraries that I see are always very elegantly written, however, I have not seen any early releases, are many classes pretty sloppy on initial release?

+4
source share
5 answers

Release early, release often.

Criticism is good if it is constructive. Ignore the haters, pay attention to posting bug reports and commenting.

The internal structure of the code matters, but it matters more if it works as intended. In general, refactoring will change the way code works internally, but will not affect its use. The same inputs and outputs.

+17
source

You need to get something half useful first, and then others will say โ€œhey, it almost works for meโ€ and they will be involved in the project.

Linus Torvalds
Linux Times (2004-10-25).

+15
source

It depends on why you are doing this. If it provides something useful and useful and has advantages that are not in another library, then go for it. Just list the status and what will happen next.

If you do this to indicate a resume, get it in good shape (code, not necessarily complete). Imagine a future employer scrolling through a code to see how it looks, rather than downloading and running the code.

+4
source

If you release the code in an incomplete state or not, it is always worth having sufficient documentation so that users can understand how to use the library ... even if it is only an API docs. Make sure that something incomplete is marked as TO DO - this helps to save the target task list for completion and allows users to find out that the function / method / is all that has not been forgotten.

Providing a set of styles / standard code documents (possibly with architectural notes on class relationships) allows other developers to contribute more easily and in a way that improves the library, rather than turning it into spaghetti hotch-potch code. This never facilitates the release of the library, and then refactoring, while maintaining backward compatibility for users who are already busy, and use this library in production settings.

EDIT

Do not be afraid of criticism ... it comes with territory. Some critics may be constructive (note this). There will be many other people who criticize your code (for whatever reason) without being constructive or simply deny your work. The difference is that you produced the product, they probably never contributed to any OS product / library.

Users expect you to fix your problems right away, or write your code so they can use your library, or simply say that โ€œthis does not work,โ€ without any explanation of what they mean. You must learn to live with this 24x7x365.

But from time to time, someone thanks you for saving hours of work for them, or for bringing something useful ... and suddenly all the stress and hassle feels worthy.

+2
source

I read a paper by Joshua Bloch, Googleโ€™s chief software engineer, who talked a lot about the best type of API design. Basically, as soon as you release it, it is more or less installed. He says

Common APIs forever - one chance to get it right

You can check the slides here . It is definitely worth a read. I have his PDF file; let me know if you need it.

0
source

All Articles