This year's Sem Tech brings exciting opportunities for us. I will be participating in two sessions.
The ladies at Reiter's Books are quite gracious in cohosting meetups, such as the Washington DC Semantic Web meetup. It was here last Thursday that zAgile had the privilege of presenting its vision related to semantic technologies to an audience of over 30 people. The attendees were fairly diverse but there was a lot of obvious representation from those in the government or representing its interests. I met people from DoD, Agriculture, Library of Congress, Project10X (Mills Davis), etc. Brian Eubanks organizes these events in DC along with Marco Neumann, who came from New York to attend this session. The session was quite interesting and it was great to see the work that guys at Knoodl presented. Knoodl's platform allows for the collaborative development of OWL/RDF based ontologies and knowledgebases. Sharing ideas related to a common set of technologies with people who are exploring from a fairly wide range of interests is quite exciting. It is also great to see the domains in which semantic technologies are now being applied for commercial applications.
These are exciting times for semantic web technologies, as they gain inroads into commercial enterprises. Semantic web meetups are springing up in cities across the US and Europe with a lot of exciting topics, demos and discussions. With Marco Neumann's guidance, zAgile has committed the month of April for a very special roadshow covering eight cities across the US beginning with San Francisco and Palo Alto.
While offering an easy-to-use collaborative platform for teams to capture and share knowledge about their products, processes, people and projects, enterprise wikis also typically have limitations that have often impeded their wider adoption and usage in the enterprise. Here are 4 key reasons why I believe they often fail to deliver value.
1. Accessibility - You do not have rapid access to precise information. Unless everyone has awareness of the page-hierarchy and the overall content organization scheme, information isn't so readily or intuitively accessible. Wildcard searches maybe the only mechanism for others to find information. If there are multiple wikis (which isn't uncommon) then it becomes even more difficult. They become siloed information stores.
2. Reliability - Content is static and has a tendency to become stale (thus unreliable). Since information or content is primarily user-generated, it tends to be static in nature. Unless someone is taking the responsibility for diligently maintaining this content, it becomes stale and unreliable very quickly.
3. Maintainability - Content is unstructured and thus requires a great deal of manual effort and discipline to keep it current. Cross linking of information across pages typically involves copying and pasting URLs. Integration with content outside of the wiki is also the same process.
4. Integration - Most wikis are supporting mechanisms for integrating widgets into the content - which provides for some limited way of bringing data from other applications. It is not quite the same as integrating information, since it is rarely contextual.
zAgile's Wikidsmart addresses all of the above and more. Easy to create and use templates provide a mechanism for creating and maintaining content. The templates also allow for a way to capture attributes on a page that facilitate automatic and contextual cross-linking and referencing of information across the pages and across wikis. Through its interface with zCALM (zAgile's Knowedge Server), Wikidsmart can also integrate information from any other application. It turns the wiki into an Information Portal.
Wikidsmart is currently available for Atlassian's Confluence Enterprise Wiki. Through upcoming connectors for Atlassian's JIRA, Subversion and CruiseControl, it provides very powerful capability for integrating Software Engineering Projects with Requirements, Test Cases, Tasks, Checkins and Build activities. It can similarly be applied to integrations across applications in other domains.
-Sanjiva, Orinda
Last Thursday night, we (zAgile) hosted the second meetup of the fast growing SF Semantic Web community. The topic was "Practical Semantic Web Applications for Your Organization". We presented our technology (zCALM) and product (Wikidsmart) as examples of information and application integration using semantic technologies.
Today, I had the opportunity to be on the panel at Enterprise Data World to discuss the role of semantic technologies in enterprise data management. The panel followed a working session consisting of roundtable discussions exploring a number of specific topics related to this theme. All-in-all, a very interesting and revealing set of discussions.
Yesterday, I gave a "lightning talk" (3 min prezo) at SemanticWiki mini-series Session-2 hosted by Ontolog. It was interesting to hear the evolution of semantic wikis to date and the varied focus and unique applications offered by various organizations. Its even more interesting that with all that these wikis promise, they have not picked up much attention in an enterprise.
Here is the rough text that accompanied my presentation:
Our focus at zAgile is towards information integration within the enterprise -- towards which, the wiki is only one of many potential sources of information or knowledge. Rather than treat the wiki as THE knowledge repository, we have developed technology and extensions which allow the wiki (as well as other applications) to contribute to a central information repository, although the wiki may also functions as a 'portal' or 'dashboard' for integrated information. In this regard, we have focused on "semantically enabling" commercially deployed wikis such as Atlassian's Confluence.
The semantic enablement consists of three major components:
The central ontology-based repository provides for unification of information across the enterprise, incorporating what so far has been relatively "unstructured content" that lives in the wikis and offers little contextual value.
-Sanjiva, Prague, Nov '08
Recently I came across an article by Ricardo Falbo, et al. from UFES (Brazil) that identifies various dimensions of information and knowledge integration that I wanted to share. These are:
The context of the discussion is ODE (Ontology-based Software Development Environment), developed at UFES, but it is quite applicable to the needs of any enterprise and not just Software Engineering. Also, while most enterprise solutions focus primarily on data integration or application integration, none consider all these in a single composite offering. In that regard, through the application of semantic technologies (particularly a rich set of ontologies), ODE is one of the first systems that I have seen which demonstrates how one could offer such a complete and seamless integration. While ODE attempts to do this via a full blown application, I believe that soon we will be able to achieve this level of integration across heterogeneous applications in an enterprise by combining some of the recently evolving technologies, including those related to the semantic web. An example of one of these was recently mentioned in Bob Zureks' blog
Sanjiva, Orinda, Nov '08.
If you ask someone in software engineering about their processes, you are likely to get some combination of the following responses:
In other words, hints of an organization or team's processes typically exist in some combination of Powerpoint slides, collection of tools and evidence of process-related artifacts but not quite integrated into the environment itself.
The degree of details or comprehensiveness of the information you will encounter will depend a lot on the organization's process discipline and maturity.
The problem here is that these responses do not totally reflect what is really happening. At best, it reflects the intent of the process implementers (usually engineering managers) and generally a high level articulation of that intent. So you would either take their word for it or conduct a more thorough due diligence which would be an elaborate set of interviews, reviews of artifacts, delivery plans, etc. That is, if you are an outsider. If you are the one who has just joined the team, then the process learning is in itself an ongoing process. You will learn the processes mostly by getting involved with the team(s) through various exercises of maintenance cycles, patch fixes, release deliveries, and so on. In other words, there is a ramp up period for you which could easily take several weeks or months -- just to learn how to perform your tasks within the context of the team's process culture.
It is no wonder that teams are so often out of sync with respect to their processes. This is particularly an acute problem when teams are distributed. When outsourcing or offshoring, most teams do not even bother to align their processes. Teams adopt their own local process cultures.
As one would expect, this is a key contributor to high failure rates in software projects with offshore or distributed teams.
This problem exists because software engineering process definition, its integration into the lifecycle and tracking (for exceptions and compliance) -- are manually intensive and tedious. Diligent and disciplined managers are able to maintain some level of efficiencies with small local teams but their efforts quickly become unwieldy and impractical when the team size grows beyond 10-15, and when they introduce offshore teams into the mix.
Tool vendors do not tackle this problem because they are focused on their tools being adaptable across processes and methodologies. They do not care about what process you choose, nor do they impose one. They simply want you to be able to use their tools.
ALM vendors take a step forward by offering you an integrated environment that is committed to a certain methodology. Whatever the latest trends may be, you can find a vendor with an integrated environment that reflects a reasonable integrated representation of a lifecycle of that trend. Here, you have to commit to their methodology and their environment. You cannot mix paradigms.
So what do you do for your own environment? If you have chosen best of breed tools for your teams, and have implemented processes and methodologies that most closely reflect your business needs, teams' cultures and abilities -- how then do you effectively capture these processes and methodologies in sufficient details, reuse them, modify them, disseminate them to your teams, reduce their ramp up cycles, enact methodologies for specific projects, automatically have your tools configured to represent the processes, and track the process execution through a project lifecycle?
How indeed!!
Well, now there is a way :)
http://www.zagile.com/introductiontozcomposer.html
-Sanjiva, Orinda, Nov, '08.
Companies engaging in software outsourcing/offshoring, or that have distributed software engineering teams, tackle a variety of challenges related to the distributed aspects of their operation. Through some combination of collaboration tools, technologies, processes, T&E $s, lots of late night conference calls, etc., they work towards managing through these challenges and experience varying degrees of success with their projects. And they do that while striving to reduce overall engineering costs (the key objective for most of them).
Of the challenges they face in coordinating software engineering projects across distributed environments (and there are many), I believe that time zone difference is the most significant. You can save money, find great talent and implement the most effective platform and process for collaboration and software development -- but not being able to reach people when you need to still makes a difference in the 'velocity' and effectiveness of your development/delivery lifecycle.
While this was not the key factor influencing our decision to establish teams in South America, we certainly have benefited tremendously from it. With teams in Chile, Peru and Brazil, our teams (or individuals) have never been more than six time zones away. This means that throughout the year, there is always a core window available for us to collaborate. Of course, this does not mean that we are in constant hourly contact. In fact, I spend an average of an hour a day on such communication. It simply means that people are more accessible and therefore there are more opportunities for direct (or synchronous) communication, brainstorming, etc.
While most people address this issue through a lot of after hour calls as well as relying on local management teams, we have had to do neither. Having to hire offshore management team to look over local operations obviously adds to the overall costs. We have hired and managed individuals directly, maintained a flat team structure, regular work hours, and implemented a number of different agile techniques towards the development of our platform and solutions. Given that we are implementing leading-edge technologies, the model has worked very effectively for us -- both in the development of our products but also during deployment with our first customer.
All this without compromising on the cost benefit or talent. In our case, we have a significant edge on both fronts.
So time zones matter.
-Sanjiva, Oct 2008
In my last blog, I cited some examples of inconsistent semantics that are prevalent in applications as well as in their usability. Applications tend to be siloed in nature and their schema often corresponds more tightly to specific dialects. The end users make it worse by often using it for multiple purposes, thereby muddying the semantics even more. Also as I mentioned in the blog, this becomes a nightmare for those striving for an Information Integration strategy (a cohesive platform that unifies information across tools, departments and processes). Such strategies and solutions have been championed by some of the biggest vendors in the applications and infrastructure space (IBM, SAP, Oracle) -- via their MDM (Master Data Management) or EIM (Enterprise Information Management) strategies.
But how does one effectively address this EIM challenge?
To us, the answer is relatively simple. By making "minimum ontological commitments". Of course the devil is in the implementation details.
So it is quite straightforward :)
In concrete terms, such commitments can answer simple questions, such as:
Who broke the build, what tests were conducted for a particular set of checkins, who reviewed them, what requirements or bugs initiated the actions, who authorized the final move to production of a particular set of changes, what customers are impacted, which components are most vulnerable with respect to defect density at a particular development stage, etc.
Of course, we can get these answers now but it either requires a lot of walking the hallways and late night phone conversations with remote teams to gather the information across teams and silos, or making some costly commitment to an integrated toolset from one particular vendor.
Or, the questions above can be more directly and easily (and automatically) answered in your own environment with your own processes and tools -- by integrating the zAgile semantic infrastructure.
Its about Information Integration in your world.
Its about building relevant knowledge through this integration that will allow you to effectively collaborate, coordinate and manage your software development and delivery cycles.
-Sanjiva, Orinda, Oct '08
Commercial software applications often tend to be quite loose and non-binding of any conventional semantics when it comes to implementation of their metamodels. This not only impairs their usability but also has significant impact to their ability to integrate with other applications and systems in an environment.
A case in point -- Atlassian's Jira issue management application -- which has become quite popular with organizations of all sizes as well as a number of open source communities. With over 10,000 customers for its products, it is no wonder that we (zAgile) have been taking a closer look at the Atlassian application suite with respect to integrating them into our semantic framework for our customers.
One of the most curious aspects of Jira that has often perplexed potential adopters is its metamodel. We see people often confused with some of its key concepts or use them arbitrarily thus potentially contributing to a different set of usability problems.
Most notably in this context is the Jira 'Project'. This defies any coherence with the common or conventional notions of a Project. For starters, people tend to associate projects with a begin and end date. Not so in Jira. Projects go on forever with interim deliveries packaged as releases. So what is a Jira project and how do you plan one?
Then there is Component. It seemed intuitive at first since semantics of the word 'component' are also not too controversial--that is until you begin to see how people have applied it in practice in Jira.
To understand the usages of some of these fields, you can look at Atlassian's JIRA site. Another popular Jira site for us has been JBoss.
In both usage models, the concept of Project more closely resembles a software product or component (example -- Jboss Enterprise Platform, JEMS, Jboss Shotoku, Bamboo, Clover, JIRA, etc). There is no hierarchy or crossover relationship between software components so the issues or tasks within each have to be fairly isolated from those belonging to another Project. Of course, there are Project Categories (example: Atlassian Products, JIRA Plugins, etc) -- to help organize the Projects. But how do those fit into our mental model of Projects?
Similarly, I have seen examples of Components such as QA, Performance, Test Suite and Documentation. Its tough to figure out the definition (or semantics) of Component from such usage.
And finally, if we are going to be arbitrary in terms of how we use these fields, then how do we integrate them with similar concepts in other tools? Is a Jira Project the same as an MS Project instance? Are all values in Component representing software components?
This emphasizes the value of common and shared semantics in applications that would facilitate both usability and potentially integration. While Jira has a lot of third-party support to make it functionally rich, a lot of people are still spending significant amount of effort towards integrating it with other applications and processes within their environment. And many of them are struggling with the lack of consistent and coherent semantics.
-Sanjiva, Orinda, October '08
Of course, there is a lot of pun intended here. We (zAgile) recently added semantic capabilities to Atlassian's Confluence wiki and are quite excited about its impact to a very popular yet traditional wiki.
In my earlier blogs, I had been talking about my quest for semantic wikis. Wikis provide an easy way for teams to produce and organize content--creating very effective central repositories, often used for cross-departmental collaboration and information exchange. The problems arise when all this statically organized content becomes unwieldy in terms of maintenance, and more importantly access. You end up spending lots of time in wildcard searches across all this content, repetitively navigating complex hierarchical page structures and constantly maintaining links across wiki pages to keep the content credible and current.
Semantic capabilities make wikis a dynamic application. Addressing the problems noted above, they allow for content to be 'semantically' annotated with the annotations stored in semantic repositories, therefore, the meaning is captured in a machine-processable way and is more directly searchable, shareable and accessible across applications not just from within the wiki itself.
To 'semantically' enable Confluence, we have taken the following steps:
And lastly, this semantic capability can now be added to any extensible wiki -- to make it wiki'd semart and sparql'ing :)
-Sanjiva, Orinda, October '08
"But it's not who you are underneath, it's what you do that defines you" -- Rachel Dawes in Batman Begins
This catchy quote from Batman Begins had me a bit puzzled when I first saw the movie. What does she mean by that, I thought? But it stuck. If you have seen the movie, you will understand why.
And then in a totally different context, while trying to submit zAgile to various search engines and business directories, it became somewhat clearer. The problem I encountered had to do with figuring out where to categorize zAgile. Yahoo's taxonomy seemed pretty dated and perhaps severely constraining. It shouldn't be so difficult, I thought. But it was. Why do I have to fit zAgile into some pre-defined category? Why can't I just say 'what it does' and have 'what it is' inferred? The problem with Categories is that an individual may belong to more than one category and the categorizations are not necessarily permanent. Categories definitely cannot be used to define what something 'is'.
So it seems that we are constantly constraining ourselves by putting 'things' into specific categories. When you have to put a book on a shelf in a library then obviously you need to make some hard choices. But in life, what something 'is' ought to be defined (and inferred) based on its attributes and relations to other things.
In a somewhat obtuse, indirect and 'Heideggerian' sort-of way, maybe Rachel was trying to say the same thing. Her quote curiously made me realize the key difference between taxonomy and ontology. We are so used to dealing with taxonomies when developing applications that the power and flexibility of ontologies are difficult to grasp and leverage. While ontologies often take the form of taxonomic class hierarchies, they are not constrained by them. Therefore, rather than struggle with categorizing something, we use an ontology to define it using its characteristics (or attributes) and relationships to other things. And all that it 'IS' is simply inferred.
And that is all what Rachel was trying to tell Bruce Wayne (so I believe, anyway).
-Sanjiva
In a recent blog, Carey Schwaber (Forrester's Senior Analyst focused on Application Lifecycle Management) points out some of the unconquerable hurdles that we face in software engineering -- the perennial 'If Onlies':
It is easy to resonate with this list. Almost every organization faces these challenges. It is also easy to add so much more of 'if onlies' to this list from our experiences.
There is also another dimension of 'if onlies' with which we struggle the most -- a dimension that involves visibility, i.e. 'If only we know'. For emphasis, I will map each one of these to Carey's list above. In my experience, lack of visibility has been the key source of problems that we encounter (and she exposes) in Application Lifecycle Management.
If only we know...
Of course, this isn't just about adding to the problem set (to address 'The So What'). There are 'alternate' 'transports' (using Carey's metaphor) to address even these 'if onlies'. zAgile's Solutions provide the 'game changing tactics' by addressing each one of them. In this blog, I wanted to provide some of the things that we have attempted to tackle with our approach to Intelligent Application Lifecycle Management. In subsequent blogs, I will provide details on how a software engineering organization may apply zAgile's Solutions to address these chronic pains.
-Sanjiva
Ealier this month I had the opportunity to address the students of Cognitive Informatics at Prague University of Economics to discuss my experiences and perspectives on transforming a creative idea into business. The lecture was organized by Professor Vaclav Repa. With zAgile serving as the example model for the presentation and discussion, it was an interesting opportunity to talk about how the idea was conceived and all the steps that we have gone through with respect to early research, concept validation, product development, market analysis, category definition, etc., as well as the challenges that lie ahead of us. This was my third presentation to an academic audience (the first two in South America to students at Pontificia Universidad Católica in Chile and UFES - Universidade Federal do Espírito Santo in Brazil). A shift from the previous presentations, the interest in this particular session was primarily the business (revenue model, marketing strategies, etc) aspects of enterprise incubation rather than the technology behind the vision. I enjoyed sharing our vision and progress with the students and also gave them a product demo (a sneak preview of sorts).
While the popularity of wikis in the corporate world continues to grow due to the ease with which they allow anyone to publish web-based, shareable and easily accessible content, they also have a number of serious limitations which have been difficult to overcome mostly due to the inherent design. The most significant of these are:
1. Hierarchical structure of pages -- unless you maintain multiple hierarchical relationships (or references) of your pages, you have to always remember where a specific page content (or topic) may exist. Not only that but the consumers of this content must also always be aware of the structure or taxonomy. In the absence of this, endless navigation through the trees or wildcard searches are the only other way to find what you (or they) seek. In the corporate environment, people seldom have the time or opportunity to construct such taxonomies unless it is a dedicated activity or the wiki package comes with some pre-defined and ready-to-use templates.
2. Content updates -- Once a wiki grows to hundreds or thousands of pages, it is much more difficult to find content and keep it up-to-date since it is a manual process. However, if you can't keep it current then the repository loses its credibility and the wikis quickly become shelf-ware.
3. Contextual relevance -- While people create content on the wikis at will, its organization and hierarchy are often pretty arbitrary. Furthermore, there may or may not be a context associated with the content, or perhaps if there is one, it is implied by the author. So you end up with lots of content without any seemingly contextual relevance. Once again, something that becomes difficult to maintain and leverage over time.
With all the right spirit of generating and organizing a lot of content with ease, I have seen wikis become cumbersome, unwieldy and useless fairly quickly.
With this in mind, I envisioned (and began researching two years ago) the idea behind wikis that could support semantic annotations, thereby adding some needed structure to a naturally unstructured content store. Semantic annotations, I believed, would allow content to become much more self-organized, accessible using contextual searches and queries and updatable using software agents (where relevant) -- all adding up to some powerful capabilities.
I found a number of projects exploring this concept during this time. I think the closest one to the vision that I had and the one that we at zAgile have chosen to leverage in our platform -- is the result of efforts by Zdenko (Denny) Vrandečić & the team at Institute AIFB, Universität Karlsruhe, in the form of an extension to MediaWiki called Semantic MediaWiki (or SMW). We believe it to be a very efficient implementation of semantic technology on top of a wiki engine.
Supporting a very popular wiki (the engine behind Wikipedia), this extension allows the user to create annotations to any page in a free-form manner. It’s the easiest and most user-friendly approach to creating some structure to a vastly unstructured pool of content. Once annotated, pages can now be organized in any way using templates and queries and the content of any or all of these pages can easily be reflected elsewhere through simple semantic queries, rearranged, summarized, tabulated, accessed by external applications, etc. etc. The idea is not much different from the queries and result sets that we are used to getting from relational tables. However, the depth and expressivity of semantic annotations goes beyond what we are normally able to express in relational models (of course!! another topic) and the interfacing with external applications (both in and out; using RDF exports) is much easier.
This capability, in my opinion, makes the wiki a very dynamic and valuable application.
For our purpose, we have taken this base foundation of MediaWiki + SMW and extended it in the zAgile Platform to provide some interesting and useful functionality for the Software Engineering domain, although the functionality would be equally relevant anywhere else (our focus is only SE, for now :)). We have integrated applications with it to both create content into the wiki as well as access content from it.
We have enabled the wiki to become a valuable 'Knowledge Repository' rather than a 'Content Repository' .
· First, we have extended (or constrained, depending upon your point-of-view) the general free-form annotation capability of SMW with well-defined (and expressive) set of ontologies for the Software Engineering domain. Thus, the wiki now has the 'semantic awareness' of typical SE concepts, such as Artifact, Project, Person, Role, Team, Process, Work Product, Task, etc. This set will continue to extend with richer and broader set of ontologies as we move forward. Rather than allowing the users to arbitrarily create annotations, we constrain the wiki's semantic 'openess' by importing (or referencing) very specific set of ontologies. This is mostly to ensure semantic integrity of the knowledge domain, as well as interoperability between tools (the core value of the zAgile platform). If you continue to create arbitrary 'semantics' in your content, it is unlikely that anyone else will understand the meaning. So constraining the annotations has been a critical part of our efforts.
· Second, we have developed tools that generate 'annotated' content into the wiki. Using zAgile's Method Composer, for example, you can define (or derive from) a methodology that may be relevant for your organization or project -- and publish it on the wiki with appropriate annotations that describe Lifecycles, Milestones, Tasks, Documents, Roles, etc. Using our Doc2Wiki converter, you can take MS Office, OpenOffice or PDF files and load them into the wiki in a WYSIWYG form but with annotations that describe basic properties such as Creation/Modification Dates, Author, Subject, Title, etc. but also allow you to extend the semantics of the documents based on the type being uploaded (an Invoice, a Status Report, a Project Plan, etc.).
With these applications and widgets generating 'annotated' content on the wiki, you can now begin to organize this content using simple queries. For example, a set of pre-defined templates (with embedded queries) can now automatically generate My ProjectX page on the wiki. A page that includes sections containing My ProjectX Milestones, Processes, Phases, Teams, Roles, Status Reports, Invoices, Artifacts (and types), etc. None of this needing to either be organized or maintained manually. Based on the templates and queries, any combination or composition of pages is possible, thus allowing you to create virtual binders of projects, products, people, processes -- at will -- and share it across the organization. This has been done before by many others using wikis, but only manually, and most of the time, such content has been incomplete and out-of-date. Always a good start but not sustainable enough through the project lifecycle, therefore, generating lots of useless content.
And of course, this search engine exists outside of the wiki (as a portlet) -- another example of the ease of interaction of semantic data with external apps.
-Sanjiva
Prague, Jan ‘08
Well, at least wherever you can get a cell phone signal. I recently tried a couple of IM apps for the Blackberry (Pearl) from ShapeServices which support Skype (IM+ for Skype) and all other protocols (IM+ All-in-One). Since at zAgile we run our own chat server, I finally can stay connected with my teams in South America on either one of the two servers from wherever I am (which currently is Prague). The Pearl comes with a few standard clients (Yahoo, MSN, etc.) but these apps from Shape Services are really starting to become valuable for us because they are allowing us to stay in touch across different timezones and at all times. I can't overemphasize the value of such apps and gadgets for operating distributed environments. Beyond emails and sms, this is totally realtime and much more impactful (as IM is anywhere else). Add to this the iPod with Safari and WiFi support and I am almost productive anywhere I can catch a WiFi signal :)
-Sanjiva
Well, that was the billing. It was meant to be an event to discuss Web 3.0 "What lies on the horizon? Will Web 3.0 usher in the long awaited vision of the semantic web, as proposed by “Father of the Web” Tim Berners-Lee more than ten years ago? ", etc. etc, etc…
The event featured a panel of entrepreneurs with proven track records who are also currently engaged in various implementations of semantic web related technologies in their new ventures.
And to top it off, a moderator who is a 'Technology Forecaster/Futurist" -- someone well known, respected and published.
All that set the stage for an exciting topic. At zAgile, technologies associated with semantic web have played an important role in our growth and evolution. They are also core to our vision and platform. So obviously, an event like this with such high profile billing would be enticing. A great opportunity to learn about how others are applying these technologies and their perspectives and experiences with it.
Earlier in the week, I discussed this event with my team in Vitória, Brazil. Outside of the various international conferences on semantic web-related technologies (many of which are still very academic and research focused), I told them that this would be the event that profiles how people are leveraging these technologies in their ventures. They are well aware of some of the activities and contributions that have emerged out of Stanford (ex: Protégé from Stanford Center for Biomedical Informatics Research) so they were quite excited for this as well.
Alas, it didn't quite turn out as we had hoped or expected. On the contrary, it was downright pathetic. What started with some light-hearted humor quickly became an exhibition of some very smart people seemingly mumbling, fumbling, stumbling and bumbling their way through the key concepts. Their version of this "Improv" was to decide on the spot whether or not to discuss RDF (could one of you at least spell it?) OWL or talk about ontologies. No one seemed prepared to articulate the basic concepts or why they are relevant to the discussion. Even worse, their idea of the semantic web seemed stuck on making search work better than Google. I am sure this isn't all they think of the semantic web (at least I hope it isn't). There appeared to be total confusion about how to even define what constitutes an application as a Web 3.0! Wow! Before we get into the semantic web stuff, guys, let's first define the semantics of this forum. Does it have a purpose, an agenda, a theme, an organization, an audience, etc. etc.? It would have been a good start. Turning an expected discussion on an emerging technology into an Improv comedy routine -- NOT a good idea. Sorry. I didn't pay for that.
Whether the moderator had a hidden agenda, or there was a moral to the story to be revealed at the end or the whole show was just an improvised display to prove that semantic web is far from being realized as a practical vision -- I don't really know. I guess I got fed up way too early and felt compelled to make my exit. I had made an hour long trip to get to this event and with another hour looming ahead, I could not afford to waste any more time here. This truly was such a pathetic display of conducting or moderating a discussion related to some very promising technology.
I have been to VLAB events before (see my earlier blog titled Zimbra and AJAX at Vlab's Feb Event) and have appreciated the topics and the presentations. But this unfortunately left a very bad taste. This event is not supposed to be a crapshoot. While VLAB just got SUN and Morganthaler as their latest sponsors, they lost one member of their audience.
-Sanjiva
zAgile's Lucas de Oliveira Arantes and Felipe Frechiani Oliveira presented two papers (SCM and Collaboration Ontologies) at this year's WOMSDE (Workshop on Ontologies and Metamodels for Software and Data Engineering) in João Pessoa, Brazil . WOMSDE was held in conjunction with SBES 2007 (Simpósio Brasileiro de Engenharia de Software aka Brazilian Symposium of Software Engineering 2007) -- the biggest such event in South America.
Evolving a Software Configuration Management Ontology
Lucas de Oliveira Arantes (zAgile Inc/UFES),
Ricardo de Almeida Falbo (UFES), Giancarlo Guizzardi (UFES/ISTC-CNR)
Towards a Collaboration Ontology
Felipe F. Oliveira (zAgile Inc/UFES),
Julio C. P. Antunes (zAgile Inc/UFES),
Renata S. S. Guizzardi (UFES)
http://www.sbbd-sbes2007.ufpb.br/en_index.php?section=womsde-papers
Local TV coverage in Vitória . They are talking about the semantic web, and of course an entrepreneur from US :) visiting the software research labs. Shown are the zAgile team members, Giancarlo and of course myself.
In discussions with Professors Ricardo Falbo and Giancarlo Guizzardi -- two of the thought leaders in the domain of Ontologies. UFES (Universidade Federal do Espírito Santo) is one of Brazil's top technical universities.
(I found this post on craigslist while I was looking for an apartment in Buenos Aires).
PHP5 & Ruby on rails (web2.0)
Reply to: job-265251708@craigslist.org
Date: 2007-01-19, 6:19PM ART
I am looking to assemble a team of developers in Argentina (must be in South America, no INDIANS!) This team would work together for a minimum 6 months. Must be available (all of you) to chat via skype, MSN/AIM/YAHOO/GTALK, and must not be working fulltime anywhere else.
We are trying to assemble a team of 2 or 3 maybe 4 if there are enough qualified candidates. The team will work on php/mysql and RoR development projects building Software as a service style programs.
Please send me examples of your sites, you do not need to be extremely experienced, just be fast, efficient, and responsible. Recent college graduates are also welcome if you can demonstrate strong fundamentals.
PostingID: 265251708
PS -- It is only ironic since there is an Indian (THAT BEING ME!!) in South America incubating a silicon valley software company (perhaps one of the very few who have ventured in this direction).
PPS -- No, I didn't get lost trying to find India. That is old history. I came here on purpose.
--Sanjiva, Buenos Aires, Feb 27, '07
An online posting from Universidad de Catolica, Esculela de Ingenieria bulletin board:
2006-12-07 11:35
"El lunes 11 de Dic. en la sala Javier Pinto (DCC), se presentarán dos charlas a cargo de Antonio Cansado y Sanjiva Nath. Antonio es ex-alumno del DCC y actualmente alumno de doctorado en INRIA-Sophia Antipolis, Francia. Sanjiva Nath, es un conocido emprendedor de Silicon Valley con más de 20 años de experiencia en proyectos de gran envergadura (Ej. IBM Trigo) y que viene a nuestro país con ánimo de crear tecnología para ambientes de Ingenieria de Sofware."
12.00 pm: "zAgile's Product Suite for Software Development" (in English)
Sanjiva Nath, fundador y presidente de zAgile Technologies
Software Development organizations tend to "lean on" or "crank up" processes in the delivery cycle in an attempt to achieve higher predictability. For all the obvious reasons, achieving predictability becomes the key initiative for the product delivery teams as well as the key source of concern for the executive team, the board, customers and other stakeholders outside the delivery organization.
By predictability, I refer to the questions of 'when' software will be delivered, 'what' it will contain and 'how' it will perform for the end users.
Does cranking up process alone provide this predictability? I don't think so. Besides process, there are other forces also at play in a software development lifecycle that influence the delivery predictability and the ultimate outcome.
In fact, I believe that a software development lifecycle is controlled by four significant forces that simultaneously act on and influence the lifecycle in terms of time, content and quality (the "what", "when" and "how" of above) of software. These four forces are:
Quite analogous to the Law of Parallelogram which allows us to measure the resulting impact in magnitude and direction of two forces acting on a body simultaneously, I am proposing the Law of Software Development, aka the Law of Four Forces (or Sanjiva's Law of Software Development :)). These four forces simultaneously act on the development cycle and the Law of Software development provides a means to measure (or predict) and influence the outcome -- a product of time, content and quality.
The rationale for treating these as forces or vectors is that each has its own influence, also in magnitude and direction, towards the overall lifecycle. An optimum delivery of software with respect to time, content and quality requires a deliberate and proportional balance between each force. Conversely, an out-of-balance scenario, unless deliberate, can potentially affect the efficiency of the overall delivery effort and significantly impact any one or all of the outputs mentioned above.
Furthermore, similar to a parallelogram, a weakness in one force can potentially put a significant burden on the others in an attempt to achieve the desirable (or any) outcome. Agile methodologies are a clear example of the increase in collaborative tactics to overcome the deficiencies in the Knowledge force. Here, the rapidly evolving business requirements and lack of sufficient knowledge ahead of the development cycle warrants added focus (or weight) on the Collaboration and Process forces by creating various iterative delivery models, directly engaging end users, trading off formal documentation, and so on.
Agile, then, is an example of a deliberate manipulation of other forces when Knowledge is known to be a weaker influence. In many real-life situations, there isn't a clear assessment or acknowledgment of the weight or impact of any of the four forces on the software development cycle and therefore the impact on the others is more accidental and uncontrolled. I have seen many situations where unplanned and unwarranted increase in collaboration results as a way to accommodate lack of Process and Knowledge forces. Here, the predictability falls off because the organization has not clearly assessed the forces at play and their individual impacts.
So the lesson here is towards gaining a deeper understanding of the Law of Four Forces as it influences predictability of software development and delivery in your organization and managing each one to improve the overall predictability and the outcome.
-Sanjiva, Bangalore, August 19, '06
**In his book "The Laws of Software Process", Philip Armour asserts that software is not a product but a knowledge medium. He formulates his Laws of Software Processes in the context of "the knowledge that is available for implementation into an executable system".
PS -- The interaction of individual particles and behavior of large-scale matter in the universe is also controlled by Four Forces (not necessarily those mentioned above) -- in this case, Gravity, Electromagnetism, Weak and Strong Nuclear force. Coincidence? I think not. It is another one of my attempts at 'Unifying theories' ;)
It’s a bird! it’s a plane! … no its Web 2.0.
In the past few weeks, I have attended a few presentations on Web 2.0 at various valley forums (TIE, Venture Labs, etc.). In all of these, the definition of Web 2.0 seemed pretty arbitrary, often driven by a 'personal agenda' (i.e. whatever a panelist is peddling that evening), or professional alignment. But what really is Web 2.0 never became clear or consistent, even when some of these folks were challenged to define it--and that included the analyst on the panel (i.e. not just the peddler).
Are people confused by it or are they seeing it as an opportunity to define their own purpose? Is Web 2.0 an abstraction for anyone to sell whatever as they see appropriate? Is it a catch phrase or is there a specific problem being addressed through a set of related technologies?
I walked away either seeing some cool technology (ref: Zimbra) or realizing the success of paradigms (Wikis in the corporate or enterprise world, ref: SocialText). But I also walked away frustrated because no one could provide a satisfactory definition (some even avoided it) of Web 2.0. What must I expect the next time I attend a Web 2.0 forum?
So, I decided to offer a few possibilities on what it could be, based on all that I heard, saw and read. You can take your pick because it seems that any of these definitions will apply.
According to one billing, Web2.0 is the next-generation of internet applications and services, such as Blogs and Wikis. Hmmm! I don't think so. There is nothing 'next gen' about either Blogs or Wikis. The fact that we are only now realizing that people want a simpler way to publish and share content doesn't make it 'next gen'. It simply means that the first gen was over-engineered because of our lack of understanding of what anyone wanted out of this technology. Overcoming initial failures does not become 'next gen' (or 2.0). I think we have regressed with these paradigms. I think that they are a fad and quite short-lived. (See future blogs for more details on why).
I also think that we should not care about Web 2.0. There are definitely some exciting applications emerging that exploit the web and that offer us some very interesting opportunities or insights with respect to where we must shift our creative focus, but we don't need specific labels to validate their existence or value. We simply need to recognize them on their own merit.
-Sanjiva, Orinda, March 29, 2006
Is AJAX a 'cool' technology or something far deeper that is capable of spawning or facilitating 'new disruptive models'? Is it a key definer or component of WEB 2.0? Does it offer sustainable value, particularly to the enterprise community?
These questions were raised and addressed this week at the VLAB (Stanford-MIT Venture Lab) monthly event. The topic was engaging enough to compel me to offer my own perspectives on these questions with a focus towards the 'Enterprise'.
The most compelling pitch for the propositions above came from Scott Dietzen's demo of the Zimbra product. I could hear oohs and aahs from all corners of the auditorium. Zimbra has done something quite spectacular to the email application by providing a very collaborative and rich user-interface using AJAX. This is definitely a 'next-gen' email client.
But. (here it comes).
While people saw cool AJAX-driven UI 'stuff', I believe that it is the back-end integration (via Zimlets) that ultimately delivered the functionality that 'wowed' people. So this wasn't totally about AJAX, although its potential for a rich UI is not being debated.
On the same thought, discussions through the evening also made me wonder whether this (i.e. AJAX) is yet another 'fad' or something with sustaining value, particularly as it relates to the Enterprise. The evening brought back memories of other technologies of the past (as Om says--'a bubble ago), that were also equally exciting and promising in their day but somehow failed to make 'satisfactory' inroads into the corporate community. Portals, in particular, come to mind right away but there is a long list of others.
I have come to believe that these failures of the past (and possibly near-term future) were as a result of our inability to provide:
So, I believe that until we resolve these challenges, we need to exercise cautious optimism in claiming technologies that are 'ready' to revolutionize the 'Enterprise'.
BTW: This event was clearly VLAB's most exciting, entertaining and engaging one that I have attended thus far. Scott's presentation was highly charged, passionate and very exuberant. I hope they really succeed with their vision and the business. The panelists had great chemistry and obviously Om Malik (first time I have heard of him) brought a brash sense of humor to the forum--so overall a great evening for technophiles (at least for me).
http://www.vlab.org/Htdocs/001.cfm
-Sanjiva, Orinda, 2/22/06
At a recent TIE monthly meeting, the topic was "Top 10 Software Predictions for 2006" (an obvious one for this time of the year for any domain of interest). The panel proposing these predictions consisted of Ann Winblad, Gary Morganthaler and Yogen Dalal -- some of the leading valley veterans. The topic reminded me of the weekly NFL predictions hosted by sports-oriented programs. Ann Winblad summed it well when she said that the VCs are opportunists (as opposed to trend-makers) and it was up to the entrepreneurs to establish the trends and feed the predictions. It makes sense. Why are we spending 2-3 hrs on a Tues nights listening to a few VCs making their predictions for how the next twelve months will pan out. It isn't likely that anyone will walk out of the session and begin reconstructing their biz plans based upon these inputs. More than likely, I guess people want to hear what is on the minds of these veterans these days and perhaps use that as a way to schmooze with them (and/or get inspired) :)
Anyway, it was quite intriguing to hear how these folks viewed the upcoming trends in the industry. For example, they believed that enterprise software has evolved towards composite applications and belonged to large players. They did not see any opportunities for innovations in this space. Curiously, there wasn't much dialog on the productization of open source (ref: SpikeSource.com).
Google was a focus of the discussion in terms of its tactics for producing rapid innovations. There were speculations regarding what it (and Steve Jobs/Apple) will do next in their respective spaces. A few even wondered whether the Google stock will get to $500 in 2006 (obviously not relevant to the theme but clearly on people's minds).
Local WiFi networks, mobile devices, set-top boxes (as hubs in the living room) and peer-to-peer technologies (bitTorrent) also dominated much of the discussions.
This was my first visit to a TIE event. I was impressed both with the organized sessions as well as with the audience. A 'must attend' in the future.
Sanjiva, Orinda, Dec 3, 2005.
http://www.tiesv.org/Home/AboutTiE/index_html/view_document
http://www.bittorrent.com/introduction.html
Efficiency in software process and delivery is achieved in large part through our 'qualitative' understanding and construction of the plan. This is in stark contrast with the common propensity to focus on the mechanics of delivery which makes everyone involved acutely aware of the project milestones, processes and tasks but takes the focus away from the strategy behind the plan, risk assessments, mitigating factors and the navigational choreography needed to achieve 'success'.
Over the past few decades, there have been at least three generations of 'process wars' as the software processes, methodologies and technologies evolved to meet the accelerating needs of the technology and society. With each one of these paradigms evolved a generation of tools and infrastructure--all supporting optimizations in the development and delivery processes.
There is no doubt that these evolving processes and tools contribute towards making a development team efficient in its delivery--but--BUT--it's not enough.
At all levels, whether an engineering executive, a project or development manager or an engineer--everyone needs to have a strong (relevant to their individual roles) understanding of the tasks, plan and project at hand. None of the tools, technologies or platforms that are available on the market today support or enforce this level of analysis or understanding. This in turn allows all key participants in the software delivery to resort to regulating the mechanics of the delivery--in other words--becoming and acting like robots.
Robots cannot deliver software; humans are having enough trouble with it.
Given that software development is a precarious balance of 'art' and 'science', primary focus on delivery mechanics and tools increases delivery predictability BUT also an overall failure of expectations in the end. If we have not understood the overall strategy, plan or risks, I assert that we cannot succeed in delivery (i.e. satisfy our customers) by focusing only on the mechanics of execution, no matter how precise we are in meeting the delivery expectations and 'defined' goals.
Sanjiva, Orinda, CA, Nov 18, 2005
PRELUDE: This is one of a number of briefs that focuses on my perspectives on offshore software initiatives and specifically the keys towards achieving success with them.
The challenges inherent in software development, which have led to continuously evolving processes, methodologies and tools become multi-dimensional and more complex when the project is outsourced to a partner or a team in a different geography (see my earlier entry titled "Outsourcing The S-Curve", http://sanjiva.typepad.com/thescurve/2005/10/outsourcing_the.html). In the offshore context, you face a number of other factors, such as culture, language and time zone difference, that heavily increase the complexity of the undertaking and influence the mechanics of execution of these projects.
Why do so many offshore projects 'fail'? Why do people sometimes refer to offshore as "the valley of despair"? Why do we keep trying? In this series, I provide some of the answers to these questions indirectly by addressing the keys that are critical to succeeding with these initiatives.
Setting A Common Objective (contd.)
Why is it so important to set an objective for your offshore initiative (or at least set some objectives and their relative priorities)?
As I indicated in an earlier Blog entry, the strategy for outsourcing or "off-shoring" and the execution mechanics are heavily influenced by the specific objectives that are set and the results that are desired by the organization.
Here are some of the areas where the objectives influence the strategy you develop and the ways in which you execute the relationship and the offshore engagement (some are more obvious than others):
Geography --Where do you go to look for a partner? If it is Toronto, Canada then you are not likely to "Follow-the-Sun" (at least not for more than a couple of hours) if your local team is in California. Geography also influences costs. Beijing may be cheaper than Bangalore which may be cheaper than Toronto, etc. (although the rates alone do not ensure cost savings).
Partner--The type of partner you choose is influenced by the type of expertise you want to leverage (language translations, performance or platform QA, integrations with tier-1 ERP solutions, etc.) and/or to build, i.e. build a team that needs to become proficient with your application, domain and customers. Similarly, if you desire to scale the team quickly then 'offshore' does not need to be a parameter in the equation. If that is the objective then nothing specifically relevant is gained by separating the team by 12 time zones unless there is a significant advantage in recruiting desired talent in a particular geography.
Parnership model--Is it a one-time project or a task-level engagement (i.e. you develop the software and the partner performs the translation or QA or platform testing or …), or is it a team that you build that will be responsible for end-to-end product development that will dictate the type of partner that you will select for this venture. Moreover, it will also dictate the engagement model, since a number of more established offshore service providers support a number of different engagement models depending upon your specific objectives.
Strategic Engagement--Is the assignment project-based or a desire to build a team that will be an integral part of the organization. Will the team eventually become part of the organization? Will it use its own tools and processes to delivery the results or integrate and incorporate yours (referred to as Build-Operate-Transfer model)? Will you eventually acquire the team?
Cost Saving--Cost saving can likely happen in two scenarios -- 1) when you are leveraging expertise, technology, process or tools that exist; 2) when you make long-term investment and measure it in the long-term. It doesn't happen if you spend 3x the time training a new team to deliver something that is likely to be a one-time deliverable.
Team Culture and makeover--Is the team only going to take over maintenance or engage in new product development or engage in R&D activities? This influences the type of investment needed into the partner, the team, its engagement with the local team, its makeover (innovation versus delivery focus), processes and skill sets.
There is a lot more to this but at least this list helps one appreciate the need for a common set of 'objective(s)' for the offshore initiatives.
Sanjiva, Orinda, CA, Nov 5, 2005
PRELUDE: This is one of a number of briefs that focuses on my perspectives on offshore software initiatives and specifically the keys towards achieving success with them.
The challenges inherent in software development, which have led to continuously evolving processes, methodologies and tools become multi-dimensional and more complex when the project is outsourced to a partner or a team in a different geography (see my earlier entry titled "Outsourcing The S-Curve", http://sanjiva.typepad.com/thescurve/2005/10/outsourcing_the.html). In the offshore context, you face a number of other factors, such as culture, language and time zone difference, that heavily increase the complexity of the undertaking and influence the mechanics of execution of these projects.
Why do so many offshore projects 'fail'? Why do people sometimes refer to offshore as "the valley of despair"? Why do we keep trying? In this series, I provide some of the answers to these questions indirectly by addressing the keys that are critical to succeeding with these initiatives.
Setting A Common Objective
Success with your offshore initiatives will begin with an agreed-upon set of objectives and priorities of these objectives by key stakeholders in the organizations.
I am a strong believer that any initiative must begin with a single primary objective. The primary objective that you set for your offshore initiatives has a significant influence on the strategy and mechanics of execution throughout the life of the initiative (I will elaborate in a future entry). The emphasis here is on a 'single' (or primary) objective because I have often found that multiple objectives (or agendas) exist within an organization for 'offshore-ing' software development and more often these tend to have competing (if not conflicting) priorities, disrupting influences on strategy and execution and vastly differing expectations of results. Of course, as stated earlier, multiple objectives can be managed through priority setting but there should still be a single goal for why this needs to be undertaken.
So, why do you want to develop software across geographies, time zones and cultures?
I can think of several reasons (not in any relevant order) along with the common rationale, wisdom or belief associated with each:
Development costs are considerably less overseas
You can hire faster, build and expand teams more rapidly
To deliver more product and features in the same amount of time
The need for the 'home team' to focus on 'cool' stuff
Developers/testers working in multiple timezones on the same projects will give us an extended cycle in a single 24-hr period
R&D in one zone, product development in another, different teams, different processes for each
The grunt work can be handed off to someone else while the organization focuses on product development
Increasing QA cycles or bandwidth through specialized offshore teams
Well!! They believe in it so why not, even though we may not be clear about what we want to accomplish
They are not our salaried employees but they can be part of the overall headcount if one is to measure our assets
Not all of these are necessarily in the same class of objectives that people often set for this initiative but the key here is that stakeholders within an organization will have different expectations depending upon their perspective of the reason for the initiative. It is most critical to align everyone to the same understanding of the goal(s) that need to be achieved through this venture. They need to understand it, agree to it and support it. This applies to the Exec team, the product development team, the sales team and everyone else.
In the next blog entry on this topic, I will focus on ways in which these objectives can alter your strategy and execution mechanics.
-Sanjiva, San Francisco, November 5, 2005
In my experience, outsourcing software projects (whether onshore or offshore) has more often than not failed to meet delivery or cost expectations. I have seen this phenomenon when working with major consulting firms as well as with smaller boutique firms, whether the project teams were located in the same building or a dozen time zones apart, and I have seen it for projects of all sizes and complexities. I assert that a key contributor to this failure of expectations is due to the fact that almost all of these projects have had non-repeatable characteristics (new features, new paradigms, new teams, etc.) and we fail to account for (or sometimes do not want to accept) the factors related to the S-Curve when we pass on the responsibility of these project to a third-party.
Of course, this failure to meet expectations is not to be equated with a failure to deliver the end result (a product or successful project), since competent teams and leaders find a way to make that happen. But the costs and/or timelines often meet a significant mismatch in expectations.
So why is The S-Curve so significant, especially when dealing with outsourcing?
I believe that through experience and daily interactions, we develop an implicit grasp of the functioning of the internal teams and adjust our expectations appropriately with regards to the processes, factors affecting delivery and eventual outcome of projects. But none of this is possible with a third-party since there isn't the same amount of visibility (if any) into these factors. This forces even a greater emphasis on identifying, quantifying and including the factors into the delivery plan. This process is obviously easier if you are dealing with an experienced partner with an established team than with one that is about to bring a team together specifically for the sake of the project.
With respect to the type of factors to be taken into consideration for these projects, refer to the article by David Anderson titled "The S-Curve Explained" (http://bdn.borland.com/article/0,1410,32411,00.html) in which he points out a number of factors that contribute to The S-Curve phenomenon both at the start (Team Formation, Knowledge Sharing, Tools, Environment, etc) and end (project integration, bugs, etc) of the project.
While his focus is towards management of Agile Techniques on software projects, the concept can be generally applied. You may even add or take away from this list based upon your own experiences and team maturity. The point here is simply that these factors need to be applied to the plan and measured (however quantitatively feasible) throughout the project's timeline (and during post-mortems) to minimize the mismatch in delivery expectations. Post-mortems would facilitate in identifying key improvements for the next phases of the project, if the relationship and work with the same partner are to continue.
Sanjiva, San Francisco, Oct 30, 2005
Often in the context of managing software development and even the business around it, we tend to invest much more time and effort focusing on the process and mechanics of software delivery and much less on the content itself. As a consequence, there is insufficient investment into the product definition (or elaboration) process and resulting unpredictability with regards to the success of the product in the marketplace (or its alignment with customers' needs). While the organization focuses on the dates of delivery as the key milestones to achieve and celebrate, it fails to set specific expectations or measurement criteria with respect to what the product needs to achieve in the market or with customers. I have rarely seen processes or operational structures in place that can 'directly' facilitate such measurements or accountability.
Similarly, people are more apt to accept the failure of certain features in the marketplace ("customers and markets are changing too fast and product couldn't be delivered yesterday when we really needed it") than delays in shipment. The exec responsible for feature/content of the product will often have a clear idea of what they could easily sell in the market today and even support the need to invest more heavily in engineering to achieve the "immediate" delivery needs. But they are less clear or committal towards even the near-term future. In the absence of the sales team meeting its quarterly revenue goals, the typical response would be "if we had x features today, we could easily make the quota". Of course, when those features are delivered, the target changes to the next delivery date on the roadmap (or so it seems, at least to me :))
As all this attention and pressure diverts to the engineering team, it is easy for them to feel that the organization is not taking the responsibility for developing enough of a vision or strategy (or a commitment towards this strategy) against which to focus its execution tactics. The behavior of the sales and marketing teams is often viewed as 'deflection tactics' to keep the pressure off of them.
Recently, I came across a presentation by Phillip Armour titled "Of Zeppelins and Jet Planes" in which he contends that software is a knowledge store and not a product, therefore, software development needs to be managed as a knowledge acquisition process and not a product production process.
While Phillip appears to focus on development processes and methodologies, I can easily relate the argument to changes in operational and organizational tactics and behavior to place a deeper emphasis on the decisions regarding 'what to build' rather than the obsessive focus on 'how' to build it'.
This is not to suggest that there is always sufficient clarity with respect to the specific requirements that constitute a product definition or direction. As Phillip points out, this is becoming more and more of a moving target, therefore, our methods must allow us to deal with such a moving target. My point here is simply that this is something the organization must recognize and react to and not just the engineering team.
http://www.corvusintl.com/biograph.htm#Phillip%20Glen%20Armour
Sanjiva, Mallorca, Oct 21, 2005
It is often difficult to appreciate the difficulty that we have in communicating with each other. I presume that this is primarily because we take communications for granted and defer the responsibility for comprehension to the other party. Conversely, we tend not to spend much effort in helping others understand the level of information that we seek from them to understand situations. I feel this way because I have found lots of situations where people have struggled with ineffective communications and very rare instances where anyone has stepped up to focus on making it more effective.
People face communications challenges often and everywhere; they face them in relationships as well as in professional settings. Communication becomes even more difficult when executive teams are assembled rapidly (in the process of re/building companies) and they need to manage their respective goals while attempting to influence the overall direction of the organization.
Within the context of a team, the difficulty in communications is compounded by a number of factors. Some of these include:
These factors do not all weigh equally in influencing the degree of the gaps that exist within a team. Moreover, I have come to realize that some of them (leadership, strength of the team and clarity of goals) can more than make up for others.
Communications needs also differ from one individual to another. While one CEO insisted on his team structuring their communications in the S-C-R (Situation, Complication, Resolution) mode ("we have x customers with y workload and are unable to support new efforts without z impact, therefore possible scenarios include …."), another one wanted the R-C format (ex: "just tell me that you need additional headcount to support the needs of new customers"; no additional details needed unless asked for).
[In one company, the leadership team invested in the Forte Institute's Interpersonal Communications System (https://www.theforteinstitute.com/introduction/monograp.pdf)
and a consultant to help us appreciate the difficulty we were having in understanding and consequently working with each other. Through this profiling scheme, it was determined that of the thirteen members on the team, yours truly stood alone in the top left quadrant (Dominant/Conformist -- implying someone who deliberates, is cautious and focuses more on the execution details and less on the big picture) while the other twelve were mostly Dominant/Extroverts -- more apt for the entrepreneurial types, not focused on consequences of their actions or execution details but more focused on the big picture and creative thinking).
Not to indulge into the details of Forte's science or mechanics, one of the things that became clear to everyone was that my deliberations over key technology decisions had often been mistaken for indecisions. Similarly, being on the top left quadrant meant that I tended to focus a lot more on the execution details of specific decisions and recommendations and tended to relate our goals in the context of those details--clearly creating a mismatch in communications style with the others on the team.
Beyond just appreciating our differences in personas and communications styles, I am convinced that there was sufficient depth and detail in such an investment to allow us to improve the overall effectiveness of our communication, should we choose to apply the needed effort. We didn't and the results of this exercise proved futile and a wasted experiment.]
When faced with these circumstances, I have found that people will either resort to the comfort of familiar faces, choosing to work with peers and subordinates from prior organizations -- because the existing working relationship seemingly reduces the overall need for communications or start placing significant emphasis on details, facts and conclusions (and increase the overall quantity of outputs) rather than more qualitative assessment of situations.
And this becomes even a bigger challenge when managing remote teams (regardless of their mandate, i.e. whether they are engaging in sales or development or any other activity). Here the geographies, time differences, language and cultural factors became much more pronounced. While we spent countless hours communicating status report, our understanding of the situation, status, risks and potential actions become increasingly limited. Lack of effective communications here does not in itself lend to project failures but it reduces our ability to understand and manage the situation, thereby increasing the risk of potential failures.
In this context, I applied one simple technique with my team that worked quite effectively for the type of information that I sought from them, although it required trust and patience on both sides and mostly my needing to understand what quantity and quality of output I needed from them. Rather than focusing on the output itself for various status reports, proposals, etc. that they would share with me, I spent more time on each line item asking them three questions:
As an exercise, we went through several presentations that they had for me and worked diligently through the line items. The process was tedious and iterative but began to produce effective outputs. It also forced me to focus on all the details and continue to provide them with relevant feedback so that they knew that I was focused on trying to understand the inputs. And lastly, at the end of each session (or call), I would play back for them my understanding of the status or proposal. To the extent that I could absorb it (in abstract terms), they got both encouraged and excited about their efforts.
A few years ago, one of our board members had forwarded an article to me titled "The S-Curve of Software Development". I have since lost the reference but I remember the overall message--that process introduction into a relatively young and immature development environment has some early costs with respect to the throughput of new functionality delivered over time, but the investment pays off as the scale and speed of new development increases as these processes are applied.
This article was brief and its message fairly clear. At an abstract level, it is also something that people have been trying to communicate for decades through various channels. In this context, given a small startup with a young engineering team, it served to reinforce certain development paradigms and associated consequences on delivery plans and timelines.
For early stage software companies, the problem is multi dimensional and seemingly much more complex mostly because there is less clarity with respect to its overall mission and a greater need to be reactive, nimble and adaptive. The problem involves more than negotiating or balancing the effects of process improvements on feature introduction. When we are still attempting to define our market, products and customers, the clarity and definition of features, their priorities and complexities are all in constant flux. It is analogous to the 'mathematical' challenge of trying to solve one equation with many unknowns.
So while everyone finds themselves at some point on the S-Curve, there isn't a simple equation or recipe that plots the optimal path through it. In my view, it has mostly involved applying intuition and experience and factoring in the maturity and leadership capability of the executive team and their ability to commit to a specific direction for the organization.
I had dutifully passed this article on to some of my peers, needing to drum up support for our challenges in the development cycles. As always, such communication generates occasional sympathy towards our plight but fails to set any concrete expectations or affects any specific behavioral changes, decision trees or execution paths in the executive ranks. In retrospect, I realized that communicating abstract messages was not a productive exercise. Not only were my messages, such as this one, lost on the team, but none of us always understood each other's challenges well enough (perhaps because each one of us was often communicating in similar ways). Such reflections have since made me more aware of the need to deliver more concrete messages that are specific to the actions, decisions or behaviors that I am expecting to influence within the team and the organization.
Through this blog, I hope to share some of the challenges, successful techniques and more importantly--failure scenarios that I experienced (and managed) while navigating through the S-curve.
Where are you on The S-Curve?
-Sanjiva, Oct 15, Pt. Alcudia, Mallorca
Recent Comments