Skip to main content
290 votes

New developer can't keep up with branch merges

I assume you're using git. If so, make use of git rebase -i (the -i means interactive). Make it a daily task (even more frequently, if necessary) to rebase your branch against the develop branch. ...
Jacob Robbins's user avatar
130 votes

What is meant by the phrase “Software can replace hardware”?

I am surprised nobody mentioned yet one of the most glaring examples: software-defined radio. If you took a present-day smartphone back in time some 50 years and showed it to a competent engineer ...
Viktor Toth's user avatar
  • 1,000
130 votes

New developer can't keep up with branch merges

This might be a sign of bad software engineering on the company's part. Too many inter dependencies, different issues with overlapping features, attempting to tackle issues in the wrong order etc. can ...
Ivan Anatolievich's user avatar
99 votes

New developer can't keep up with branch merges

The accepted answers I think are more of a technical "how to use Git better" nature, I think this is more of a team problem than an engineering or tooling problem. If you're encountering a lot of ...
Rowan's user avatar
  • 1,089
70 votes

How is Agile model more flexible than the Waterfall model?

While it's been massively subverted over the years, the idea behind agile isn't that you deliver the same set of features faster. It's that you get things out to your users for feedback quicker and ...
Philip Kendall's user avatar
64 votes

If software engineering means making software for other domains when are you supposed to get the knowledge about that other domain?

Software is a knowledge-intensive area. And a big part of the software engineer's work is to extract the domain knowledge from the users and domain expert, abstract it, and transform it into ...
Christophe's user avatar
  • 80.6k
42 votes

What is meant by the phrase “Software can replace hardware”?

