Live data from Hacker News

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

news.ycombinator.com

111–120 of 186 posts

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

#111
Like a few others here, I just had to onboard to a project as well. I made a lot of mistakes, but learned a lot.

Mistake 1 - Was too focused on committing code and getting my first PR merged. I wanted to prove I could commit code quickly, and that PR is missing a lot of things and had to be patched later.

Mistake 2 - Not asking for (enough) help. I did a short pairing session that got me up to speed, I should have asked for a few more. I also should have asked "What's important in this code?" I had to learn that the hard way.

Mistake 3 - Ignoring the full release lifecycle. On day 1 you should first learn how issue management works, and then how the software is released to production. Releases caught me by surprise, and I ended up having to put hotfixes in.

Mistake 4 - I let QA become a second class citizen. Find out who and how your code will be QA'd, and try and be active in that process.

Mistake 5 - Ignoring important "sub-systems" as they didn't seem to directly pertain to my work. For instance, I knew we had a feature toggle system, and I was told I didn't need to use it for my work, but looking back, it would have been nice to know and use. I also was told to ignore end-to-end tests since my work was so small. Well guess what held up release because my code broke it? Yep, end-to-end tests.

Mistake 6 - Modifying code without reading tests and understanding the underlying data. A lot of people have mentioned this, and it can't be emphasized enough. A lot of tests have mock data at the top, why ignore that, it tells you what the code is working with. 'Describe' blocks tell you exactly what methods are supposed to do and what's important about them.

So, I made a lot of mistakes it seems, but the most important thing I did right was this:

Whenever I realized a mistake, I fixed it and I moved on. I didn't let it get me down, and I won't make that mistake again. That's ultimately what a good dev is, someone who can red/green/refactor their mistakes with minimal oversight.

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

#112
Refactor code as you read it. If you see a method that doesn't make sense to you, change it. Even if you don't merge your changes, the exercise of trying to solve the same problem the original engineers were trying to solve is, in my opinion, the fastest and most effective way to get up to speed with a codebase.

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

#113
Refactor code as you read it. If you see a method that doesn't make sense to you, change it. Even if you don't merge your changes, the exercise of trying to solve the same problem the original engineers were trying to solve is, in my opinion, the fastest and most effective way to get up to speed with a codebase.

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

#114

Refactor code as you read it. If you see a method that doesn't make sense to you, change it. Even if you don't merge your changes, the exercise of trying to solve the same problem the original engineers were trying to solve is, in my opinion, the fastest and most effective way to get up to speed with a codebase.

Err, I would advise to absolutely don't do this as a new employee. Ever.

If you see a method which doesn't make sense to you, ask about it. Why is it running the way it is? What corner case prompted it? Is there testing which covers it?

Only once you're sure that the code really is problematic should you refactor it. Otherwise, you're begging for regressions, new bugs, and conflicts with people who wrote the code in the first place.

Understand the impact of codebase you're looking at before you try and change it.

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

#115

