Pages

Friday, June 04, 2010

Work vs Responsibility

2 colleagues were chatting about their work while sipping tea. One colleague said he was loaded with work. He couldn't get time to do anything and felt drained everyday by the time going home. he asked about other colleague work and his feelings. The other colleague mentioned, well, I had given a higher responsibilities. I had been doing lots of work and I didn't find time for other stuff. I felt like charged in dealing with responsible work. I could see the progress everyday and I enjoyed it.


It is a fun when we are loaded with responsibilities. It makes us enjoy the work. It creates a positive stress which makes us to deal with.
Work assignment generates negative stress which makes us to run away not to deal with. See the difference. Work load is similar. But the way it is given is different. leader knows it. he gives the responsibilities and provides direction. It is a conversation which creates either positive energy or negative energy based on language we use. So leader knows right language. He creates future and righ environment.

It is very clear on how a person performance changes based on these 3 laws.
1. A person actions are perfectly correleates to how things occure to him.
2. How thing occurs to a person arises in language
3. A future based language changes how things occurs to a person.

Thursday, April 08, 2010

Transaction Demarcation

Transaction Demarcation:

The heart of any business transactional applications is transactional manamgement. No need to specify if it a financial applications like bank applications, how important is the transaction management. There are certain ground rules laid out by our industry expert on how we must handle this. But there is always a gap, unless you put our mind there.This is a primary concern for any database application. While I was looking at the health of an application based on my earmarked points such is one Transactions managment, I got into the following. These appears as fundamental mistakes. Let see what are the mistakes

MethodA(par1, parm2....){

xxxxx.;
yyyyf...;
x.MethodB(p1, p2, ....);

delete(Object);

getTm().commit();

}

MethodB(p1,p2, ...){

xxxxx;
yyyyy;
y.MethodC(p1);
delete(object);
getTm().commit();

}


MethodC(p1){

xxxxx;
yyyyy;
delete(object);
getTm().commit();

}

MethodA was called from coarse grained method service. MethodB was called from fine grained service and as well MethodC.

What are the problems you could see here?

let's take a look at points take at architecture and design level

Architecture:

1. Layer of maintaining transactions
2. Transactions management patterns
3. programming or declarative transaction management

Design:

1. Confirming ACID properties
2. Single Unit of work
3. Considering Exceptions
4. Transaction demarcation

Monday, February 01, 2010

Communication: Is it a language or expression?

Today I had discussions on how to have effective communication. The questions raised are
1. is it about grammar?
2. is it about what you want to get across?
3. is it about using hi-fi words, phrases and idioms?
4. is it about just talking?
5. is it about how concisely you speak the point?
6. is it about beating around the bush to speak more for simple point?


Some people give suggestions to improve communication for others. Do they understand what you're saying when they are lacking communication skills? :)
Unless you explain them what is it you identified lacking in that person, there is no use in rising improve communication skills?

Person may be good at grammar, may be lacking necessary vocabulary or the other way round. This comes under a language issue, but it doesn't come under communications skills. There are many writers or orators know less words or grammar, but impressed the public most. This comes under theoretical learning and person should learn rules and words by heart.

Persons are perfect in vocabulary and grammar, but they will not be able express their views. This is a skill needs to be developed and it is a bit practical.

It needs interactions. These interactions makes a subject under discussions. These discussions explores views from each person. Here we need to use vocabulary and grammar. So these discussions could involve simple sentences or hi-fi phrases, idioms in sentences.

If we guide a person with clear distinction of what he lacks on communications front, it is easy for that person to develop.

While speaking ,it is always good to use simple sentences rather than decorated with hi-fi phrases and idioms which will make others misunderstand actual meaning of a sentence. :)

May be while scripting, we can choose to show up capacity of our mind dictionary. :)

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

Wednesday, December 31, 2008

Happy new year

Nature is really beautiful and cares for us. Isn’t it?

It is giving us another 365 days to dream, achieve and enjoy the life. Are we ready for this?

I am sure we are. We are so lucky; our mother nature always opens up a day or year afresh.

We just need to dream and put a plan to execute and enjoy fruits.
Don’t we get our subconscious mind reminds us very often the old saying “you reap, what you sow”?

It’s time again to sow new seeds in our mind and grow them deep rooted to harvest very often.

I am sure you are ready with such seeds for your future.

Wish you a happy and prosperous new year.

