Software Engineering Quotes

Quotes tagged as "software-engineering" Showing 31-60 of 76
“The big optimizations come from refining the high-level design, not the individual routines.”
Steve McConnell, Code Complete: A Practical Handbook of Software Construction

“Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.”
Frederick P. Brooks Jr., The Mythical Man-Month: Essays on Software Engineering

Robert C. Martin
“All race conditions, deadlock conditions, and concurrent update problems are due to mutable variables.”
Robert C. Martin, Clean Architecture

Edmond Lau
“Working extra hours can hurt team dynamics. Not everyone on the team will have the flexibility to pitch in the extra hours. Perhaps one team member has children at home whom he has to take care of. Maybe someone else has a 2-week trip planned in the upcoming months, or she has to commute a long distance and can't work as many hours. Whereas once the team jelled together and everyone worked fairly and equally, now those who work more hours have to carry the weight of those who can't or don't. The result can be bitterness or resentment between members of a formerly-happy team.”
Edmond Lau, The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

Yegor Bugayenko
“Quality must be enforced, otherwise it won't happen. We programmers must be required to write tests, otherwise we won't do it.”
Yegor Bugayenko, Code Ahead

Yegor Bugayenko
“Any software project must have a technical leader, who is responsible for all technical decisions made by the team and have enough authority to make them. Responsibility and authority are two mandatory components that must be present in order to make it possible to call such a person an architect.”
Yegor Bugayenko, Code Ahead

Robert C. Martin
“The perfect kind of architecture decision is the one which never has to be made”
Robert C. Martin

Yegor Bugayenko
“We must not blame programmers for their bugs. They belong to them only until the code is merged to the repository. After that, all bugs are ours!”
Yegor Bugayenko, Code Ahead

“Businesses frequently prioritize new feature releases over fixing technical debt. They choose to work on revenue-generating work instead of revenue-protection work. This rarely works out as the business hopes, particularly as problems discovered during the final stages of uncompleted projects drag engineers away from the newer projects.”
Dominica Degrandis, Making Work Visible: Exposing Time Theft to Optimize Work & Flow

“Programming is the immediate act of producing code. Software engineering is the set of policies, practices, and tools that are necessary to make that code useful for as long as it needs to be used and allowing collaboration across a team.”
Titus Winters, Software Engineering at Google: Lessons Learned from Programming Over Time

“Be conservative in what you do, be liberal in what you accept from others”
Jon Postel

Edmond Lau
“When I asked Sam Shillace, who ran Gmail and Google Apps for four years, about the costliest mistake he's seen engineers make, his response was, "Trying to rewrite stuff from scratch -- that's the cardinal sin.”
Edmond Lau, The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

Edmond Lau
“In his book Software Abstractions, MIT Professor Daniel Jackson explains just how important it is to choose the right abstractions. "Pick the right ones, and programming will flow naturally from design; modules will have small and simple interfaces; and new functionality will more likely fit in without extensive reorganization, " Jackson writes. "Pick the wrong ones, and programming will be a series of nasty surprises: interfaces will become baroque and clumsy as they are forced to accommodate unanticipated interactions, and even the simplest of changes will be hard to make.”
Edmond Lau, The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

“I became
a sponge. A new chapter began in my own education, and I dual
majored in corporate politics and software development in the real
world.”
Erik Dietrich, Developer Hegemony - The Future of Labor

“Tests are sometimes mistaken with quality assurance. These two notions are not identical: 1) quality assurance ensures that the organization's processes are implemented and applied correctly; 2) testing identifies defects and failures, and provides information on the software and the risks associated with their release to the market”
Bernard Homes, Fundamentals of Software Testing

“Software is easy to make, except when you want it to do something new. And then, of course, there is a corollary: The only software that's worth making is software that does something new.”
Scott Rosenberg, Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software

“Inside every large program is a small program struggling to get out.”
Tony Hoare

Amit Kalantri
“Engineering is a profession that can do the job of almost all other professions.”
Amit Kalantri, Wealth of Words

“Connascence, in the context of software engineering, refers to the degree of coupling between software components. (Connascence.io hosts a handy reference to the various types of connascence.) Software components are connascent if a change in one would require the other(s) to be modified in order to maintain the overall correctness of the system.”
Piethein Strengholt, Data Management at Scale: Best Practices for Enterprise Architecture

“The moral is this: do not underestimate the power of playing the social game. It’s not about tricking or manipulating people; it’s about creating relationships to get things done. Relationships always outlast projects. When you’ve got richer relationships with your coworkers, they’ll be more willing to go the extra mile when you need them.”
Titus Winters, Software Engineering at Google: Lessons Learned from Programming Over Time

Edmond Lau
“Their first task therefore, was to translate the original C# codebase into Java so that it could leverage Google's infrastructure. One of Schillace's co-founders argued that they ought to rewrite the parts of the codebase they didn't like at the same time. After all, why rewrite the codebase to Java only to have to immediately throw parts away? Schillace fought hard against that logic, saying, "We're not doing that because we'll get lost. Step one is translate to Java and get it stood back up on it's feet again ... [O]nce it's working again in Java, step two is ... go refactor and rewrite stuff that's bugging you.”
Edmond Lau, The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

“The analysis object model consists of entity, boundary, and control objects [Jacobson et al.,
1999]. Entity objects represent the persistent information tracked by the system. Boundary
objects represent the interactions between the actors and the system. Control objects are in
charge of realizing use cases.”
Bernd Bruegge, Object-Oriented Software Engineering Using UML, Patterns, and Java: Pearson New International Edition

Pearl Zhu
“Software quality is defined by a number of factors, and quality management is a multifaceted management discipline.”
Pearl Zhu, Quality Master

“Knowledge is your operating system.”
Md Parvej Ansari

Laurent Bossavit
“A lot of research in software engineering strikes me as hopelessly naive in one of two ways. Most of it fails entirely to account for the social and belief aspects altogether. It looks at its object of inquiry as if it was entirely material and inert; as if “software” was some kind of naturally occurring substance, the properties of which can be revealed in the equivalent of a test tube.”
Laurent Bossavit, The Leprechauns of Software Engineering

Robert C. Martin
“the fact that oo languages provide safe and convenient polymorphism means that any source code dependency, no matter where it is, can be inverted”
Robert C. Martin, Clean Architecture

“Domain-Driven Design (DDD) is a process that aligns your code with the reality of your problem domain.”
Scott Millett, Patterns Principles and Practices of Domain Driven Design

David Scott Bernstein
“The fact that software engineering is not like other forms of engineering should really come as no surprise. Medicine is not like the law. Carpentry is not like baking. Software development is like one thing, and one thing only: software development. We need practices that make what we do more efficient, more verifiable, and easier to change. If we can do this, we can slash the short-term cost of building software, and all but eliminate the crippling long-term cost of maintaining it.”
David Scott Bernstein, Beyond Legacy Code

“People are inherently imperfect - we like to say that humans are mostly a collection of intermittent bugs. But before you can understand the bugs in your coworkers, you need to understand the bugs in yourself. We’re going to ask you to think about your own reactions, behaviors, and attitudes - and in return, we hope you gain some real insight into how to become a more efficient and successful software engineer who spends less energy dealing with people-related problems and more time writing great code.”
Titus Winters, Software Engineering at Google: Lessons Learned from Programming Over Time

“Google and Stack Overflow are great sources of opinions and information, but they’re no substitute for actual human experience.”
Titus Winters, Software Engineering at Google: Lessons Learned from Programming Over Time