Skip to main content
The 2024 Developer Survey results are live! See the results
312 votes

What do you do when code review is just too hard?

The premise of the question is, frankly, astounding. We suppose that there is a large change to fragile, complex code, and that there is simply not enough time to review it properly. This is the very ...
Eric Lippert's user avatar
  • 46.3k
258 votes
Accepted

Why does Uncle Bob suggest that coding standards shouldn't be written down if you can avoid it?

There are a few reasons. Nobody reads documentation. Nobody follows the documentation even if they do read it. Nobody updates the documentation even if they do read it and follow it. Writing a list ...
Stephen's user avatar
  • 8,838
245 votes
Accepted

My office wants infinite branch merges as policy; what other options do we have?

Even though I use Git on the command line – I have to agree with your colleagues. It is not sensible to squash large changes into a single commit. You are losing history that way, not just making it ...
amon's user avatar
  • 135k
182 votes

Should a (junior) developer try to push for better processes and practices in their development/IT team?

Good answers so far, but they don't cover all the bases. In my experience, many people fresh out of college have fantastic theoretical knowledge - far better than me or many other seniors with ...
jwenting's user avatar
  • 9,861
181 votes

How can I defend reducing the strength of code reviews?

How can I justify and defend the thesis that: The merge button should be enabled by default The code review should be a recommendation , but not mandatory The code author should have the right to ...
Philip Kendall's user avatar
165 votes
Accepted

When does bugfixing become overkill, if ever?

You have to be pragmatic. If the error is unlikely to be triggered in the real world and the cost to fix is high, I doubt many people would consider it a good use of resources to fix. On that basis ...
mcottle's user avatar
  • 6,152
140 votes
Accepted

Why isn't TDD more popular in universities?

I am a part-time programming teacher at a local community college. The first course that is taught at this college is Java Programming and Algorithms. This is a course that starts with basic loops ...
Robert Harvey's user avatar
127 votes
Accepted

How do you develop software without acceptance criteria?

An iterative process will achieve this nicely, without detailed specifications. Simply create a sketchy prototype, ask for feedback from the customer, make changes based on the feedback, and repeat ...
Robert Harvey's user avatar
116 votes

Why does Uncle Bob suggest that coding standards shouldn't be written down if you can avoid it?

There's another interpretation. I don't believe it is what Uncle Bob meant, but it is worth considering. Don't capture coding standards in a document. Capture it in code, by having an automated ...
Tom Johnson's user avatar
  • 1,039
111 votes

My office wants infinite branch merges as policy; what other options do we have?

I like Amon's answer, but I felt one small part needed a lot more emphasis: You can easily simplify history while viewing logs to meet your needs, but others cannot add history while viewing logs to ...
Karl Bielefeldt's user avatar
107 votes

What happened to the "Surgical Team" pattern from "The Mythical Man-Month"?

"The Mythical Man-Month" came out the year I started college and was, to use the current vernacular, UUUGE! :-) What you need to understand is the difference in how software was developed THEN vs. NOW....
Bob Jarvis - Слава Україні's user avatar
101 votes

Why isn't TDD more popular in universities?

First of all, we have to fundamentally distinguish between Computer Science and Software Engineering. (And maybe to a lesser extent between Software Engineering and Programming or "Coding".) As one ...
Jörg W Mittag's user avatar
100 votes

What do you do when code review is just too hard?

One of the primary goal of a code review is to increase quality and deliver robust code. Robust, because 4 eyes usually spot more problems than 2. And the reviewer who has not written the additional ...
Christophe's user avatar
  • 78.7k
100 votes
Accepted

How can I avoid always feeling like if I completely rebuilt my program from scratch I'd do it much better?

This is a very common experience Most people I interact with, and I myself as well, feel like this. From what I can tell one reason for this is that you learn more about the domain and the tools you ...
Andreas Kammerloher's user avatar
98 votes

Do seasoned developers still have to deal with merge conflicts?

I think it's a little disingenuous to say that good developers never have merge conflicts, but they can surely reduce the number of times it happens. It's also very important to remember that ...
Berin Loritsch's user avatar
94 votes

