Live data from Hacker News

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

news.ycombinator.com

141–150 of 186 posts

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

#141
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.

I see in one of your sub-replies further down that you are in the US, but even hearing you mention "R&D tax credit" makes my blood boil. At least in Canada, the "Scientific Research and Experimental Development Tax Incentive Program" (aka SR&ED) is a complete scam.

Every development shop in Canada claims credits to recoup a significant portion of employees' salaries. Yet not a single one of my companies has ever performed R&D. The analyst comes in and spends a week getting every employee to lie about their work, enticing them to rephrase how their mundane copy-paste-from-Stackoverflow work somehow qualifies as "R&D". The majority of taxpayers' dollars paid to corporations through the SR&ED tax program is fraudulent.

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

#142
post #71

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…

Sorry, an hour a day doing busywork (like entering hours) in a startup is utterly indefensible. I've done a bunch of startups and not only did this never happen, it would not have been tolerated. Even at > I never spent more than about ten minutes a day doing tracking; during heavy bug crunches, maybe an hour doing detailed writeups within bugs for other groups, for communication purposes. In a small team in a compan…

The indignation seems misplaced. Time tracking seems pretty common in the industry, whether it be mandatory or voluntary. Several places I worked had detailed time tracking, and it was pretty informative/helpful as a tool to manage your own task prioritization. It can be pretty eye-opening to sit down at the end of the week and actually take stock of how much time you spent coding, thinking, in meetings, getting coffee, screwing around, etc.

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

#143
First thing is first, you are learning a new stack, you probably have coworkers that know it better than you, so you have a golden opportunity to kill two birds (gain favor w coworkers & learn fast) with one stone!

Do not bother your coworkers with endless questions or interruptions, but try to use scheduled times to discuss how you're going to build things. In an ideal company, you shouldn't be building things in a bubble, there should be multiple team members ensuring quality instead of one or two brains. (Also ideally coworkers should be trying to learn how you think so they can best tailor tasks to you)

The hardest part is continual, backbreaking improvement. It becomes easier as you keep doing it. I recommend getting a twitter and following everyone vocal in the area of the tech stack you're working on AND people who work on the same problems as your company (double reinforcement of shared knowledge in your industry). That way you're aware of the current problems that may arise (instead of being left in the dark), trending new ways to do things, counterpoints of why you should avoid some new trends, etc. Scour the internet for resources, such as HN of course, but also popular see sites, subreddits related to the stack, IRC channels, and follow the Github projects of the tech stack if possible (lots of discussion and examples are there!).

I like books. I spend thousands of dollars on books a year, but books on a tech stack rather than development practice will become quickly outdated, and can learn just as much online as you can in a book on a tech stack. I will only buy a tech stack / programming language book is if the language is hard core or if it is new & emerging with a smaller community.

I'd also recommend taking extra time to analyze and plan before diving in. Just sitting for maybe an extra 3 minutes allowing your mind to clear so you can put things together in the right way. Your goal is to become opinionated and knowledgeable faster, so taking the time to get it right early on is permissible.

Finally I recommend something that others won't tell you. It's to become a super fan of the stack (how) and company's mission (why). Your newly found enthusiasm would be a superb speed boost to your goals and add increased visibility to your efforts.

You will not instantly become productive or enlightened, but the fact that you're seeking to be better (yay enthusiasm) does increase the likeliness that you will succeed.

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

#144
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…

This is a bad idea. Definitely well intentioned, but has a lot of bad side effects. Especially at big companies, I was instead actively encouraged to dive right in, make very small changes to existing production code & submit it for a code review. That gets you started in the right direction asap, because the feedback is direct - its pertinent to your code that you wrote, so you feel it viscerally & begin understanding the code even though 10 minutes back it was an opaque mudball.

If you become a waterboy, you will definitely be appreciated by the team, productivity & morale will go up etc - But you personally didn't sign up to be a waterboy! You came to be a player. So play.

You can't go from being a standup-summarizer or infra-support-guy to your regular senior developer role. If you are any good at those ancillary roles, you will be playing those roles for a long time. Every day doing infra is a day not doing regular dev - that's just the way it is. I have been there & its not fun. These ancillary roles have a way or morphing into a fulltime job, and soon that's what you'll end up doing.

This isn't WMA/CAA where you start in the mailroom and few years later you become Hollywood's top producer greenlighting 100 million $ movies. It simply doesn't work like this in tech companies.

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

