Software Engineering is the systematic and engineered development of software in all its life cycle.
Rules
Keep related to software engineering
Keep comments on-topic of the post
Try to post free/open access content
Try to post content from reliable sources (ACM, IEEE, SEI, NN/G, ...), or useful content in general
Relevant questions are welcone, as long they are genuine and respectful
Be genuinely respectful, kind, helpful; act in and assume good faith
No discrimination
No personal attacks, no personal questions
No attention stealing: no ads, spam, influencers influencing, memes, trolling, emotional manipulation/advertising (e.g. engagement through enragement or other negative emotions), jokes that dissipate the focus of the topic, ...
Resources
Guide to the Software Engineering Body of Knowledge (SWEBOK) by IEEE Computer Society
Agile software development can be done at scale with the use of technology like self-service APIs, infrastructure provisioning, real-time collaboration software, and distributed versioning systems. Lean can complement and scale an agile culture with techniques like obeyas, systematic problem-solving...
Highlights
The first scaling crisis happened in 1996, when Linus wrote that he was "buried alive in emails". It was addressed by adopting a more modular architecture, with the introduction of loadable kernel modules, and the creation of the maintainers role, who support the contributors in ensuring that they implement the high standards of quality needed to merge their contributions.
The second scaling crisis lasted from 1998 to 2002, and was finally addressed by the adoption of BitKeeper, later replaced by Git. This distributed the job of merging contributions across the network of maintainers and contributors.
In both cases, technology was used to reduce the amount of dependencies between teams, help contributors keep a high level of autonomy, and make it easy to merge all those contributions back into the main repository, Bernhard said.
Technology can help reduce the need to communicate between teams whenever they have a dependency on another team to get their work done.
During a recent visit to the Defense Advanced Research Projects Agency (DARPA), I mentioned a trend that piqued their interest: Over the last 10 years of applying automated reasoning at Amazon Web Services (AWS), we’ve found that formally verified code is often more performant than the unverified co...
We have the worst job environment for tech in over two decades and that’s with the “AI” bubble in full force. If that bubble pops hard before the job market recovers, the repercussions to the tech industry will likely eclipse the dot-com crash.
Many organisations are also resorting to employee-hostile strategies to increase employee churn, such as forced Return-To-Office policies.
Finding a non-bullshit job is likely only going to get harder.
• Finding effective documentation, information, and training is likely to get harder, especially in specialised topics where LLMs are even less effective than normal.
as soon as you start to try to predict the second or third order consequences things very quickly get remarkably difficult.
In short, futurists are largely con artists.
you need to do something
Note: ah.. the famous "you need to do something"
This is not a one-
when unemployment claims suddenly spiked due to the pandemic, these archaic systems could not keep up, which means that benefits are not being distributed.
The spike in unemployment claims exposed another new problem: there is no one around to repair these legacy systems.
Although a few universities still offer COBOL courses, the number of people studying it today is extremely small.
COBOL Cowboys’ business model is more akin to the gig economy rather than to that of the companies at which these industry veterans spent their careers. It is staff
In this podcast Michael Stiefel spoke to Tracy Bannon about what software architecture really is, and what an architect needs to be able to do. Bannon is a senior principal at MITRE. She sees herself as a passionate software architect and change agent who also puts out the Real Technologists podcast...
Good before going to bed on Friday evening :)
Some things I have noted:
Until this day, I say I've done three things: insert levels of indirection, trade off space and time, and three, try to get my clients to tell me what they really want.
If you're doing something with ERP systems, well, first of all, I apologize and feel bad for you in life, but that's a whole other conversation.
Let's think somebody ultimately is paying for this thing to be built. Somebody somewhere has a vision on what they want it to be. There are humans who will eventually be using it. It needs to meet those business or mission needs. It has to start with that.
what bothers me is when people make implicit assumptions and don't make them explicit.
"The decisions that you make upfront are the ones that," and this is paraphrasing, "the ones that are too expensive and you cannot change later."
But I'm talking about when you make a decision, write it down, make an architectural decision record. It can b
Twenty years after its debut, what is the role of the CAP theorem in modern-day distributed systems?
Stumbling across the CAP theorem is like walking into a discussion (or a debate) already in progress. Imagine how others might feel walking into an argument amongst developers about which IDE is the
Pascal, the programming language he created in the early days of personal computing, offered a simpler alternative to other languages in use at the time.
“Welcome aboard to BigCo!” “Thanks! I’m excited to be here. This is my first tech job, even if it is just an internship.” “We’re going to start you off wit…
Update Jan 4: Wow, this thing really took off!
1BRC is discussed at a couple of places on the internet, including Hacker News, lobste.rs, and Reddit.
For folks to show-case non-Java solutions, there is a "Show & Tell" now, check that one out for 1BRC implementations in Rust, Go, C++, and others.
S...
Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. - GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple te...
A nice cheatsheet/summary for software architecture
This talk covers the origins of flame graphs, how you can create them using open source software, and how to interpret them. In practice, flame graphs don’t always work completely due to problems walking stack traces, resolving symbols, and other issues; this talk explains the problems and shows you the latest techniques for fixing them.