Recently I got a chance to attend a 2 days architecture conference in Bangalore organized by iCMG. Some very experienced and renowned figures in software world took sessions on architecture and software development. It sounded like a conference on just software architecture but it catered various other topics which could be grouped under Software development in general. If we leave the question of whether the conference should have focused on architecture only, other topics were also quite good and relevant to software development.
In the entire conference there was a lot of focus on Outside-In thinking instead of Inside-Out thinking. It's no more sufficient just to think about customer satisfaction. It has more to do with customer delight and in true sense, participating towards customer success. So instead of thinking what you think will be good for a customer, it's important to figure out what a customer actually need. So a thinking from an end-user perspective is very important for software development.
There was an interesting talk from Manoj Shrivastava in which along with stressing on the usability principle "Don't make me think", he stressed on the need of "Don't make me state" being more explicit to software vendors. It's about some basic fundamentals of software development which you as a customer wouldn't like to state while defining requirements. For instance, as a vendor you definitely won't say at the end of a project that you didn't care about foreign key constraints as part of database design because design document was signed off and customer should have pointed it out earlier.
This highlighted two key facts. One - a lot of organizations still follow traditional methodologies for software development. As a result, there is no scope of early feedback and adapting to the changes. That's one of the reasons why Agile has become and growing very fast as the mainstream software development methodology.
Second fact is even more serious. Simply, don't make me state!!! From software development point of view, some of the things should be quite understood and shouldn't required to be told.
There was a very good presentation from David S. Frankel on the challenges involved in Model Driven Systems. Sometimes the cost involved in integrating various systems based for different financial networks can be too high (for instance one billion dollar if you think of changing small details in credit card transaction integration). He mentioned ISO 20022 as an emerging standard for financial messaging but at the same time highlighted its limitations as it solves some problems but creates even more. His focus of presentation was go to the next level and provide semantic interoperability in data integration path.
At the end of the day, there was a very good panel discussion on a very important topic - why we lack focus and drive on software product development and innovation in India. It was a great debate and here are some important points discussed.
Personally I also feel, education and culture has a lot to do with it. At the same time, it's also important to understand how easy or difficult it is to survive in India. India has absolutely no concept of social security. From the very beginning you strive for survival and in case you fail, you are on your own. Most of the people who are just living for survival don't want to take chances and play safe. Entrepreneurship in product innovation is a risky game which makes it very difficult to fail in India. That's one of the main reasons why people don't try to experiment.
A session from Grady Booch was thought provoking in context of current grim economic environment. He gave several examples on how software world has transformed the world we know in recent years. In the face of economic scarcity, the tradition reaction is to retreat, shrink, slash, and/or panic. Very natural considering the tough situations it creates for corporates to survive. The thing about software, however, is that it is perhaps the most fungible and liquid of resources. The supply of software is limited only by human imagination and labor. Grady argued, software-intensive systems are an inescapable and necessary element in helping us operate, innovate, and even thrive in the face of lean economic times.
In all, it was a very informative conference and included participation from around 300-400 software professionals. However time and again, during discussions, I observed a fact that people from software services industry in India and also in other parts of world still follow traditional software development approaches. It creates a lot of issues in outsourcing world. You don't show your kitchen anymore, how you build software and the progress on periodic basis. At the end of project, it leads to requirements not met, low quality product and not getting the required features in time. I think Agile Distributed Delivery Model brings a lot of proximity with customer with periodic delivery, always visible (open kitchen approach) quality dashboards and delivering prioritized business goals instead of delivering everything but half baked product.
Filed under Agile, Architecture, distributed agile | 1 Comment »
I feel even having a robust social security system does not create more enterpreneurs because then you do not know what risk taking means. In a way Indian are more enterprising because the most of them are on their own and still they sustain, survive and grow. Give people opportunity and right information, they will prosper.