Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 19 submissions in the queue.
posted by hubie on Sunday January 22 2023, @07:02PM   Printer-friendly

An opinion piece but some pretty good advice here. Below is a sub-sample of "20 years of software distilled down into 20 pithy pieces":

1. I still don't know very much
"How can you not know what BGP is?" "You've never heard of Rust?" Most of us have heard these kinds of statements, probably too often. The reason many of us love software is because we are lifelong learners, and in software no matter which direction you look, there are wide vistas of knowledge going off in every direction and expanding by the day. [...] The sooner you realize this, the sooner you can start to shed your imposter syndrome and instead delight in learning from and teaching others.

2. The hardest part of software is building the right thing
I know this is cliche at this point, but the reason most software engineers don't believe it is because they think it devalues their work. Personally I think that is nonsense. Instead it highlights the complexity and irrationality of the environments in which we have to work, which compounds our challenges.
[...]
4. The best code is no code, or code you don't have to maintain
[...] Engineering teams are apt to want to reinvent the wheel, when lots of wheels already exist. This is a balancing act, there are lots of reasons to grow your own, but beware of toxic "Not Invented Here" syndrome.
[...]
8. Every system eventually sucks, get over it
Bjarne Stroustrup has a quote that goes "There are only two kinds of languages: the ones people complain about and the ones nobody uses". This can be extended to large systems as well. [...]

12. People don't really want innovation
People talk about innovation a whole lot, but what they are usually looking for is cheap wins and novelty. If you truly innovate, and change the way that people have to do things, expect mostly negative feedback. If you believe in what you're doing, and know it will really improve things, then brace yourself for a long battle.
[...]
18. Software engineers, like all humans, need to feel ownership
[...] Give a group of passionate people complete ownership over designing, building, and delivering a piece of software (or anything really) and amazing things will happen.

19. Interviews are almost worthless for telling how good of a team member someone will be
[...] No one is going to tell you in an interview that they are going to be unreliable, abusive, pompous, or never show up to meetings on time. People might claim they have "signals" for these things... "if they ask about time off in the first interview then they are never going to be there!" But these are all bullshit. If you're using signals like these you're just guessing and turning away good candidates.

20. Always strive to build a smaller system
There are a lot of forces that will push you to build the bigger system up-front. Budget allocation, the inability to decide which features should be cut, the desire to deliver the "best version" of a system. All of these things push us very forcefully towards building too much. You should fight this.[...]


Original Submission

 
This discussion was created by hubie (1068) for logged-in users only, but now has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Interesting) by RamiK on Sunday January 22 2023, @08:31PM (3 children)

    by RamiK (1813) on Sunday January 22 2023, @08:31PM (#1288079)

    8. Every system eventually sucks, get over it

    Bjarne Stroustrup has a quote that goes “There are only two kinds of languages: the ones people complain about and the ones nobody uses”. This can be extended to large systems as well. There is no “right” architecture, you’ll never pay down all of your technical debt, you’ll never design the perfect interface, your tests will always be too slow. This isn’t an excuse to never make things better, but instead a way to give you perspective. Worry less about elegance and perfection; instead strive for continuous improvement and creating a livable system that your team enjoys working in and sustainably delivers value.

    I wouldn't quote Stroustrup on this:

    What were your major original design goal of C++? And what’s the most memorable part in the design of C++?

    The major original (as well as current) design goals were to allow me to write maximally efficient systems’ code and control complexity, to write elegant and efficient code, to provide direct access to hardware and zero-overhead abstraction. That’s three ways of saying essentially the same thing that I have used over the years

    ( https://www.stroustrup.com/China-interview.pdf [stroustrup.com] )

    --
    compiling...
    Starting Score:    1  point
    Moderation   +2  
       Interesting=2, Total=2
    Extra 'Interesting' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   4  
  • (Score: 4, Insightful) by JoeMerchant on Sunday January 22 2023, @08:50PM (2 children)

    by JoeMerchant (3937) on Sunday January 22 2023, @08:50PM (#1288082)

    When reading point 8 I thought more of how old work needs to be evaluated in the context in which it was created. I have done so many proof of concepts and other low investment quick evaluations that, in retrospect, are sloppy hack jobs, but... What would it have taken to make them "better" by today's criteria? Almost always: a whole lot of what we had very little of at the time, usually time.

    --
    🌻🌻 [google.com]
    • (Score: 3, Insightful) by RamiK on Sunday January 22 2023, @10:23PM (1 child)

      by RamiK (1813) on Sunday January 22 2023, @10:23PM (#1288095)

      old work needs to be evaluated in the context in which it was created.

      C++ is almost 40 years old and Stroustrup is still tinkering with it.

      --
      compiling...
      • (Score: 1, Touché) by Anonymous Coward on Sunday January 22 2023, @11:58PM

        by Anonymous Coward on Sunday January 22 2023, @11:58PM (#1288109)

        Yeah, it's not done yet.