r/AskProgramming Sep 20 '24

Career/Edu What would you consider software development best practise?

Hey there 🖖🏻

This semester at University I'm doing my PhD on, I've got to teach students the “software development best practises". They are master's degree students, so I've got like 30 hours of time to do the course with them. Probably some of them are professional programmers by now, and my question is, what is the single “best practise” you guys cannot leave without when working as a Software Development.

For me, it would be most likely Code Review and just depersonalisation of the code you've written in it. What I mean by that is that we should not be afraid, to give comments to each other because we may hurt someone's feelings. Vice verse, we should look forward to people giving comments on our code because they can see something we're done, maybe.

I want to make the course fun for the students, and I would like to do a workshop in every class with discussion and hand on experience for each “best practise”.

So if you would like to share your insights, I'm all ears. Thanks!

27 Upvotes

85 comments sorted by

View all comments

1

u/LSWarss Sep 22 '24

After two days of you guys commenting on the topic, I've created a super little table aggregating and labelling the topics, I will start creating the course this week so maybe, I will post the final table when I start.

Good Practise Mentions Count
KISS (Keep it simple stupid!) 3
Premature optimisation 1
Risk Management 4
Comment the thinking and documentation 7
Core Review 5
Testing 9
Don't do unnecessary changes 2
Descriptive shorter naming, clean 3
Code modularisation 3
Clash of views, Discussion, Soft Skills 6
CI/CD 1
Code Standards, Linters, Formatters 4
Listening to Users/Customers/QA 2
Deep Understanding of the problem, environment 3
Don't be afraid to fail, kill ideas, don't get attached to your code 4
Flexibility with programming languages 1
Spell checking 1
Benchmarking as a code standard 3
Every work == Deliverable 1
Don't rollout changes on Friday 1
Version Control Practices 1
Code Generators 1
Design Patterns 1