> My guys were time reporting into 3 different tools (and this is a Who is the fscking idiot that calls himself a startup founder and makes people report in 3 different tools?

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…

>but it's not necessarily a case of idiocy

proceeds to describe idiocy

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

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

As I have written in previous post, this is where IMO a step-debugger earns its keep.

As an IC basically my entire life, I have joined large legacy projects many times, and my typical attack strategy always revolves around a large cup of coffee and my trusty debugger. Using 2 monitors, starting at main() or index.php (or whatever of course), I will execute as much of the entire codebase as possible line-by-line.

At first I will blast through the code looking at general structures and entry/exit branches and the like, and note things and often breakpoint sections that seem hairy or where I can note inefficiencies or great design.

Then I slow down the stepping and really examine the heavy-lifting sections to try to become familiar with the style and abstractions being used.

This method has served me well, as more often then not, by the first day's afternoon I can be having intelligent conversations with the existing team, almost always much to their confused surprised.

I suppose it matters much if you are going into the senior position as really strong head-down coder or as really more of a project management liaison.

Not being much into the management side of things, I don't have much advice on that role, and your suggestions sound really smart.

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

#117
I've onboarded as a senior developer onto a new project few different times: twice at a startup, once at a largish company, once at a very large company, and once at a coming-out-of-startup phase company (that time as a hybrid dev-manager). A few pointers:

1. First thing is to come up with a ramp-up plan. Before you touch any code, before you fix bugs, make sure you have a 30- and 90- day plan for where you need to be and what you need to know. That plan should include with coming up with questions for people and meeting with them to ask them, understanding the company's strategy at a sufficient level, and, yes, understanding the code base and development procedures.

2. As a Senior Developer, it's good to know where the project is now, but people are looking to you to know where the project will be in 6-9 months. So, while fixing bugs is good, don't get bogged down in that - after some initial familiarization, take up tasks that let you focus on big picture architectural and process issues.

3. Take time to get to know your colleagues. Have lunch with them. Have non-work conversations. Start to learn what interests them. Without explicitly asking, pay attention to clues about career goals and what they find challenging. As a senior developer, demonstrating that you are genuinely interested in your colleagues goes a long way towards earning trust and getting embedded into the team faster.

3a. Get a sense of the team's culture. Are there cultural norms you're not used to? Are these norms good/bad/indifferent?

4. Given that you are a Senior Developer, you should make sure your team is hitting a lot of basics. Are there feedback loops, both business-wise and process-wise to your team? If not, you should work on getting these in place (or at least making sure that it happens). Business feedback loops should include some kind of KPI report, adoption report, etc. Process feedback loops usually include regular, honest and constructive retrospectives. Usually if you're hired as a senior developer on a team, most of your teammates will have limited experience in these.

5. Whenever possible, share your perspective. One of the big differences between a senior developer and non-senior developers is that you've seen a few projects, and you've probably seen pitfalls along the way. That's probably a big reason why you were hired. A great way to add value to a team when you still don't know the nitty-gritty is being able to say "It sounds like we're doing X. I was on a team once that did X, and A, B and C happened." Of course, always do it from a point of view of humility - there might be new constraints that you didn't know about.

Beyond that, a lot of it will depend. If you're joining a large company, you should spend some time doing "company networking," i.e. , meeting other senior developers, project managers your team works with, understanding not just your project but other projects near you in the org. If you're joining a start-up, chances are there is a deadline in a few months, so the emphasis will be much more on delivering something immediately. Writing documentation can sometimes be helpful, but if you're at a startup that now has hired its full allotment of engineers, writing a ton of documentation about how to get up to speed is of limited use. Fixing bugs can sometimes be a good approach, but sometimes for teams that didn't have a senior developer before, the proper fix involves a design change. Is there someone else who is also interested in raising the bar for engineering practices, but doesn't know where to begin? Work with that person, since you have the experience as a senior developer, and that person understands the specifics of the team.

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

#118

Earlier quoted context omitted.

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…

It's worth noting that most non-enterprise companies (i.e. not Microsoft, IBM, or Oracle) don't implement staff or principal prefixes, making senior the top of the list. I haven't had a principal prefix since I worked for Oracle (and got there via an acquisition where I was a senior), yet I'm always at or near the top of the development ladder for my department.

As always, you need to ask questions, not make assumptions.

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

#119
post #116
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…

As I have written in previous post, this is where IMO a step-debugger earns its keep. As an IC basically my entire life, I have joined large legacy projects many times, and my typical attack strategy always revolves around a large cup of coffee and my trusty debugger. Using 2 monitors, starting at main() or index.php (or whatever of course), I will execute as much of the entire codebase as possible line-by-line. At f…

What does IC stand for?

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

#120
post #116

Earlier quoted context omitted.

As I have written in previous post, this is where IMO a step-debugger earns its keep. As an IC basically my entire life, I have joined large legacy projects many times, and my typical attack strategy always revolves around a large cup of coffee and my trusty debugger. Using 2 monitors, starting at main() or index.php (or whatever of course), I will execute as much of the entire codebase as possible line-by-line. At f…

What does IC stand for?

Individual Contributor
Post reply on HN