Live data from Hacker News

Ask HN: How do you become productive in a new project as a senior developer?

news.ycombinator.com

101–110 of 186 posts

Re: Ask HN: How do you become productive in a new project as a senior developer?

#101
post #79
post #68

Earlier quoted context omitted.

From experience, I find that I'm not really able to add meaningful tests until I have an idea of what's going on.

I've had the same experience. I'm sure it's somewhat context dependent, but if the code amounts to business rules and they are not documented, which is very common, you can only reverse engineer what the system _does_ and then write tests for that. Of course you can ask people who are more familiar but whether you end up helping or being a distraction then is an open question.

> whether you end up helping or being a distraction then is an open question.

Ask on your team's IRC channel.

Re: Ask HN: How do you become productive in a new project as a senior developer?

#102
post #20
post #4

I am 1 month into my new position, same position you're in - new stack & straight into senior role. My tips so far: 1) Take over all the admin stuff you can to free up your devs from distraction and pointless tasks. Productivity and morale will immediately go up. My guys were time reporting into 3 different tools (and this is a <10 person startup!), I just started writing a summary of our standups and told them they…

Super useful. Thanks. The project is also in burning condition, viz. Tight deadlines, pressure etc.

Also talk to your QA and make sure they understand the level of throughput possible for your team. QA can unintentionally kill a struggling project by overloading the tracker with bug reports.

Re: Ask HN: How do you become productive in a new project as a senior developer?

#103

I think it is a little bit of exaggeration to claim Senior Developer title on a project with unfamiliar tech stack.

Every place has its own names for things, but I often see "senior" refer to your interchangeable seniority in the field, not just in the one company/code base. Then for people to grow into "lead" or "principal".

Senior Developer is typically either a junior or intermediate title.

In some places, the title progression for technical professionals is (dev, senior dev, staff dev, principal dev, arch, senior arch), meaning Senior is actually a junior title.

In other places, the title progression is (dev I, dev II, senior dev, staff dev, senior staff dev, principal), meaning Senior is an intermediate title.

There is of course some variability across companies, but it's safe to say that "Senior Developer" is never an actually senior position. People holding it are never in charge of big things.

Re: Ask HN: How do you become productive in a new project as a senior developer?

#104
post #62

Earlier quoted context omitted.

This kind of attitude is really unhelpful. Of course this sort of situation is undesirable, demonstrably, but it's not necessarily a case of idiocy - it's actually very easy for non-technical founders to get into this situation: let's say the developers want to use JIRA, but the non-technical staff find JIRA impossible to use (totally reasonable), so they want to carry on using Trello; straight away you've got tasks…

>time-tracking by the hour is incredibly important As someone who does the R&D tax credit for a lot of tech companies, let me tell you that it really, really is. It's worth somewhere around 10% of all your developers' salaries if the company is profitable. As in, if they work 10 hour days, entering data into a time tracking system is a net benefit even if it takes up to an hour a day.

An aside, but working 10-hour days is bad. Anything more than 40 hours/week and you're actually reducing overall output.

Re: Ask HN: How do you become productive in a new project as a senior developer?

#105

Earlier quoted context omitted.

> This kind of attitude is really unhelpful. No, what's unhelpful is less than 10 people acting out in an noncohesive way This is weak management and a lack of focus

I wouldn't go and say this is due to stupidity but as a senior professional that would sure be my starting point. That company is in a less than desirable situation, how many other gaffes are there?

This is not the big deal you're all making it out to be.

Re: Ask HN: How do you become productive in a new project as a senior developer?

#106
A lot of being productive as you gain more experience is by working on the right things, so you produce more with same amount of effort.

What this means is you want to start with figuring out goals. What is the project's goal? What are the constraints? Why are things being done the way they are? What does success mean?

Once you know that you can start doing tactical stuff (and since answering those questions can take a while you can probably do lots of other stuff in parallel, as discussed in other comments).

Two relevant practical talks, from PyCon that was this weekend:

