Difference between revisions of "Software Development"

From Freephile Wiki
Jump to navigation Jump to search
(Add tools)
m (fix link)
Line 7: Line 7:
 
One of the biggest challenges for anyone working on software is [[wp:Software development effort estimation]].
 
One of the biggest challenges for anyone working on software is [[wp:Software development effort estimation]].
  
I used to use a tool by David Wheeler called '[https://dwheeler.com/sloccount/ SLOCCount]' (Software Lines Of Code Count), but it had fallen out of maintenance after 2004 . Eric Raymond [http://esr.ibiblio.org/?p=8270 wrote about this] as he wrote a replacement in [[Go]] in 2019.  A more recent similar tool is Ben Boyter's [SCC https://github.com/boyter/scc]
+
I used to use a tool by David Wheeler called '[https://dwheeler.com/sloccount/ SLOCCount]' (Software Lines Of Code Count), but it had fallen out of maintenance after 2004 . Eric Raymond [http://esr.ibiblio.org/?p=8270 wrote about this] as he wrote a replacement in [[Go]] in 2019.  A more recent similar tool is Ben Boyter's [https://github.com/boyter/scc SCC]
  
 
I can't talk about "Lines of Code" without mentioning that writing software is NOT measured by the number of lines of code you produce! Lines of Code is one of many metrics<ref>Lines of Code is a metric that is simple enough for a pointy-haired boss to understand, in it's simplest definition. Sadly, advanced software engineering concepts like Cyclomatic Complexity are way over their heads; and worse, not used at most/many organizations who employ buzzwords like "lean" and "agile" to appeal to finance rather than to define the rigors and professionalism of their software process. To dive down into this one step further: for true practitioners, '''[https://davenicolette.wordpress.com/2016/05/19/where-agile-goes-to-die/ agile is about results]'''. For people who've never actually learned it, ''agile is about rules''.</ref>. It can be extremely valuable to '''remove''' code, so that should help make the point. If you still don't get it you're lost. Consider: Less code equals less to audit. Less code equals less attack surface. One useful metric is [[wp:cyclomatic complexity]]
 
I can't talk about "Lines of Code" without mentioning that writing software is NOT measured by the number of lines of code you produce! Lines of Code is one of many metrics<ref>Lines of Code is a metric that is simple enough for a pointy-haired boss to understand, in it's simplest definition. Sadly, advanced software engineering concepts like Cyclomatic Complexity are way over their heads; and worse, not used at most/many organizations who employ buzzwords like "lean" and "agile" to appeal to finance rather than to define the rigors and professionalism of their software process. To dive down into this one step further: for true practitioners, '''[https://davenicolette.wordpress.com/2016/05/19/where-agile-goes-to-die/ agile is about results]'''. For people who've never actually learned it, ''agile is about rules''.</ref>. It can be extremely valuable to '''remove''' code, so that should help make the point. If you still don't get it you're lost. Consider: Less code equals less to audit. Less code equals less attack surface. One useful metric is [[wp:cyclomatic complexity]]

Revision as of 10:59, 13 January 2024

A lot can, and has been, written about how to develop software, the project methods and processes. We're going to distill some of that here. But really, a wonderful resource on the Internet can be found at the Wikimedia Foundation's Wikitech website where they describe, document and detail all that they do in support of enterprise software engineering to build free software using free software. E.g.

Tools for Estimating[edit | edit source]

One of the biggest challenges for anyone working on software is wp:Software development effort estimation.

I used to use a tool by David Wheeler called 'SLOCCount' (Software Lines Of Code Count), but it had fallen out of maintenance after 2004 . Eric Raymond wrote about this as he wrote a replacement in Go in 2019. A more recent similar tool is Ben Boyter's SCC

I can't talk about "Lines of Code" without mentioning that writing software is NOT measured by the number of lines of code you produce! Lines of Code is one of many metrics[1]. It can be extremely valuable to remove code, so that should help make the point. If you still don't get it you're lost. Consider: Less code equals less to audit. Less code equals less attack surface. One useful metric is wp:cyclomatic complexity

See Also[edit | edit source]

the WikiTech page

References[edit source]

  1. Lines of Code is a metric that is simple enough for a pointy-haired boss to understand, in it's simplest definition. Sadly, advanced software engineering concepts like Cyclomatic Complexity are way over their heads; and worse, not used at most/many organizations who employ buzzwords like "lean" and "agile" to appeal to finance rather than to define the rigors and professionalism of their software process. To dive down into this one step further: for true practitioners, agile is about results. For people who've never actually learned it, agile is about rules.