Your Ad Here

Sunday, March 28, 2010

Refactoring of Code

Refactoring is basically a continuous job for a software programmer to improve code quality and maintainability.
Some good software programmer used to do this with / without knowing of it e.g. moving methods to the super class / abstract class, making general function to do more stuff in small code etc. Generally there will not be extra time given for refactoring the code, unless the code is not able to use without doing it. Whenever a new feature or bug arrives refactoring should be done to improve quality,maintainability and extendability of code.

Software developers are often not willing to do refactoring, because some refactoring are simply tedious and also there is no visible external benefit for all the efforts put in.

It is very common that management only emphasis / rewards externally visible code like new feature and enhanced performance etc but very much not interested to code's quality. However after the code reviews if software developers want to spend some time to refactoring the code, there could be some risk of breaking code via refactoring operations e.g. code is not written as per the coding standards etc.

A software developer wants to refactor some poorly written / structured code, their lead or manager would have a different vision altogether on it and its very common that he /she may deny to modify the working / deployed code. These things also can't be ignored. Sometimes developer and management take decision together of refactoring of bad code.

Wednesday, March 10, 2010

Scrum is Good but there must be some drawbacks / disadvantages in Scrum. What are they ?

As far as i know Its hard to get into Scrum and its implementation in the organization is also hard. Because some people in the team or management would not be ready or willing to accept it.

Any other things ???
In Scrum, there are three primary roles:
  1. Product Owner
  2. Scrum Team
  3. Scrum Master
The Product Owner is mainly responsible for gaining maximum business value, by gathering all the inputs from the customer and what should be produced to end user of the product. These inputs could be from Team Members and stakeholders. After gathering all inputs from customer / team members or stakeholders Product Owner translates them into a prioritized list.

In some cases, the Product Owner and the customer are the same person; in
other cases, the customer might actually be millions of different people with a variety of needs.

The Product Owner role could map to the Product Manager or Product Marketing Manager position in many organizations.

The Scrum Team develop the product / project that the customer is going to use: (Software or website / web application)

For example. The team in Scrum should be “cross-functional”.
A team in Scrum is typically five to ten people, although teams as large as 15 and as small as 3 report benefits, and for a software project the team might include analysts, core developers,UI designers, and testers.

The ScrumMaster is one of the most important elements of Scrum success. The
ScrumMaster does whatever is in their power to help the team be successful.

for More info : read my previous article.
scrum-master-n-responsible