Home » Java, Productivity

Re: Don’t go dark

15 June 2008 2 Comments

In reaction to: Don’t Go Dark. (Jeff, your comment submission form is not working… working again!)

Excerpt from the article

“Don’t go dark. Hiding your code until it’s “done” may feel safer, but it isn’t. Sharing your code with your coworkers is scary, much less the world — but it also results in feedback and communication that will improve your code and draw you closer to the project you’re working on. And isn’t that why we all write code in the first place?”

Reaction

Communication is the most important aspect of every project, open source or not. Providing code is a very nice form of communication, because it exactly describes what you were thinking. A big blob of code hides this communication effort and makes it less effective. Communicate early, communicate often.

Another beast: continuous integration. How to cope with the changes your teammates are doing while you are ‘in the dark’? You keep synchronizing your local tree more than you’d want to. With a fast-moving project, it sucks all your valuable coding time to just keep up with all changes.

Share your code with your team mates, really.

2 Comments »

  • Sergey Pashin said:

    Actually, you don’t have to sync your workspace too often when you practice Continuous Integration. Continuous Integration is about checking in your changes when you are ready, whether this is a method added to a class, a complete feature or a unit test.

    The minimum that is required for Continuous Integration work is to sync with the latest clean (buildable) state of the codebase before checking in your changes and to run the build and all the tests cleanly. This ensures that your changes do not break the codebase [according to your best knowledge]. A Continuous Integration server such as our Parabuild should tell you what is the latest safe change list or time stamp you may use.

    Sure, you will sync mid-flight if you have to pick up changes made by your teammates.

  • Anonymous (author) said:

    Isn’t it that continuous integration only works when everyone commits regularly?

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.