Software Engineering Best-Practice: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
m (Text replacement - "ments]]" to "ment]]s")
No edit summary
Line 1: Line 1:
A [[Software Engineering Best-Practice]] is a [[software engineering practice]] that is an [[engineering best-practice]].
A [[Software Engineering Best-Practice]] is a [[software engineering practice]] that is an [[engineering best-practice]] (designed to ensure [[software development quality]] and [[project success]]).
* <B>AKA:</B> [[Software Development Best Practice]], [[Engineering Practice Standard]], [[Software Quality Practice]].
* <B>Context:</B>
* <B>Context:</B>
**
** It can implement [[Software Development Process]] through [[iterative methodology]]s and [[agile practice]]s.
* <B>Example(s):</B>
** It can maintain [[Code Quality Standard]] through [[coding convention]]s and [[style guide]]s.
** [[Iterative Software Development]] .
** It can enforce [[Architecture Pattern]] via [[component design]] and [[system structure]]s.
** [[Software Requirements Management]] .
** It can support [[Quality Assurance Process]] through [[testing strategy]] and [[verification method]]s.
** [[Software Component Architecture]] .
** It can provide [[Change Management Control]] via [[version control]] and [[release process]]s.
** [[Visual Software Modeling]] .
** ...
** [[Software Quality Verification]] .
** It can often establish [[Documentation Standard]] through [[code comment]]s and [[technical documentation]].
** [[Software Change Control]].
** It can often implement [[Review Process]] via [[peer review]]s and [[code inspection]]s.
** high [[Unit Test Coverage]].
** It can often manage [[Project Timeline]] through [[sprint planning]] and [[milestone tracking]].
** [[Code Review]]s.
** It can often support [[Team Collaboration]] via [[communication protocol]]s and [[knowledge sharing]].
** a [[Machine Learning Engineering Best-Practice]].
** It can often maintain [[Technical Debt Control]] through [[refactoring practice]]s.
**
** ...
* <B>Counter-Example(s):</B>
** It can range from being a [[Basic Engineering Practice]] to being an [[Enterprise Engineering Practice]], depending on its [[organization scale]].
** a [[Software Engineering Past-Practice]].
** It can range from being a [[Development Practice]] to being a [[Production Practice]], depending on its [[deployment stage]].
* <B>See:</B> [[Software Engineer]], [[Center of Excellence]].
** It can range from being a [[Team Practice]] to being an [[Organization Practice]], depending on its [[adoption scope]].
** ...
** It can have [[Quality Metric]] for [[practice effectiveness]].
** It can perform [[Practice Assessment]] through [[audit process]]s.
** It can implement [[Continuous Improvement]] via [[feedback loop]]s.
** It can maintain [[Knowledge Repository]] through [[documentation system]]s.
** It can support [[Skill Development]] via [[training program]]s.
** ...
* <B>Examples:</B>
** [[Iterative Software Development]], through [[agile methodology]].
** [[Software Requirements Management]], through [[requirement tracking]].
** [[Software Component Architecture]], through [[modular design]].
** [[Visual Software Modeling]], through [[design diagram]]s.
** [[Software Quality Verification]], through [[testing protocol]]s.
** [[Software Change Control]], through [[version management]].
** High [[Unit Test Coverage]], through [[test automation]].
** [[Code Review]]s, through [[peer inspection]].
** [[Machine Learning Engineering Best-Practice]], through [[ML workflow]].
** [[Google Apps Script Best-Practice]], through [[script development]].
** [[Development Practice]]s, such as:
*** [[Code Organization]]s, such as:
**** [[Single Responsibility Pattern]] for [[class structure]].
**** [[Function Design Pattern]] for [[method implementation]].
*** [[Naming Convention]]s, such as:
**** [[Descriptive Naming Pattern]] for [[code readability]].
**** [[Semantic Naming Standard]] for [[code clarity]].
** ...
* <B>Counter-Examples:</B>
** A [[Software Engineering Past-Practice]], which uses [[outdated method]]s.
** [[Ad Hoc Development]], which lacks [[structured approach]].
** [[Quick Fix Solution]], which compromises [[code quality]].
** [[Minimal Testing Approach]], which risks [[system reliability]].
* <B>See:</B> [[Software Engineer]], [[Center of Excellence]], [[Development Standard]], [[Quality Framework]], [[Engineering Methodology]].


----
----
----
----
== References ==
== References ==
=== 2019b ===
* [[Brian Hannaway]]. (2019). “[https://dzone.com/articles/the-importance-of-comments-for-maintainable-code The Importance of Comments for Maintainable Code - Do you use comments?]."
** QUOTE: ... as [[software developer|developer]]s we have a responsibility to go beyond implementing [[functional requirement]]s and [[write code]] that’s easy to [[readable code|read]], [[understandable code|understand]] and [[maintainable code|maintain]].
*** Good Structure — classes with a single responsibility, functions that do one thing.
*** Descriptive Naming — classes, functions, and variables should have clear, descriptive names.
*** Unit Test Coverage — unit tests describe how a component should behave. As well as testing expected behavior they act as a form of component specification.
*** [[Software Code Comment|Comment]]s — [[Software Code Comment|comment]]s provide important information that can’t easily be expressed by the code. ...  write your [[Software Code Comment|comment]]s with less experienced developers in mind.
=== 2014 ===
* https://www.cs.utexas.edu/~mitra/csSummer2014/cs312/lectures/bestPractices.html
** QUOTE: ... Best practices are a set of empirically proven approaches to software development. When used in combination they strike at the root causes of software development problems. They are called "best practices" not because we can precisely quantify their value but rather they are observed to be commonly used in industry by successful organizations.        <P>        <B>What are the best practices in software engineering?</B>
*** [[iterative software development|Develop iteratively]].
*** [[software requirements management|Manage requirement]]s.
*** Use [[software component architecture|component architecture]].
*** [[Model software visually]].
*** [[software quality verification|Verify quality]].
*** [[software change control|Control change]].


----
----
__NOTOC__
__NOTOC__
[[Category:Concept]]
[[Category:Concept]]
[[Category:Software Engineering]]
[[Category:Best Practice]]
[[Category:Quality Silver]]

Revision as of 08:36, 11 February 2025

A Software Engineering Best-Practice is a software engineering practice that is an engineering best-practice (designed to ensure software development quality and project success).



References