At last I'm writing something to C-Sharp Corner, this is my first content.
I came across a number of easy, interesting, complicated articles in C-Sharp corner, when I was going through these articles I thought of writing something, now I am ready with some content to publish.
I hope I do write more articles in C-Sharp Corner & get full support from this community.
Let me explain:
I am Sairam Kalva experienced with Microsoft Dot net technologies, I got exposure to various projects, and handling different set of tasks.
Topic
Technical Start Up while handling a Bug / Task in Software Project Development.
Software Project Development - Technical Start Up while handling a Bug / Task
In Software Project Development, in certain cases, things don’t go the way we expect…
E.g.
Pages do not respond, sometimes pages will not be found, sometimes server error or patches will not work as expect and integrated 3rd tools break and mainly bugs originates and we were bewildered as to where to start and how to start.
To handle bugs / tasks, with my past experiences I have drafted the below steps / ways, which will help us easily identify the cause and how to fix.
Here we go….
- Understand
- Reproduce
- Look around
- Suggest possible scenarios
- Tests If required
- Implement
- Unit Testing
- Review
- Check-in
- Update the required documents or template
Understand
Understand the scenarios as much as possible, go through all the supporting documents, read three times and more importantly,
Take time to breathe...
Share your understanding with experts to get the best view, on the situation and scenarios.
Reproduce
Recreate the issue in your development environment.
Sometimes we are unable to recreate the issue in our local environment and some might be intermittent. Keenly follows up with the
Crazy, but it still works fine with the local environment.
(Just update the bug status WORKS FINE – Close the issue.…. Ha-ha, kidding)
In certain occasions, things will go wrong and will get tough, don’t spend time looking around, just stay focused.
Request for the environment where the issue has arisen, (OS, System type, IIS (if it’s webapp), debase, any 3rd tools... etc.).
Hmm, now it's recreated………...
Look around
Navigate into the code and look around, if there is a fix available.
There might be cases where there is already a fix implemented for identified issues, and there are chances where there will be the same root cause, look out for those kinds of resolutions.
As this will help in time and complexity of the issue.
And more, this code is already implemented and reviewed, and we can use this as per our requirement with our own parameters.
If no such case exists, then Explore….
Suggest possible scenarios
Once the exploration is done, we are with various scenarios in hand, suggest valid scenarios to appropriate teams and get the best out of it.
OR, get people in a room and share your views and ideas to the team, let them come up with valuable suggestions, this will help in knowledge transfer and in the future anybody can take up the issue.
Tests If required
Prepare all sorts of tests required and get them confirmed by the concerned teams.
Implement
Implement the solution in a working environment and if this function is reused, go write in some common classes.
Unit Testing
As per developers are concerned, doing Unit testing is important, this validates that the implemented code performs as per the requirement for which it is designed.
Look out for any potential side effects and regression tests --those should not be broken after fixing the issue.
Review
Hmm. I had written very good quality code, then why review. it..?
Because it helps us to correct ourselves and sometimes Code reviews are for knowledge transfers.
Conducting reviews are the best approach for achieving consistency.
Before officially assigning the code to reviewers, get it locally reviewed by your peers.
Once the review is done, address the review comments, unless the code looks good.
If you are a Code Reviewer, please focus on below points,
- First and foremost, look for the code alignment.
- Naming conventions as per adopted standards.
- Meaning full variable names.
- Proper code comments.
- Spell check.
- Verify that the newly implemented code is already exists / implemented.
Check-in
While checking in the code, please make it a practice to provide as much information as needed in the template or in the description panel, which will help in future. Below is some content which can be gathered,
Description
Describe the business operation that is blocked because of this issue.
Root Cause
What’s the main cause for the issue to arise?
Resolution
What’s the solution implemented, to fix the issue?
Build Number
Which build issues have been fixed.
Is it ready for QA
Is this issue ready for testing?
Path preview required
Does this issue need immediate release or a patch without full build?
Please take care of below suggestions while checking in,
- You should never check-in commented-out code. If you have code that needs commenting out before check-ins, you are doing it wrong.
- Before check-in get the latest.
- Look for merge conflicts.
- Build – fix build error, if any.
- Fix broken tests, if any.
Update the required documents or template
Please do write an internal document or blog on the issue which you have worked, as this will help the next developers to easily understand the scenario technically and conceptually.
Points to be noted with documenting or blogging,
- Describe the issue conceptually.
- Technically, what is being done to achieve the task.
- Potential side effects if any.
- Impacts... etc.
Keep Learning & Sharing & Smiling… Happy Coding…