#145
post #62

Earlier quoted context omitted.

>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.

What if you're working four days a week?

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

#146

Earlier quoted context omitted.

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…

>> We use Confluence, Bitbucket... Asana (instead of Jira) This is the thing with the Atlassian ecosystem. Whether you are pro-Atlassian or anti-Atlassian, there are only two sane options: you either all-in with everything Atlassian, or you are better off with nothing Atlassian. Mixing and matching products when Atlassian is involved is the wrong choice, every time. The Atlassian suite as a whole is fantastic when th…

I dunno, JIRA works reasonably well as a standalone and integrates with everything under the sun. However I definitely see your point in replacing JIRA w/ Asana as it's really gutting the core of the suite.

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

#147
I always start with the test suite.

If I'm unfamiliar with the code base I start by trying to break things. When I do this I'm looking for missing assertions, invariants, or incorrect assertions. I create tests for those. I fix them. If the project I'm working on is smart enough to use property-based testing I look for weak invariants, serializability, or missing assertions. The end goal is to understand the module by exercising it and adding value at the same time.

If the code base isn't using property-based testing or has no tests at all I will find a way to add them. It gets the ball rolling for adding some issues to the tracker and provides real value.

Keep a journal of your experiences coming up to speed. Once you've grasped a certain corner of the code base review your notes and build some documentation for that code. It will help on-board new developers the next time they come to that code base.

As for introducing best practices, as a senior developer, you'll have to build consensus with the rest of the team. In my team the difference between a senior developer and a team lead is the ability to communicate ideas and build consensus around them. Learning how to influence people is the hardest part about building your skill as a senior developer. Senior developers become leaders when they can communicate a proposal and immediately build in feedback from the team and turn that into a real change to the code base, product, and business.

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

#148
post #144
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…

This is a bad idea. Definitely well intentioned, but has a lot of bad side effects. Especially at big companies, I was instead actively encouraged to dive right in, make very small changes to existing production code & submit it for a code review. That gets you started in the right direction asap, because the feedback is direct - its pertinent to your code that you wrote, so you feel it viscerally & begin understandi…

I think the parent was the lead taking the onus off his direct reports. In such a case, improving your team morale and productivity is more important than closing out a couple of 1 point stories.

On the other hand, if the team were peers in the org chart, I agree with you.

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

#149
post #62

Earlier quoted context omitted.

>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.

I'm wondering how widespread claiming "R&D tax credits" actually is. To think that most companies could/would seems preposterous (how many are truly doing something worth of the monicker R&D?) I'm seeing an ecommerce business applying for R&D credit, and that seems absurd, since > Your company can only claim for R&D tax relief if an R&D project seeks to achieve an advance in overall knowledge or capability in a field…

In Canada it's basically ubiquitous at small to medium companies. SR&ED and IRAP are the big programs.

The standards are pretty loose.

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

#150
The other replies here are misguided. A senior developer's job is not to take over as a know-it-all dictator at the end of their first week. You don't write unit tests for existing code, refactor other developers' work, take over the role of architect or sysadmin, make sweeping changes to existing processes, or take any other "heroic action". The number of comments here essentially saying "assert your dominance by introducing the 'right way of doing things'" is unsettling. Shame on anyone who strolls into a new team with this mentality.

Your job is simple: get to work. You don't invent "important senior work" for yourself as a way to prove your merit with your ego, before you have settled in and earned your title. You pick up existing tickets from the queue. The only way to get acquainted with the project and its stack is to begin working on real tasks that require minimal modifications to the codebase. That's your goal: commit and deploy small chunks of code that accomplish something useful for the business. You need to take the time to organically discover each subsystem, one at a time, as you complete tasks that actually close tickets. A senior developer's initial job is to be a "junior developer" who knows nothing about the project, taking the time to learn the system bit by bit.

Progressively pick up enough knowledge in order to eventually be in a position to assist other developers and make decisions about the project's future. After 1-3 months, depending on the size and complexity of the project, you will have touched a majority of subsystems while working on tasks. You will then have a comprehensive understanding of the system as a whole, and may be considered informed enough to take some amount of control over the future direction of the project.

tldr; Your job as the newest senior developer on a team is not to be perceived by others as a senior developer. Your job is to act like a senior developer, and that means taking the time to integrate yourself at a reasonable pace. The "Senior" prefix to the title does not kick in until you've worked on the codebase long enough to fully understand it.

Post reply on HN