Should developers fix bugs in their own code?

This seems more a failure of your code review process than who is fixing the bugs. If the anti-patterns in the code and faulty assumptions that don’t get reworked aren't getting called out and ...
Philip Kendall's user avatar
87 votes

What happened to the "Surgical Team" pattern from "The Mythical Man-Month"?

There are some aspects of that concept that are sometimes implemented today, there are other aspects that are avoided. Keeping teams small is one of the basic features of Agile Methods, but is also ...
Jörg W Mittag's user avatar
86 votes
Accepted

What are the benefits of tracking solved bugs?

In addition to Thomas' answer, a bug report that leads to a code change is just as much a part of your code's history as the requirements specifications, architecture documents, customer change ...
Ben Cottrell's user avatar
81 votes

How can I favor quick (and dirty) over clean (and slow) in practice?

Use the 80:20 rule (Pareto Principle) And a "TODO" notation. Or, as given here, "80% of the task is completed by 20% coding". A large amount, ~80% of your code, can probably be ...
user949300's user avatar
  • 8,889
80 votes

When does bugfixing become overkill, if ever?

There was a similar bug in Windows 95 that caused computers to crash after 49.7 days. It was only noticed some years after release, since very few Win95 systems stayed up that long anyway. So there's ...
pjc50's user avatar
  • 13.7k
77 votes

My project manager does not accept carry-over in Scrum - is that normal?

A few things stand out to me. The idea that management has that the team commits to a set of work is inconsistent with the latest versions of the Scrum Guide. The word "commit" or "commitment" is ...
Thomas Owens's user avatar
  • 83.4k
73 votes
Accepted

What is the best way to code review a work-in-progress?

GitHub allows for PR to be in a "draft" state. Your team can see the differences, and even comment on it, but it's still obviously a work-in-progress, and cannot be merged until you click a &...
FrustratedWithFormsDesigner's user avatar
71 votes
Accepted

How can I get things right at the beginning of a software project?

The cycle you describe is normal. The way to improve things is not to avoid this cycle, but to streamline it. The first step is to accept that: It's near impossible to know everything on day one of a ...
anaximander's user avatar
  • 2,275
70 votes

Why does Uncle Bob suggest that coding standards shouldn't be written down if you can avoid it?

People overlook the real purpose of a coding standards document, which is to settle disputes. Most of the decisions in the coding standard will have only a very minor effect on readability and ...
pjc50's user avatar
  • 13.7k
56 votes

Why isn't TDD more popular in universities?

TDD is a nice process in "real-world" programming because problems often arrive on our desks underspecified. "Add a feature that does X", "fix the bug where it shows the wrong thing if you do Y", etc. ...
MattPutnam's user avatar
55 votes

How do you develop software without acceptance criteria?

If what you're saying is true and the spec is nowhere near good enough for you to even start (and you are being honest in this appraisal), I recommend this aproach: Read the sketches and the "sketchy"...
John Wu's user avatar
  • 26.6k
55 votes

What is the most efficient way to continue developing a piece of software in the long-term?

Let me speed you up by slowing you down. Ever heard who the best person is to hire as a tutor? It’s not the teacher. It’s some student who just took the class. Who remembers the struggle. Therefor I ...
candied_orange's user avatar
53 votes

When is it better to optimize a software for better performance, at the beginning or at the end of the development?

The number one thing should always and forever be readability. If it's slow but readable, I can fix it. If it's broken but readable, I can fix it. If it's unreadable, I have to ask someone else what ...
candied_orange's user avatar
51 votes
Accepted

When designing a system, is it best practice to cater the design around the framework you will be using?

Your design should meet the clients needs as closely as they can. Remember that design includes little things like: User experience Functionality How pieces of your application communicate (either ...
Berin Loritsch's user avatar
51 votes

What are the benefits of tracking solved bugs?

In addition to the other answers, the practicalities of software production process also influence this: Bug fixes are usually not immediately put into production. Often it can be weeks or months ...
jpa's user avatar
  • 1,378

Only top scored, non community-wiki answers of a minimum length are eligible