Software Development

An activity involving professionals such as Technology Architects, System Analysts, Project Managers, Programmers, Technical Writers and Testers (QA/QC). Sometimes it is performed just by Computer Scientists or SoftwareDevelopers (in which case they singlehandedly play all the above roles) that consumes massive amounts of coffee and pizza and generates bugs, code, documentation, RepetitiveStressInjury, EyeStrain?, and LowerBackProblem?s.

Documentation, from design documentation, to in-line code documentation, to deployment documentation, to user documentation, even though one of the most important activities for proper software development and maintenance through its life cycle, seems to be in most cases an afterthought. (MattHeusser adds - yes, of course, it is an afterthought. The purpose of SoftwareDevelopment is to produce the software. Documentation may be valuable, but it isn't software. Otherwise, we'd call it DocumentationDevelopment - right?)

It's not always like this..

It generates documentation? Since when? (HaHaOnlySerious)
It generates a (perceived) need for documentation, which, if and when actually produced, is promptly filed away and forgotten. -- JohnReynoldsTheStudent
My concern is, given a certain piece of software, which is the enough, useful and readable documentation that must be generated, to make the corresponding maintenance task independent of the original/previous programmers - Metodio Cruz

In regard to documents: the documents produced as a part of the process of software development should be little different from those produced by any other engineering discipline. Of course, this is presuming that the other required components of the process have already produced their own documents: If you have all this good stuff then you can create the implementation plan. That means outline the code. The implementation plan doesn't necessarily have all the details of every function in it, but it should block out the functionality the way the design separates functionality into components. This document comes before the code is composed, and should be altered any time a significant change in the implementation (code) is planned.
See: MostApplicationsNeedaUserManual, WithoutaUserManual, ProductTesting, AcceptanceTesting, BetaTesting, LanguageWars


EditText of this page (last edited April 3, 2014) or FindPage with title or text search