Monday, January 29, 2007

What can happen to IT Ecosystem w/o EA ?


Sometimes picture depicts more than hundreds of words


Thursday, January 25, 2007

Few thoughts on Ruby

I took sometime to write this small blog. Blogs from James McGovern raised my curiosity on Ruby. I wanted to make my hand little bit dirty before writing.

Basic principles of RoR
1) Don’t repeat yourself (DRY)
2) Convention over configuration
3) Instant deploy
4) Ease of learning and more pragmatic
5) Built-in reusable components like ActiveRecord, ActionMailer, ActionPack, Action WebService

It is made for small to medium size application development. It is based on existing best practices in J2EE and DotNet world. It hard codes all best practices and makes them principles. No easier way to improve or change them. I feel with time best practices will improve and Ruby won’t be able to incoporate all of them.

It’s an interpreted scripting language and people from background of Python, Pearl and PHP will feel happy to move to object oriented scripting language.

My experience is in early stages of development Ruby increases the productivity but as application grows it starts taking time equivalent to or more than other Web frameworks. Ruby has its own boundaries and constraint which bounds the new developers to follow the convention and shows the best direction. But anything outside the boundary of Ruby will become difficult to implement. Inexperienced developers would make less design errors while working with Ruby in comparison to J2EE.

Currently it satisfies needs of small to medium projects with small team. May be in near future enterprises will start adopting Ruby for internal applications. It suits web based application on simple CRUD requirements without any need for complex business logic, sessions, security, availability, clustering and transactions. Let Ruby be like that.

In future, Ruby community can keep adding baggage in Ruby to fit all kinds of projects. But I feel it will act like a slow poison for Ruby simplicity. There is lot of scope and lot of small projects which will go for Ruby in future due to simplicity. But if Ruby community tries to make every customer happy with inclusion of all unbaked features, it won’t take Ruby to home.

I suggest for next 3-5 years, fix the scope of business requirements which Ruby will cater and sell it. Instead of expanding to everyone needs. Focus on niche small to medium web based internal application development. It will increase visibility of Ruby and it will also increase the number of people who knows Ruby well.

Wednesday, January 17, 2007

Way Forward in 2007

I am not the right person to predict the way forward in 2007. During last quarter, I got little time to go through buzzwords. Hope, I will find some way to reduce meetings in this year.

I hope that Architect's world and I will understand the basic principles better in 2007 and onwards -

1) Loose coupling and Reuse - Will adopt SOA to push loose coupling and reuse.

2) Abstraction - Add more XML files to abstract things.

3) Layered architecture – Vertical silos will break to give way to horizontal layered architecture in different domains.

4) Segregation of concerns - Cross cutting open sources like Acegi will gain momentum.

5) Cohesion - More companies will consolidate/merge to make impact especially small companies working in niche areas.

6) DRY - Move from code reuse to component reuse to service reuse.

7) Add more indirections - More virtualizations at different layers like Data and Servers.

Thursday, January 04, 2007

What is more important for a project - Quality, Cost or Effort?

There are multiple objectives and goals for a team to achieve. And I concur that there exists a collective ownership for all objectives. But still for each objective there is prime stakeholder. This stakeholder persuade others to achieve this objective. Now coming to title of blog, what is more important for a project? I first list down the prime stakeholder for these objectives -

- Architect is main stakeholder of Quality (always busy to improve the quality by using different tools, Architecture document, better design, refactoring, automated unit test, reviews, POC's, continuous integration, increasing customer feedback, improving process)

- Business Manager is main stakeholder of Cost ( always busy in simplifying business case, selling flexible pluggable extensible & configurable components)

- Project Manager is main stakeholder of Effort (always busy in reducing timelines, parallel development, starting different activities simultaneously, change management, planning, scheduling, tracking, milestones setting)

So what's more important - whosoever is able to sell his viewpoint more convincingly ;)

Saturday, December 23, 2006

New Year Wish Tag 2007

A new blog tag to share the New Year Wish List.

Wish you all HAPPY NEW YEAR !!

My wish list for new year -

1. To improve my leadership and negotiation skills
2. To maintain work life balance in New Year.
3. To visit at least two new places and make at least ten new friends.

No rules for number of New Year Wishes and number of bloggers to be tagged. I am starting my New Year Wish Tag with my favourite bloggers

Todd Biske, Sam Lowe and James McGovern

Hope and Wish to receive support from them. One more wish ;))