Let’s create happiness and prosperity by being innovative and having fun.

Monday, December 29, 2008

Defining and predicting the project success

Of-course the project success depends on many factors like skills, tools, process, scope and timelines.
When it comes to resources, project success predictability can be measured by resources competency, process adherence and metrics collected over the process.
Metrics which are being collected must be useful in determining the project health in terms of the following
1. Is there any risk in the project?
2. Is there any risk at resources capacities?
3. Is there any risk of meeting delivery time lines?
4. Is all stakes holders getting right information during project execution?
5. Is project in predictable state?


This makes the leaders to have right environment to develop and use factors of competency, process and metrics based on process.

In this lines, I have come up with a program or tool to use and improve competency, productivity and predictability. I called this as mentoring program to make everyone powerful and able contribute on proactive manner.

My mentoring program is concentrated on the following items
1. Increasing Technical capability
2. Defining and adhering to suitable process as per the project environment
3. Leadership
1. thinking as whole release or project
2. building trust
3. Ownership or entrepreneurship
4. maintaining relationship

I will talk about these details in next blog

Thursday, December 18, 2008

Importance of code reivew in agile development

Code review is essentially vital part for agile development and it must be done along with our code coverage.
Code review has a great potential to reduces bugs count and increases the productivity on long run.
It provides quality code in terms of
1. following coding standard to make sure everyone understands your coding.
2. identifying bugs development stage reduces the number cycles between dev, qa or even from production to development.
3. catching performance bottle necks like loops, memory leaks, reducing unnecessary costly calls to db and so on

Code review will really gives you more learning and it multiplies your knowledge as you become aware on how other person think and code.
You must feel great to get your code reviewed to make sure you're strong in your delivery by using another pair of eye to catch any unwanted things that you don't want to put in to code base.
When you get comments on your code, your confidence level on your coding style increases and you become quality coder.

Sunday, October 26, 2008

SAAS : Challenges

  1. Data security
  2. Scalability for growing customer base
  3. Customer specific demands
  4. Customer support on functional and technical
  5. Changing customer needs
  6. Dynamism in the market
  7. Performance

SAAS Design principles

SAAS Design Principles

  1. Meta data driven
  2. Configurable
  3. Multi-tenant
  4. extendable design to suit to changing markets
  5. Internationalization
  6. Service Oriention architecture
  7. Asychronus request
  8. Data handling - archiving and purging data
  9. Easy to integrate with other applications
  10. Scalablity
  11. Availablity and reliablity
  12. Security
  13. Performance
  14. Monitoring and auditing
  15. Techincal and business support

Tuesday, October 21, 2008

SAAS

Necessity makes any thing. Information Technology has become prominent across industries as it has been reducing lot of opertional cost. It made the turnaround time for any activity to become very less. It has been more effective in tracking and monitoring business. Productivity increased and companies have been growing healthy.

There is no limit for human mind to think beyond umimaginable thoughts to provide a change in industry. Industry is in such a situation where lot of money is going on operational cost of IT enabled services. This invloves initial purchasing of software solutions and its supporting hardware. Apart from initial investment there has been always a maintance cost. This has become more than anticipated. Other side ever changing requriments and new technologies also put companies on trememdous pressure to keep them upto date.

Once the IT services were more of boon to reduce operational cost and now IT services maintanence has become a gaint expenditure. Problem alwasy demands a solution. It is to put IT industry in new dimentions with more creative and innovate ideas. Here came a concept SAAS to reduce IT operatoinal and maintainance cost.

SAAS denotes software as a service. Another name for this is on demand. Concept is not very new in terms of application, but it is new interms of using it for the benifit of consumers.

This makes the IT enabled software provided as servie and consumers just subscribe it and start using it. It removes all hurdles of initial purchasing of hardware, software and its operational cost. It has become a great boon across industry as they don't need to commit for unforseen benefits for future. Now IT services is available as service, try it and if you like to continue you can subscribe for required period. As there was no commitment of procuring all hardware and maintiance setup, It is easy to either discontinue or continue with service. There is no lump some investment. It is steady investment year after year. It is very easy for customer to move on to next generation products based on changing market needs.

In next blog we will see design principles of SAAS and other supporting information for SAAS

Saturday, October 18, 2008

Focus

Focus is the right tool for our achievement.