Consider this circuit: It is a Flip Flop, aka a Bistable Multivibrator. It can be replaced with this code: static bool toggle; if (toggle == true) { lblTop.BackColor = Color.Black; ...
Robert Harvey's user avatar
42 votes

How is Agile model more flexible than the Waterfall model?

I think experts generally accept that "Waterfall" is a stereotype of certain ineffectual development practices. From the 60s into the 90s, I dare say the vast majority of software ...
Steve's user avatar
  • 11.7k
32 votes

Is it possible to build a system to generate UUIDs where every UUID is guaranteed unique?

there is a finite number of ids which can fit into some structure Correct. If you have n bits in your structure, after you have generated 2^n IDs, the next one must be a collision; this is the ...
Philip Kendall's user avatar
30 votes

How is Agile model more flexible than the Waterfall model?

But Waterfall also lets you do the same thing (go back to the design and then write the code for it) Not really. Agile is a reaction to big project management. So the waterfall they are talking about ...
Ewan's user avatar
  • 79.8k
29 votes

New developer can't keep up with branch merges

The most important thing about merging is that the longer you wait, the more painful it gets. And the problem grows more than linear. Three times as many conflicts are nine times as much work. There ...
gnasher729's user avatar
  • 47.5k
28 votes

What is meant by the phrase “Software can replace hardware”?

It means exactly what it sounds like. A particularly famous example is the Disk II Drive designed by Steve Wozniak for the Apple II: The chief innovation was making the controller compact by using ...
8bittree's user avatar
  • 5,666
25 votes
Accepted

What is the best definition for Dependency Injection?

Dependency Injection is a horrible name (IMO) 1 for a rather straightforward concept. Here's an example: You have a method (or class with methods) that does X (e.g. retrieve data from database) As ...
Marc.2377's user avatar
  • 375
24 votes

If software engineering means making software for other domains when are you supposed to get the knowledge about that other domain?

Same applies to journalists. They write stories about many domains. What about graphic artists, too? Any occupation that works with other occupations has the same problem. You need to work with people ...
Greg Burghardt's user avatar
20 votes

Is it possible to build a system to generate UUIDs where every UUID is guaranteed unique?

You want version 1 UUIDs. They don't collide but they leak the generating computer's MAC address and require a monotonic clock. From RFC4122 we have this format 8 bytes time-low 2 bytes time-mid 2 ...
Joshua's user avatar
  • 1,664
17 votes
Accepted

Why bother gathering requirements when we know they will change?

Because not all requirements do change, and not all requirements change in the same ways. You're not going to spend awhile working on software to manage a warehouse, only to suddenly decide to instead ...
whatsisname's user avatar
  • 27.7k
17 votes
Accepted

Can creating a Software Design Document after development be justified?

In IEEE Std 1016 Section 3.1 Software design in context, you can find this paragraph: An SDD can be prepared and used in a variety of design situations. Typically, an SDD is prepared to support ...
Thomas Owens's user avatar
  • 84.2k
16 votes
Accepted

Why use SDL and OpenGL instead of just OpenGL?

OpenGL only has functions to work with a graphics context, nothing else. You need at least a platform integration library to get such a context. But in reality you of course need more functionality, ...
Sebastian Redl's user avatar
15 votes

How do you add feature to a class that was originally designed wrong in the first place?

And refactor is not necessary, but in order to do this task right I need to refactor the whole class. This is contradictory. You cannot claim that refactoring is not necessary while specifying that ...
Arseni Mourzenko's user avatar
15 votes

New developer can't keep up with branch merges

By the time I'm ready to merge my branch back into develop (emphasis mine) Handling conflicts in git merge is often simpler than in git rebase. In Git merge you can see the whole list of files that ...
usr-local-ΕΨΗΕΛΩΝ's user avatar
15 votes
Accepted

Changelog generation, manually or automatically? What is recommended?

A change log should tell end users why they should upgrade, not what changed in the code. Stay focused on the features and bug fixes being delivered to the end users of your software, be they other ...
Greg Burghardt's user avatar
14 votes

Does this count as a user story for a basic Sudoku game?

Your examples can count as user stories, but they are missing a very important part: the goal that the user wants to achieve when the story is implemented. This goal might be obvious to you, but you ...
Bart van Ingen Schenau's user avatar
14 votes

What part of development should a software designer do?

Preliminary notes about titles: Sometimes, what you really do doesn't match at all your official title. As an example, years ago, I was hired as an “analyst-programmer in R&D department”; however,...
Arseni Mourzenko's user avatar
14 votes

If software engineering means making software for other domains when are you supposed to get the knowledge about that other domain?

How can you make software for lawyers if you're not familiar with the jargon? By first making Bad software for Lawyers Like any symphony, any sport, any activity at all, you always start by being bad ...
Kain0_0's user avatar
  • 16.3k
14 votes

Is it possible to build a system to generate UUIDs where every UUID is guaranteed unique?

Is it possible, when K different hosts are generating IDs? Yes. And we can do it with readily available libraries. ULIDs do a pretty good job already, but they're not collision free. It looks like the ...
J_H's user avatar
  • 7,605
14 votes

How is Agile model more flexible than the Waterfall model?

I think it's important to understand that the idea of the waterfall process, as most people understand it, was an error. I don't know exactly what went wrong but if you read the original waterfall ...
JimmyJames's user avatar
  • 28.9k
13 votes
Accepted

Why "simple" projects have so much code?

Libraries that are written to cater to a large, diverse group of users must be designed differently than project-specific code. You must make them more robust, handle a wider array of edge cases, and ...
Robert Harvey's user avatar
13 votes

What is the benefit of short readable code if you only see functions and classes on the outside?

how exactly the methods and properties were written you do not care about, as long as they do what they promise to do. Exactly. But as soon as they don't do what they promise to do, you have to go ...
Arseni Mourzenko's user avatar
12 votes
Accepted

Is separate QA team, redundant in development life cycle?

I would say that it depends on the system being developed and tested. The developer might have the best understanding of the code, but that doesn't mean they fully understand all the business cases ...
FrustratedWithFormsDesigner's user avatar

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