Wednesday, December 20, 2006

Blog Tagged

Todd Biske tagged me. Thanks for giving me chance to join the bandwagon.

I love the blog-tag idea of Jeff Pulver. See the simplicity of idea. I feel simple and powerful ideas are best to catch fire and create positive impact.

Five things to share about me -

1. I had done my Masters from IIT, Roorkee, India in Chemical Engineering. I started my career in well known Telecom Company. After working in Telecom R&D and pre-sales, I switched to Financial Company. Suddenly, SIP/IMS jargon changed to Buy/Sell Mutual Fund. Obviously, few underlying things remain same like UML, J2EE and patterns/concepts.

2. I never studied during my school days (Lucky to survive in school). Things dramatically change afterwards and now I never want to stop learning.

3. I am married and have one little cute daughter.

4. I enjoy travelling. I have been to few beautiful places in Europe, Middle East and Far East.

5. Few projects in which I was involved were Product development for Telecom Billing, ESB for Telecom industry, Prepaid Service on VoIP/SIP, Persistence Framework and many more. My latest interest areas are SOA, WS and Agile. I do lot of consultancy, reviews and governance.

Time to tag five interesting people - Jeff Schneider , Gregor Hohpe , Anne Thomas Manes , Bhagvan Kommadi and Scott Mark

In last, Wish you all MERRY CHRISTMAS and HAPPY NEW YEAR

Thursday, December 14, 2006

Does I deserve to be called an ARCHITECT ?

When a IT professional deserves to be called an Architect? I am trying to list down few attributes of an Architect. I am not trying to find specific attributes for product, business, information, technical, software, specialist, application, system architects and whatsoever.

Its a fare trial to find out generic attributes, when a software professional is mature enough to be called an Architect.

1) When everyone around is in hurry to find the solution. Architect understands the problem first, its origin and future roadmap. See things from 10,000 ft. Afterwards, comes up with solution with blink in his mind. Its time to build consensus around the solution.

2) It is not based on number of years of experince. It is based when you start thinking at abstract level with very ambiguous information. You don't complain that information is not enough to take decision and try to dig it out.

3) He keeps track of emerging technologies. Understand when they are ready for enterprise.

4) He follows process and influence others to follow process. Believes in quality of work.

5) He is capable of taking difficult decisions on behalf of others and have courage to own it.

6) Able to understand, create and communicate the solution to team in their language (most of time UML/patterns).

7) He understands the concepts and principles of loose coupling, high cohesion, abstraction, encapsulation, information hiding, polymorphism. All these are independent of technology used in project.

Wednesday, December 06, 2006

Nuke in the arsenal of Enterprise Architect : SOA

Architecture skill demands continuous improvement. Its a journey not an end. Architect should be able to enhance his skillset as and when job demands.

It is predicted that SOA will reduce the overall IT expenses in enterprise. It means time is right to build SOA skill and campaign for SOA adoption in enterprise .

I love analogies to explain my point, compare SOA with a nuke in arsenal of EA. Not every country in world has Nuke, still they survive and most of them have ambition to develop one in future. Furthermore, same nuclear technology can boost the country economy or can destroy it. Depends how it is handled. Advise is to handle SOA with care.

Monday, December 04, 2006

Software Selection

As an Architect oftenly one would evaluate different presentation technologies, reporting tools, application servers, databases, open source components, ORM, CM tools and a lot more.

Most of time selection depends on perception of team instead of facts available. Try to evaluate the options by leaving behind all perceptions. It is not difficult to find the best fit for your requirements.

