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. ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
27
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 a class with methods) that does X (e.g. retrieve data from a database)
...
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 ...
21
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
15
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 ...
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 ...
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, ...
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 ...
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 ...
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 ...
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 ...
12
votes
Does the signature of a method create a dependency between the implementation of that method, and the code that invokes it?
To give your question more context, let us remember what Ousterhood is trying to explain in the section of the book. Let me cite the first sentence from the paragraph where you got your cite from:
...
12
votes
How is Agile model more flexible than the Waterfall model?
The difference is what "in the middle of development" means.
The Manifesto for Agile Software Development was a response to heavyweight, documentation-driven, command-and-control processes. ...
11
votes
Why bother gathering requirements when we know they will change?
Why do we spend so much time gathering detailed requirements at the beginning if we know that they will be invalidated and change in the not so distant future?
It's time to stop gathering requirements ...
11
votes
What is the technical term for the modifiers that come after a command?
What is the technical term for the "-m" ?
The "technical term" for command line options is command line options1.
There general usage is to specify parameters for the program, either of boolean (flag/...
11
votes
How should I handle software requirements as a developer?
I'm also not sure whether this is the right place, but it's certainly a common situation that you encounter as a software engineer.
The key is communication. Don't view this as a one way street where ...
11
votes
Why follow standards of a voluntary organization?
Network effects, almost literally in the case of the IETF. There's little point me building an "e-mail" client if it can't communicate with people using a different client. There's little ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
software × 321design × 70
architecture × 38
design-patterns × 27
engineering × 20
licensing × 14
project-management × 13
c++ × 11
testing × 11
agile × 11
programming-practices × 10
development-process × 10
documentation × 10
requirements × 10
java × 9
terminology × 9
c# × 8
python × 7
object-oriented-design × 7
scrum × 7
uml × 7
hardware × 7
web-development × 6
open-source × 6
architectural-patterns × 6