I strongly believe that every one has value. It is just that they need to focus on what they are doing. If a person focus is on building muscles, he certainly spend more hours in exercise hall. It makes him happy and finally he achieves a great shape of muscles body structure. Similarly, if he focuses on what is he working on, he certainly achieves it irrespective of any problems.

Focus builds capacity
Focus builds capability
Focus creates concentration
Focus motivates for achievement
Focus creates interest
Focus generates unusual results

If focus is only on output, you certainly work on outcome irrespective of how you did it.

If focus is on output, but you need quality out put, then out come is quality output

Tuesday, September 02, 2008

Situational leaders

Regrettably, we are all accustomed to do what the leader says. That is good, but sometimes that leader may already overburdened and tired for a while. Or, leader may not have clear idea about someting is good to do but not understand how to execute it. That time, anyone in the team can come forward and lead the team in right direction in that situation. This type leaders are called situational leaders. There is good example for this is birds migration. While birds migrating from one place to another place, they form a parbolic and fly to desintatin. This shape is somethig to address aerodynamics. The bird which at front faces more force and it decreases while going down the parabloic path on either side. Here, the bird flying infront is the leader and it leads for a while and becomes tired. Then, it moves back to last and next bird will take the incharge of leading. The cycle rotates till they reach the destination.Everything is came from nature. One should learn things from nature. All inventions and theories are advocated based on their concentration and observations in nature.

Thursday, July 19, 2007

Creativity workshop

I and another colleague thought to conduct a workshop for our company employees. We discussed to choose a topic. As I had been thinking to take a session on creativity and it kept on postphoned, I suggested to have workshop on crativity. We dicussed to have some activity for this. My colleague came up with some activity which would make eveyone thinks. The plan was drafted about how to conduct and what to talk during workshop. We planned to have an activity of making eggs fly. After the activity, we thought that we would collect the information about how they would arrive at ideas and others. Thereafter, I would talk about creativity. On the very day of executing the plan, we called eveyone in the office and we told them about the activity. We gave all neccessary items that would help them to make eggs fly. We asked them to get the working solution. We divided them all into different teams and took care not dominate any person in the group by putting all senior guys in a single team.

We asked all teams to go to different locations, so that they would not have any influence from any other team. After the given time elapsed, we called all teams to demo their activity. After demo was over and we asked them to answer few questions. We have collected all information and took over the procedings to discuss on the topic. I starated discussions with an intention to tell everyone was creative. I explained about what is creativity and how everyone was creative in the give activity. I talked about advantages of crativity and how to improve crativity.

Wednesday, June 06, 2007

Handling a angry customer

When I went to coruier service center to collect my receipt, I observed a hostile customer asking the shop keeper why his courier didnot delivered yet. Shop owner was not there, but his boy answering him. The boy asked him he would have complained about it. He got angry and siad if he could follow it up, why he sould give it to a service and pay money for it. The boy didnot understand what to say and immediatly he called his owner. I thought the owner was on the way to shop. As soon as the owner came, he just asked the details and tried calling customer service to find the problem. The samething the boy also did it. But the way they handled the situation was different. Owner didn't say anyword, he just asked the details of addressee and sender details and noted down. He kept trying for customer service, but the phone was not answered. After a little time, it customer became calm and said to shop owner to find it out and inform him on his mobile.

Later owner was telling to his boy. First, he should calm the custmor down and then say anything. The boy said, he was not allowed to say any word and kept shouting. The owner asked to understand how he handled the customer.

As an observer over there, I found only difference between them was one responded and the other listened and divereted him to give answers to his questions. Asking for information related to issue diverted the customer to be away from hostility. Other thing owner did was lapsing the time. I observed that first time the phone was connected to service center, but, I could guess, he intentionally cut it. It is very obvious that after little amount of time everything becomes ease if there is no reciprocation from other side.

Saturday, March 03, 2007

Life

Security is mostly a superstition. It does not exist in nature,
nor do the children of men as a whole experience it.
Avoiding danger is no safer in the long run than outright exposure.
Life is either a daring adventure, or nothing.
To keep our faces toward change and behave like free spirits
in the presence of fate is strength undefeatable.

- Helen Keller

Monday, February 05, 2007

Essense for life

It is not what we eat
but what we digest
that makes us strong;
not what we gain
but what we save
that makes us rich;
not what we read
but what we remember
that makes us learned;
and not what we profess
but what we practice
that gives us integrity.