According to Tanmay Chakrabarty, “A
software development process is a structure imposed on the development of a
software product.” (Chakrabarty, 1st paragraph) The following are the steps of the software
development process in order: Gathering requirements, planning, modeling or
organizing, tools or techniques, implementation, testing, deployment, and
updating. After seeing how many steps
there are involved in creating a successful program my first thought is, is it
necessary to complete every step of the process? I’m eager to create a program and be able to
say I made it. I’m pretty sure the
answer is of course every step is necessary.
After researching where the most time spent
as a program developer occurs, I found the following answer: “Understanding
code is by far the activity at which professional developers spend most of
their time.” (Hallam, 2015) Specifically Hallam describes his time spent in the
following areas:
New
Code:
2%
Modifying Existing Code: 20%
Understanding
Code: 78%
In
another article, Phil Johnson states, the following which makes me tend to
believe programmers in fact do spend the most time understanding code:
“While some bugs can be quickly found and squashed,
others can be maddeningly elusive and can lead to many lost hours of good
development time, not to mention a bit of a coder’s sanity.” (Johnson, 2015, 1st
paragraph)
Going back
to Chakrabarty’s steps, understanding code and debugging must fit in the
testing phase. If I had to guess, the
majority of time spent by coders most likely varies from developer to
developer, and project to project. For
example, a solo developer who writes programs for small online enhancement
reasons (such as a hacker, creating a password cracker or a chat room scroller)
is more than likely not putting the amount of detail and preparation into their
projects as say Peter Hallam of Microsoft (who works on the coding for the C#
compiler). I do however agree that all
of Chakrabarty’s steps are equally important in the outcome of the program, and
do understand that in the real world choices will have to be made as to which
of these steps you choose to dedicate your time to.
References
Chakrabarty,
T. (n.d.). Explain the steps of software development. - Computer Programming.
Retrieved October 5, 2015, from http://tanmayonrun.blogspot.com/2013/01/explain-steps-of-software-development.html
Hallam,
P. (2006, January 4). Peter Hallam's WebLog. Retrieved October 5, 2015, from
http://blogs.msdn.com/b/peterhal/archive/2006/01/04/509302.aspx
Johnson,
P. (2015, September 17). The terrible 10: Programmers' biggest frustrations.
Retrieved October 5, 2015, from http://www.itworld.com/article/2984536/development/the-terrible-10-programmers-biggest-frustrations.html#slide4
Hello. I am the Chakrabarty from your post, however the way quoted me, I don't think that was needed. The post that you have read was a noted answer for the question, I was a student back then, used to publish the notes I make for other students to have a guide. Books, internet - are the sources from where I used to gather and create my notes for the exam.
ReplyDeleteCurrently working as a Sr. Web Developer in the PHP platform for the last 6 years, and also domain of that blog has changed to https://www.onlineclassnotes.com
And from my experience of the last 6 years, I spend most of the time in the implementation and testing/fixing phases. A lot of things finalized in the Planning and Modeling phases takes a log more time than expected in the implementation phase. Along with these, when client changes the requirements in the middle of the project, nightmare takes place in the daylight.