Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Modern Software Engineering

    Modern Software Engineering

    David Farley · 2000

    Software Engineering
    Open LibraryAmazon
    Stats for nerds
    3recommend
    8mentions
    6people
    2021–2026years
    38% recommend63% neutral

    Mentions per year

    202120222023202420252026

    What Hacker News says

    1. skydhashMar 2026
      My preferred definition of software engineering is found in the first chapter of Modern Software Engineering by David Farley

        Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.
      
      As for the practitioner, he said that they:

        …must become experts at learning and experts at managing complexity
      
      For the learning part, that means

        Iteration
        Feedback
        Incrementalism
        Experimentation
        Empiricism
      
      For the complexity part, that means

        Modularity
        Cohesion
        Separation of Concerns
        Abstraction
        Loose Coupling
      
      Anyone that advocates for agentic engineering has been very silent about the above points. Even for the very first definition, it seems that we’re no longer seeking to solve practical problems, nor proposing economical solutions for them.
      thread
    2. vydraOct 2025
      Its definitely much harder to get into the industry than it was a few years ago and if its coding you were after, you may indeed be disappointed. But give Software Engineering a try! We need to rewrite many of our critical systems and we are afraid to do so primarily to the lack of truly skilled software engineers. IMHO, the AI agents are creating time for us to study what really matters. I would start with Modern Software Engineering by Dave Farley. DM me directly if you want to chat on this topic. https://www.linkedin.com/in/dvydra/
      thread
    3. upghostSep 2025
      I liked this article because I think it is a fairly charitable "strongman" take of the "pure" engineering camp from someone who identifies with the other camp.

      That being said, there is an objective way out of this trap emdash check out Dave Farley's work on Modern Software Engineering [1].

      It is a very clever approach to convert the process of software delivery into a software problem itself, with a minimal criteria of shipping new code safely every 24 hours.

      When your "pure" engineers optimize around that, the distinction between your "pure" and "practical" devs tends to be pretty small.

      [1]: https://a.co/d/eLvZYcE

      thread
    4. SideburnsOfDoomJul 2026
      Dave Farley has done some writing on what makes "Software Engineering" "Engineering"

      e.g. his 2021 book " Modern Software Engineering"

      > Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.

      https://www.davefarley.net/?p=352

      https://www.goodreads.com/en/book/show/57345270-modern-softw...

      https://productdeveloper.net/modern-software-engineering/

      thread
    5. skydhashMay 2025
      From "Modern Software Engineering" by David Farley

      > Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.

      > The adoption of an engineering approach to software development is important for two main reasons. First, software development is always an exercise in discovery and learning, and second, if our aim is to be “efficient” and “economic,” then our ability to learn must be sustainable.

      > This means that we must manage the complexity of the systems that we create in ways that maintain our ability to learn new things and adapt to them.

      That is why I don't care about LLMs per se, but their usage is highly correlated to the wish of the user to not learn anything, just have some answer, even incorrect, as long as it passes the evaluation process (compilation, review, ci tests,..). If the usage is to learn, I don't have anything to say.

      As for efficient and economical solutions that can be found with them,...

      thread
    6. skydhashFeb 2025
      I'm currently reading Modern Software Engineering by David Farley and I can say that we won't see programmers replaced unless all the concerns pointed out in this book and others has been resolved.
      thread

    Related

    Cover of Software Requirements
    2008–2025

    Software Requirements

    Karl Eugene Wiegers
    2 recommend · 8
    Cover of The Pragmatic Programmer
    2007–2026

    The Pragmatic Programmer

    Andy Hunt
    353 recommend · 700
    Cover of Refactoring
    2007–2026

    Refactoring

    Martin Fowler
    94 recommend · 179
    Cover of Designing Data-Intensive Applications
    2014–2026

    Designing Data-Intensive Applications

    Martin Kleppmann
    457 recommend · 846
    Cover of Software Engineering
    2011–2026

    Software Engineering

    Roger S. Pressman
    2 recommend · 6
    Cover of The old new thing
    2009–2026

    The old new thing

    Raymond Chen
    52 recommend · 111
    Software FoundationsBenjamin C. Pierce
    2011–2026

    Software Foundations

    Benjamin C. Pierce
    recommend · 77
    58
    Cover of Professional software development
    2012–2026

    Professional software development

    Steve McConnell
    2 recommend · 6