There are more than a few points to ponder here. Are you wanting answers within 2 seconds of hearing a question or 2 hours? There is something to be said for how big of a window do you have on answering the question, what format is the answer to take, and a few other things that may be worth noting here as I'd imagine it is one thing to brainstorm an idea where things aren't necessarily nailed down and another to build the schedule for some big project where figures can't be pulled out of thin air on a whim. This is just something to ponder when you ask a question as if you ask someone, "How are you?" then I'm not sure you'd want that someone coming back 90 minutes later to say, "Oh, by the way, I'm fine," as you may not even remember asking the question. On the other hand, there can be time-sensitive questions where you may have to try to think quickly and be asked for educated guesses at times.
How can I enhance my creativity and imagination ?
Consider based on your interests and passions, what stories and ideas could be learned from knowing that domain well. If you are interested in sports then there can be various strategies there that may be worth knowing. A key point here at times to take an idea and then change a little and see what happens. Is it just as useful as before or more useful with this change added to it?
Some people may seem creative though they are tapping from a vast well of resources they have studied over time and filed away well. How well are you at recalling details or concepts someone has taught you?
Only technically sound people can perform very well in this sector ?
No, there is a lot of value to soft skills unless you are a 1 in a billion person when it comes to a specific skill set. There is something to be said for communication, solving problems and various other areas that are outside of raw technical expertise.
How can I increase my effectiveness towards a solution(sometimes I
thought the things can easily be done in a lesser time with what I am
consuming) ?
My suggestion here would be to consider writing out things in 3 separate stages:
Pre-work: This is before you've started something and want to
record your estimates, why you thought them, and anything else to
record so that you can find this data later without being revised as
things went along.
During work: This is where you make logs as the work goes along.
While you can look at the previous stage's notes to see what may be
worth referencing, it isn't necessary as much as it is finding
various high-lights and low-lights to use for adjustments.
Post-work: This is where you can now look back at the work and write
up points similar to what you had at the start. How far off are
your estimates? What was the hardest part of this task? Lots of
points here to add as the last piece before doing the big
analysis...
Once you have these pieces, then you can look over the whole picture to find changes to try next time or take a few of these to identify bigger patterns for yourself in your work and where you can change things to hopefully be more efficient in the future.
Something to ponder here is that if you can find something that keeps repeating as a thorny point, then it may be worth bringing in other resources to see if they can help you get past this issue. Perhaps someone will often change the UI of something and thus when you build it this should be prepared already. Note that this is a double-edged sword. If you guess well in terms of what may be useful then you may look great to some managers and be viewed highly. If you guess less than well then this may be seen as a large amount of waste as you build in features that are likely to be used very little and thus it isn't an efficient use of your time to program them in the beginning.