1. I gave a talk on how to choose how and where to test your software (https://www.youtube.com/watch?v=Vaq_e7qUA-4&t=63s).

2. Awesome talk on how to structure documentation - prose version at https://www.divio.com/en/blog/documentation/, video version at https://www.youtube.com/watch?v=azf6yzuJt54

Re: Ask HN: How do you become productive in a new project as a senior developer?

#107
post #68

Earlier quoted context omitted.

I love all of your advice, but I would start straight-away with writing tests. Not only is it low risk, it is the best way to start understanding the code base, and gives you an avenue through which you can start introducing small refactorings. The other important thing is that developers LOVE to have outside help with testing and a pair of fresh eyes to look at the test-suite through.

From experience, I find that I'm not really able to add meaningful tests until I have an idea of what's going on.

Start by adding a whole-system black box end-to-end test, if there aren't already any good ones. Ideally fully automated and automatically run for every commit via CI, but don't let the perfect be the enemy of the good, take what you can get for starters.

Benefits:

(1) You only really need to know the system as a user, not the codebase as well, to do this.

(2) Well, #1 was a bit of a white lie. You'll end up finding out about all the (possibly undocumented) runtime dependencies this way, spinning up throwaway VMs and databases, etc. If the project is in production, this will be very useful knowledge, since you're probably the last point of escalation for strange prod issues.

(3) Running this out of CI with throwaway VMs/containers will also force you to fully automate the install and make the damn thing actually work on a generic blessed OS configuration, which might be a huge boon to your team if you currently are in "Works on my machine" hell. I did this somewhere where we had tons of lost productivity because developers used OSX or Ubuntu on their workstations, but prod was RHEL, and the most fascinating deviations would be found by developers chasing the strangest of bugs. Making the install reproducible so we could have CI totally ended this.

(4) If you don't have this already, and you set up infrastructure to gate commits on this test passing, team love and productivity will rapidly go through the roof as suddenly your developers aren't spending half their time fighting each other's build breaking changes.

So yeah, it's just one thing, but it leads to so many benefits it's definitely where I would start.

EDITED: Added an item to the list

Re: Ask HN: How do you become productive in a new project as a senior developer?

#108

Earlier quoted context omitted.

This kind of attitude is really unhelpful. Of course this sort of situation is undesirable, demonstrably, but it's not necessarily a case of idiocy - it's actually very easy for non-technical founders to get into this situation: let's say the developers want to use JIRA, but the non-technical staff find JIRA impossible to use (totally reasonable), so they want to carry on using Trello; straight away you've got tasks…

I am at a 13 person startup. We use Confluence, Bitbucket, Google Apps, and we also use Asana (instead of Jira). It is a nightmare... Information is spread out all over these platforms. We can't stick to only Atlassian tools because the CEO thinks they don't allow you to collaborate... We spend a lot of time looking for where information lives and debating where it should live, complete waste of time. In a smaller co…

I totally agree, and I think a lot of people will have been in this situation too.

There is, unfortunately, no simple solution other than the very obvious one, which is to use the right things for the right job, and as few of those things as you can. The really crushingly miserable situation is one where the documentation is in Confluence and Google Docs and some random files in Dropbox before they started using the first two and some files that someone shared on the Slack channel and a few things that are just in the CTO's inbox which he was sent by the CEO in PowerPoint and... it's utterly toxic.

This proliferation of excellent tools we have today should be a good thing, but really we are all victims of our own best intentions sometimes (in that horrible chain of misery, even the CEO honestly thinks he's being helpful by emailing a PowerPoint rather than just telling someone over the phone).

Re: Ask HN: How do you become productive in a new project as a senior developer?

#109
post #4

I am 1 month into my new position, same position you're in - new stack & straight into senior role. My tips so far: 1) Take over all the admin stuff you can to free up your devs from distraction and pointless tasks. Productivity and morale will immediately go up. My guys were time reporting into 3 different tools (and this is a <10 person startup!), I just started writing a summary of our standups and told them they…

A very good idea. Thanks!
Post reply on HN