We could look into the Software selection through three main aspects - Functional requirements, Non functional requirements and Strategic requirements. Every requirement has its own weight. Combination of all these scores finally help to select the software.

But sometimes it is difficult to start Software selection. For a same requirement, there can be multiple COTS and FOSS available. One may need to start with Elimination technique first based on main requirements. Narrow down the number of options. Go into Evaluation stage. And finally selection happens.

Few techniques which helps in evaluation are conducting POC's, going through case studies, finding references, identifying gaps between requirements and features available in COTS/FOSS and cost analysis covering licenses, software, hardware, customisation, implementation and maintenance costs.

Monday, November 27, 2006

Need of Architecture - Winchester House

INPUT
38 years of construction
147 builders
0 Architects
No architectural blueprints

OUTPUT
65 doors to blank walls
13 staircases abandoned
24 skylights in floors
160 rooms, 950 doors

Above example shows the importance of Architecture in every project

Friday, November 24, 2006

Strategy to solve Performance Issue

Is it possible to solve the all performance issues at any level with same strategy?

Let's outline the strategy -

1. Understand the big picture. Understand flow of information in system.
2. Perform profiling of system. Even you know the most probable reason, still prefer to do profiling. It is not mandatory to use profiling tools. Even sometimes log works out fine.
3. Analyse profiling data. Come up with bottlenecks.
4. Define the strategy to resolve bottlenecks.
5. On the basis of gravity and number of bottlenecks, assign person/team or multiple person/teams on bottlenecks/task.
6. For every task do the baselining of performance statistics.
7. Resolve the task. Most of time try not to change business process. Instead go for network, database and servers tuning. May recommend vertical scaling.
8. Recommend change in business process as long term resolution.
9. Again generate performance statistics. Compare with previous one and be happy.

Friday, November 10, 2006

Why to think just big enough on inception ?

Most or almost all projects/products look limited in scope at inception. Slowly and steadily ground reality becomes clear. And comes the stage when it is required to reanalyze, redesign, refactor and start complete makeover of architecture. In simple words, how to limit the scope, how to define boundaries, how much variations actually need encapsulation, how many indirections really solves some non existent problems. Depends how big one can think. Think Big in pragmatic manner !!

Lucky Blog

Hip Hip Hurray !! First comment from James McGovern. Future looks bright. Thanks a lot. Hope to achieve first mission on dawn of new year'07.

Thursday, November 09, 2006

How to select EA Tool ?

Corporations across the industry are recognizing value of Enterprise Architecture. It provides Enterprise wide streamlining/aligning of Business and IT. It reduces the overall cost of IT in long term. As EA group matures, it needs to handle more and more information on daily basis. At this juncture different EA tools available in markets becomes useful.

As this arena is still not considered mature enough to handle all the requirements of EA teams.

Few hints about selection of EA tools -
1) Identify all the information which is to be managed.
2) Identify stakeholders and users within enterprise
2) Go through market survey done by Gartner, Forrester and IFEAD etc.
3) Interact with vendors to understand the landscape
4) Prepare mapping of EA requirements and features available in EA tool
5) Frameworks and methodologies supported by EA tool
6) Last but not least check cost and vendor support

Above is not extensive list, but good enough to start the search.

Mission and Vision of this Site

Vision (Long term)
As url name suggests - EA Group : A EA community site to collaborate and learn from each other experiences.

Mission (Short term)
1) To get listed on most of Enterprise Architect sites like James McGovern, James Tarbell, Sam Lowe, Brenda Michelson etc
2) Add lot of interesting things, so that it becomes worth visiting it.

"That man is successful who has lived well, laughed often, and loved much; who has gained the respect of the intelligent men and the love of children; who has filled his niche and accomplished his task; who leaves the world better than he found it, whether by an improved poppy, a perfect poem, or a rescued soul; who never lacked appreciation of earth's beauty or failed to express it; who looked for the best in others and gave the best he had." - Ralph Waldo Emerson