2

I have been in this problem for long time and I want to know how it's done in real / big companies project?

Suppose I have the project to build a website. Now I divide the project into sub tasks and do it.

But you know that suppose I have task1 in hand like export the page to pdf. Now I spend 3 days to do that , came across various problems, many Stack Overflow questions and in the end I solve it.

Now 4 months after someone told me that there is some error in the code.

Now by that I completely forgot about (60%) of how I did it and why I do this way. I document the code but I can't write the whole story of that in the code.

Then I have to spend much time on code to find what was the problem so that I added this line etc.

I want to know that is there any way that i can log steps in completing the project. So that I can see how I end up with code, what errors I got, what questions I asked on SO and etc.

How people do it in real time? Which software to use?

I know in our project management software called JIRA we have tasks but that does not cover what steps I took to solve that tasks.

What is the best way so that when I look back at my 2 year old project, I know how I solve particular task?

gnat
  • 21,442
  • 29
  • 112
  • 288
user2424160
  • 201
  • 1
  • 3
  • 1
    If you forget what and how you did, you aren't professional enough. If you don't care about spelling in your question, the answer is still the same. – Deer Hunter Aug 01 '13 at 05:02
  • possible duplicate of [Methodology for Documenting Existing Code Base](http://programmers.stackexchange.com/questions/41539/methodology-for-documenting-existing-code-base) and of [Where should a programmer explain the extended logic behind the code?](http://programmers.stackexchange.com/questions/143161/where-should-a-programmer-explain-the-extended-logic-behind-the-code) See also: [When do you start documenting the code?](http://programmers.stackexchange.com/questions/99255/when-do-you-start-documenting-the-code) – gnat Aug 01 '13 at 06:52
  • 3
    _"JIRA... does not cover what steps I took to solve that tasks"_ -- that means you use it wrong. In my experience, this has been one of the most convenient tools to _cover what steps I took to solve that task_. Hint: learn about purpose of comments in [tag:JIRA] – gnat Aug 01 '13 at 07:01
  • 1
    You keep a project diary. Use any word processing software, or better yet, a paper notebook. – Gilbert Le Blanc Aug 01 '13 at 13:10

1 Answers1

0

If you are programmer, and want to remember why you wrote some piece of code(and you are very serious about it), then write unit tests(specifying the behaviour of the code) and functional tests(specifying behaviour of the modules). This will not only help you to have specifications right there with the code and also will allow you to make big changes without producing any regression issues. I can go on stating the advantages of unit and functional tests , but you will only realize their importance once you actually start writing them. Initially it will take some time writing unit tests , but trust me that will be way less painful and time consuming then solving the regression issues. And Jira do cover steps taken to make a feature , you can configure it to automatically attach commits made to solve a ticket to the ticket. In our project we have configured it in such a way that if someone is commiting code to solve a ticket say HT-121 , then every commit with "HT-121 " in it is dirctly attached to that ticket. SO what code went for what commit can always be tracked with jira.

  • 1
    this post is rather hard to read (wall of text). Would you mind [edit]ing it into a better shape? – gnat Aug 08 '13 at 07:20