Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you're on-boarding into an existing Java project and want to be productive in your first week, I think using an IDE is the only answer.

I would argue if you're using Java, using an IDE is the only way to stay sane. Context aware class navigation is pretty much a requirement on any sizable project. Intellij can make Java almost enjoyable to use.

Your comments on agile and standups are spot on. Where I work now we do real standups. The group makes everyone actually standup and keeps the people who can wander during their turn on topic. The meeting is also strictly 15 minutes or less. It's the best daily type meeting I've ever had at any job and it works pretty well.



I think there's a plus and a minus to the class navigation features of IDEs. Undoubtedly they make it faster to find your way through a thread of code, helping you to avoid breaking concentration and flow. However, I also observe that many of my colleagues who exclusively use an IDE never actually learn the structure of the codebase. Starting in on a bug or a task from scratch, they don't have the instinctive knowledge of what file & method to go to straight away to start working on the problem which I feel like I've gained via time spent navigating the codebase more manually.


> I would argue if you're using Java, using an IDE is the only way to stay sane. Context aware class navigation is pretty much a requirement on any sizable project.

This applies to any language, not just Java.


It's not so much the language as the practices that have developed around it, such as the "everything happens somewhere else" principle of strong OOP. Which has some advantages, but means that you'll be flipping through lots of classes to trace most code paths.


If you have a large codebase written by several generations of developers you'll get this. Even in languages without OO support.


Java... I think IDE + Java has the "four-wheel drive" problem of getting you stuck in a more inaccessible place. There are a lot of ad-hoc software lifecycle structures that are so unnecessarily complex they can only be used with IDEs, that exist because IDEs let people get to that level of complexity.

I don't like Java even with an IDE, and I especially dislike Maven, but Scala and Clojure are two of the most exciting languages out there, and because they're showing an ability to build communities that Haskell and Ocaml seem to lack (not a fault of the languages, but just because it's really hard to get people to learn "new everything") and so they're probably going to either be "the winners" when the divergence/convergence cycle of PL moves back into a convergent phase, or predecessors of whatever wins. Scala and Clojure are probably the "best bets" right now. The "language of 2020" won't be Java or Ocaml or SBCL, but Scala has a fighting chance.

On standups: if you're going to do a daily status meeting, then standup is the way to go.

That said, I dislike status meetings because I think they burn a lot of time, involve too much context switching, and don't solve problems that are better solved by direct communication. Also, audit-cycles don't have a one-size-fits-all pattern. You might want to ping an entry-level programmer daily in the first six months and 1-2x per week after that, while for a more senior person, a high-level might be appropriate.

One thing I will say is that a formalized status-reporting infrastructure (even one that costs a half hour per day) is much better than ad-hoc micromanagement. I worked at a company where 2-4 daily status pings (that would evolve into half-hour detailed conversations about minutiae) was the norm and that was a massive failure.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: