Igor's Blog

"... no matter what they tell you, it's always a people problem!"

Monday, February 23, 2009

What I am excited about applying in the realm of software development lately

Recently, I had to answer to the questions:

What insight have you had lately in the realm of software development that you are excited about applying?

The answer turned out to be a little longer which made it a good candidate to post on my blog. So, there it is:

Well, there are a lot of interesting ideas that I am passionate to apply or improve in the technology area. Most of them are a few years old and there are successful examples of applying them, but still the majority of IT industry doesn't embrace them either because these ideas require a lot of effort and discipline or because it is mostly different mindset and vision.

If I can summarize most of the ideas in one sentence, it would be – using the web as a platform coupled with lean and lightweight business model to give the ability to strategically position a company as an middleman or automated intermediary between the user and his or her online experience, between customers and producers, between data providers and data consumers.

That includes a high accent on remixable data sources and data transformation, allowing users to control their own data and at the same time use their collective intelligence to generate new content or improve on the quality of existing data. (representing data in different formats –html, xml, json .. and on different platforms – mobile, browsers, desktop, real time positioning…., gather comments, ratings, reviews, adding own content, products…)

Support lightweight programming models that allow for loosely coupled systems and enabling constant changes and enhancements. I believe that by using lightweight frameworks, simple architectural design and more dynamic type programming a technology team could enable a business model to be more flexible and efficient. (conventions over configurations, simple web services –REST, syndication of data, autonomous distributed systems with smart ends  )

For this to happen, I would think that the technology part of a company should concentrate on the core competency and re-use data or infrastructure services of others for everything else (storage services, virtual serves, emails, cloud computing and so on.)

Further, I think that businesses would have hard time in today's very competitive global economy if they don't go far and beyond for their users. From a technology point a view, I am very fascinated to implement features like real time monitoring of user behavior to find out what is valuable for them and what could be improve. Implementing features that would allow to enable and cooperate with users and not to direct or control them – simple user interface, intuitive searches, intelligently customizing application based on users behavior and data consolidation, different data formats, widgets, web service interfaces, content syndication and so on.

Last but definitely not least, I am very passionate about software development practices and methodologies. Exciting ideas that I would like to try or improve on are – extremely frequent releases, different types of collaboration and intelligent gathering of various project information including natural processing language algorithms to improve communications and common understanding.

Well, what are you excited about in the realm of software development recently?

|| Igor, Monday, February 23, 2009 || link || (0) comments | links to this post

Sunday, February 22, 2009

The Curve of Development Experience

I start realizing recently that there are lots of debates about software best practice, design patterns, different frameworks or libraries. What happens usually is that inexperienced software developers are usually obsessed (I was) with learning design patterns and the best frameworks out there.

After a few years constantly trying to apply every possible design pattern or framework to any problem, I start realizing that I spent more time fighting with those frameworks than I benefited from them. Not to mention that using design patterns and so-called best practices could severely increase the complexity of a given code base if not used in the right context.

At some point, you start asking yourself not only about the benefits but also about the negatives that a given framework, a design pattern or a best practice solution could bring. At this point, you are more inclined to go with the simplest possible solution – build whatever you need by yourself.

Of course, sometimes you see more values in some frameworks or using design patterns and you start playing very balancing game. So this is what I call "the curve of development experience".

|| Igor, Sunday, February 22, 2009 || link || (0) comments | links to this post