Pages

Wednesday, October 21, 2009

Developers and old applications

A very good article and every developer or architect must read.

http://www.joelonsoftware.com/articles/fog0000000069.html

It is very well explained on how a developer think or responds when he must work on an exiting old application. Even many architects goes through the same pattern when dealing with old applications.

As an architect I really impressed on these points, sometimes I was also in the same dilemma. I did lot of refactoring for old code, but many times I felt I would rewrite entire stuff. Becuase of business and funding requirement, we were always doing refactoring and correcting functionality. This article is an eye opener for me to look at utilizing the experience of fast that went into the old programing as it served the business and fixed many time tested bugs.

Friday, July 24, 2009

Metrics -Agile development

Every project needs to be measured its progress and readiness for meeting deadline. This also mandates to understand the quality of deliverables and efficiency and ability of a team. This makes us to look at some measuring data during a project execution which helps us to project them to all stake holders.
In my experience I found that we could choose on what metrics we need and what we don't need depends on engagement and product ownership.

I would like to put all these metrics under these categories

  1. Operational Metrics
  2. Delivery metrics
  3. Quality metrics
  4. Team ability or efficiency metrics
While choosing metrics, there is always a debate or discussions with senior management. In my decision I always interested to look at delivery metrics and quality metrics as mandatory. These are core metrics would help to judge product readiness and quality.
Other 2 metrics explains team's work, efficency and ability. These are not really required in agile development as we agree that each individual is self disciplined and talented. But it is up to scrum master or manager discretion.

Wednesday, April 08, 2009

Physical Architecture and Reverse Proxy role

Reverse proxy is used for
1. Forwarding
2. Reverse
3. Defleting
4. Caching and others

This a very component to be used after load balance in any secured network.

Links expalins more details
http://www.apachetutor.org/admin/reverseproxies
http://www.serverwatch.com/tutorials/article.php/3290851

Thursday, March 19, 2009

Unit testing model for SOA applications

SOA Applications must have a very good automation test suite to make sure all services on intact and works as per intended. While doing unit testing these are the things we must take care to ensure proper integrity and very intact business functionality with each service.
1. Testing developed functionality, in other words, Business logic testing
2. It must be able to test Servlets, EJB and POJO which in turn test through business logic and entities
3. Framework must have clear separation about initial data set creation and teardown of data for each test case
4. It must help to test application integration through app test suite. In other words, it must be able to find if any broken functionality because of new additions
5. It must be able to provide preliminary testing of memory leaks and performance
6. Should be able to execute while building either through simple ant build or continuous integration tools like Cruise control. In other words, it must run out of container
7. When this runs against any development DB, it should not spoil existing data setup.
8. Able to run entire test suite for integration testing
9. Able to run single class testing to test business logic
10. It should allow to automate all my business, edge, negative, positive, and integration test cases to avoid tedious process of manual testing
11. Framework should trigger the resource to get much clarity in understanding complete requirement. It means framework really questions what is all needed before he starts writing test cases
12. Should have build in mock objects like session objects and others
13. It must provide code coverage at package, class, method level
14. Should have facility to identify unreachable code and refactor the code to have better and clean quality code
15. The flexibility and easiness of framework should encourage to go for implementing TDD