Designing, programming, documenting, testing, and bug fixing in creating and maintaining applications, frameworks, or other software components.
Writing and maintaining the source code, including all that is involved between the conception of the desired software through to the final manifestation of the software, in a planned and structured process.