23 May, 2006
Fitneese WIKI
A simple to install collabaration tool for internal project management. Just download the zip from fintneese.org and assign a port. That's it!! you are ready to create a custom WIKI pages
17 May, 2006
Agile development
Today had a session with Craig about agile development. Criag shared his wast experience on agile development with some of us. Following are few points related to this session:
1.Agile != XP
2.According to Craig, Pair programming shall be used for skill transfer. Not recommended practice
3.A task switch leads to avg 1 hr productivity drop for a typical developer time
4.Agile manifesto contains:
- People are important over process
- Working s/w important over documentation
- Customer collabaration important than contract negotitation
- Response to change > following PEP
5.Agile inspired by Lean thinking and Theory of constraints
6.Descope of the current iteration should be arrived before one week (in typical 3 week iterations..)
7.FIT and Selenium are opensource test frameworks for acceptance tests and shall be adopted as part of contineous integration.
8.Craig also instisted on design for testability.
9.Two optional points during scrum shall be shared as:
- Share the best practices adopted (if any)
- what are features missed for current sprint
1.Agile != XP
2.According to Craig, Pair programming shall be used for skill transfer. Not recommended practice
3.A task switch leads to avg 1 hr productivity drop for a typical developer time
4.Agile manifesto contains:
- People are important over process
- Working s/w important over documentation
- Customer collabaration important than contract negotitation
- Response to change > following PEP
5.Agile inspired by Lean thinking and Theory of constraints
6.Descope of the current iteration should be arrived before one week (in typical 3 week iterations..)
7.FIT and Selenium are opensource test frameworks for acceptance tests and shall be adopted as part of contineous integration.
8.Craig also instisted on design for testability.
9.Two optional points during scrum shall be shared as:
- Share the best practices adopted (if any)
- what are features missed for current sprint
10 May, 2006
A day with agile guru
I got the oppartunity to spend some time on agile modeling with Craig Larman, a renowned agile guru.
He explained us, a software architect is who, knows good programming skills. He also discussed somthing about architecutural documentation. A architectural documentation will be only complete in all sense during the project release time. It will be helpfull for a new comer joining the project for maintainance or new development.
He explained us, a software architect is who, knows good programming skills. He also discussed somthing about architecutural documentation. A architectural documentation will be only complete in all sense during the project release time. It will be helpfull for a new comer joining the project for maintainance or new development.
A day with agile guru
I got the oppartunity to spend some time on agile modeling with Craig Larman, a renowned agile guru.
He explained us, a software architect is who, knows good programming skills. He also discussed somthing about architecutural documentation. A architectural documentation will be only complete in all sense during the project release time. It will be helpfull for a new comer joining the project for maintainance or new development.
He explained us, a software architect is who, knows good programming skills. He also discussed somthing about architecutural documentation. A architectural documentation will be only complete in all sense during the project release time. It will be helpfull for a new comer joining the project for maintainance or new development.
24 March, 2006
Refactoring
1. Introduction
The process of changing a software system in such away that it does not alter the external behavior of the code, yet improves it’s internal structure.
- Martin Fowler
Refactoring is the process of taking an object design and rearranging it in various ways to make the design more flexible and/or reusable. There are several reasons you might want to do this, efficiency and maintainability being probably the most important.
- Ralph Johnson
In software world, it is very difficult to design and development a right system at first time. Thus keeping this is in mind, refactoring analysis was carried out to improve the SuD for better performance and maintainability.
2. When to refactor?
Refactoring is a systematic way to clean-up buggy but working code. It is needed when a system lives with bad designs, wrong decisions and poor code. Following are some of the situations which call for refactoring:
It was very difficult to get the system correct the very first time
Lack of understanding of the problem domain
Heavy presence of monolithic code; lack of modularization
Programs that are hard to understand, hard to maintain, contain heavy duplication of logic/code etc. Following are the top ten reasons of bad code smells that ask for refactoring:
Duplicated code
Long method
Large class (too many responsibilities)
Long parameter list (missing object)
Too many case statements
Same class changes differently depending on the additions
Dependency of method is too high from other objects
Lazy class (does not do too much)
Class with too many delegating methods
Too much coupled amongst the classes, accessor classes
Overall slow response time to client requests
3. Refactoring Benefits
Some of the main benefits of refactoring are elaborated below:
Code manipulation in safe environment
Improves scalability, maintainability and portability of the existing system, where possible
Leads to better understanding of existing code
Identifies and reduces an existing system’s performance bottlenecks
The process of changing a software system in such away that it does not alter the external behavior of the code, yet improves it’s internal structure.
- Martin Fowler
Refactoring is the process of taking an object design and rearranging it in various ways to make the design more flexible and/or reusable. There are several reasons you might want to do this, efficiency and maintainability being probably the most important.
- Ralph Johnson
In software world, it is very difficult to design and development a right system at first time. Thus keeping this is in mind, refactoring analysis was carried out to improve the SuD for better performance and maintainability.
2. When to refactor?
Refactoring is a systematic way to clean-up buggy but working code. It is needed when a system lives with bad designs, wrong decisions and poor code. Following are some of the situations which call for refactoring:
It was very difficult to get the system correct the very first time
Lack of understanding of the problem domain
Heavy presence of monolithic code; lack of modularization
Programs that are hard to understand, hard to maintain, contain heavy duplication of logic/code etc. Following are the top ten reasons of bad code smells that ask for refactoring:
Duplicated code
Long method
Large class (too many responsibilities)
Long parameter list (missing object)
Too many case statements
Same class changes differently depending on the additions
Dependency of method is too high from other objects
Lazy class (does not do too much)
Class with too many delegating methods
Too much coupled amongst the classes, accessor classes
Overall slow response time to client requests
3. Refactoring Benefits
Some of the main benefits of refactoring are elaborated below:
Code manipulation in safe environment
Improves scalability, maintainability and portability of the existing system, where possible
Leads to better understanding of existing code
Identifies and reduces an existing system’s performance bottlenecks
Subscribe to:
Posts (Atom)
One new learning / day - however small it is
Read a blog / or article Watch TED talk Read a small self-help book (many free eBooks available with less than 100 pages/can be completed i...
-
This is the live content I will be using as my reading list. Technical - Software Craftmanship - Currently reading - The Design Patterns...
-
I underwent TOGAF 8.1.1/9 training and certification program in last week of sept'09. It was good experience and lot of knowledge gained...
-
As traditional enterprises work to embrace business deployment agility of new age internet companies and innovations in engineering pract...