Tuesday, March 29, 2005

Yahoo 360

Today I started testing Yahoo! 360 thanks to Kent and have 50 invitations to share. Just drop me a note if you need an invite. I'll be happy to share.

Friday, March 25, 2005

Software Tools for Knowledge Management

KM should be supported by a collection of technologies for authoring, indexing, classifying, storing, contextualizing and retrieving information, as well as for collaboration and application of knowledge. A friendly front-end and a robust back-end are the basic necessities of a software tool for knowledge management. Figure below shows my knowledge management system architecture.

Posted by Hello

The lowest layer handles sources of explicit knowledge. Explicit knowledge resides in repositories as documents or other types of knowledge items (e.g., e-mail messages, and database records). Standard authoring tools (such as word processors) and database man-agement systems (DBMS) support this layer. File servers, e-mail tools and Internet and intranet services support the infrastructure layer; document and content management sys-tems handle knowledge repositories. Knowledge must be organized according to the con-text of each organization, based on a corporate taxonomy that creates a “knowledge map”, supported by classifying and indexing tools. Tools also support, at the next level, data and knowledge discovery and collaboration services. Through portals, knowledge can be distributed as needed by different users and applications, such as e-learning, competence management, intellectual property management, and customer relationship management.


It is difficult to draw a line between what is called information technology (IT) and tools for KM. In the above architecture model I consider KM to be the higher layers, starting at the “knowledge repository” level with IT constituting the lower layers, but this boundary is fuzzy. I concentrate on the upper layers of the architecture and view systems from a knowledge management perspective. I will discuss the needs of employees that use knowledge, the types of knowledge conversion that occur and a common set of features provided by systems from each category. The systems I selected to analyze are those that are widely used for supporting the KM layers of the above architecture. This survey is not intended to cover all systems on the market but rather to give the reader a sense of the various systems that are available for knowledge management.

Thursday, March 24, 2005

SQL Server 2000: How to License SQL Server

Many a times my clients have asked this question about licensing SQL Server. They get confused between Per Seat and Per Server option. Now here is a nice article on SQL Server Licensing, straight from Microsoft SQL Server 2000: How to License SQL Server. It says that "The Per Seat CAL model is likely the most cost effective choice in environments inside the firewall where client-to-server ratios are low".

When installing SQL Server for use with Plumtree Architecture, suggestion is to use Per Seat configuration. Also for Plumtree purposes we always need a mixed mode install of the SQL Server.

Wednesday, March 23, 2005

Yahoo To Give Webmail Users 1 Gig of Space

Yahoo announced that they will start to increase all webmail accounts to 1 Gig of space starting on April 1st. It will take about two weeks to finish the upgrade, but start watching your account next week. This will match the Gmail size of the email accounts and since it sounds like Gmail will be leaving beta and open to the public in April too, Yahoo thought it would get a jump on things.

Monday, March 21, 2005

The KM Cluster

Colabria writes about the KM Cluster. "The KM Cluster is elegant simplicity. The goal is mastery. The outcome is a harmonious whole." Its good to see that people are getting out of the one system KM solution mould. My paper "Software Systems Support for Knowledge Management" talked about a similar conglomeration of different systems to achieve successful knowledge management objectives in the organizations. Good to see that people have started to realize this and this will help in undoing the harm done to KM in 90s by terming every system that came out as the knowledge managemnet solution.

Friday, March 18, 2005

Reasons Why People Would Not Share Knowledge

A company’s culture reflects what people think and feel about the organization. Do they trust each other and their management, and are they willing to go out of the traditional bounds of the work culture to benefit the organization?

Software organizations need to realize that employees may feel possessive about their knowledge, and they may not be forthcoming in sharing it. After all, the knowledge they have is why they are valuable to the organization, why they are paid by the organization, and why they do not want to give that knowledge away. A term which is used these days is “capturing tacit knowledge”, which is similar to “picking your employees' brains.” This term sounds like software organizations are picking whatever their employees know. The “capturing emotion” might scare people into withholding their knowledge, thinking they will be expendable as soon as their employers have captured all of the knowledge they need. If this was the result of successful knowledge management, then everybody should be afraid of losing their job.

Here are several reasons why employees might be reluctant to share their knowledge:

1. Employees want the organization to be dependent on them. If they share the knowledge with others, they fear they will loose their “expert” status.

2. Some cultures encourage individualism and ban cooperative work and sharing. In such cultures it is harder to establish a successful knowledge management program. As a matter of fact, most Western schools do not encourage students to work together in the classroom or while doing homework, so most students have learned that sharing is cheating. In order to create a sharing culture, such values and manners have to be unlearned.

3. Employees might not be willing to share lessons learned because of their negative connotation. Lessons learned are based on incidents, some of which might be failures. Although the purpose is to learn from failures to avoid similar mistakes, many employees might fear that submitting negative lessons learned could be interpreted against them by management.

These are cultural issues that management must handle by creating a learning environment. Employees will, however, always be concerned with how management treats them, and the information that management has about them. Employees will react negatively if they fear that information will be used against them.

Tuesday, March 15, 2005

Opportunities for Knowledge Management in Software Engineering

There are several reasons to believe that knowledge management for software engineering would be easier to implement than in other organizations. To start with, it is clear that a knowledge management system needs to be supported by appropriate IT technology. While IT technology can be intimidating to many people, this is not the case for software engineers. Instead, they are already accustomed to, and probably willing to try, new software tools, as long as they believe the tools will help them do a better job.

The other obvious benefit with software engineering activities is the fact that all artifacts are already in electronic form
and, thus, can easily be distributed and shared. This is not the case in many other design-oriented industries in which the product takes some physical form. An example is interior auto design, which has so many similarities with software design that it can even use the same approaches for managing experience, but which also is different in that the end product is a physical artifact that cannot easily be sent across the world in a second.

The most encouraging fact is probably that knowledge sharing between software engineers already does occur to a large degree. A great example of peer-to-peer knowledge sharing is Google, formerly Deja's Usenet Archive, where software engineers and others share knowledge without any form of compensation. This is encouraging because it shows that software engineers are willing to share their knowledge. Another highly appreciated knowledge sharing forum is Sun’s support for Java programmers , which not only provides discussion forums and knowledge bases on Java technologies, but also offers technology chats with Java experts. These chats are even captured so that the knowledge they encompass does not get lost.

Monday, March 14, 2005

Challenges for Knowledge Management in Software Engineering

Implementing knowledge management in any organization is a challenge because of the time and effort that is required before it starts to return on the investment. Software organizations seem to have even less time than others because of the fast pace of the business. The lack of time is a direct threat against knowledge management. People often have no time to even search for knowledge. This cultural behavior has the effect that a long-term investment such as knowledge management and learning for the next project are not prioritized. Instead, project managers are interested in finishing the current project on time. As long as management does not allow the culture to change and does not allow employees to invest in managing their knowledge, knowledge management is likely not to happen.

Another challenge is the elusiveness of software. Unlike products of other domains, software is not visible (compare with buildings in the civil engineering domain). Invisibility leads to less reuse of the system. A developer, while implementing or modifying a system, cannot find out if the work has already been done. Many times, developers reinvent a system instead of reusing it, and this results in lower productivity. Another result is that software developers are not accustomed to reuse, which is a problem because the idea behind knowledge management is reuse of assets.

The most problematic challenge to knowledge management is that most of the knowledge in software engineering is tacit and will never become explicit. It will remain tacit because there is no time to make it explicit. There are very few approaches and tools for turning tacit knowledge into explicit knowledge, and most of the tacit knowledge is tacit in the most extreme way. Therefore, it is difficult to express and make explicit. A way to address this problem can be to develop a knowledge sharing culture, as well as technology support for knowledge management, never forgetting that the main asset of the organization is its employees.

Friday, March 11, 2005

Styles of Plumtree Drop Down Menu

Ever wondered why the Plumtree Drop Down Menus show you default colors irrespective of theme color you choose in the header portlets. The secret is that appearance of drop down menus are controlled by a different stylesheet, called PTPMMenu.css. To change the appearance of the menus, open this file in any editor, make the changes, save the file and restart your application server. Whatever people say but I can assure you that you won't get the desired result unless you restart your application server. Also, this file can be found at PT_HOME\ ptimages\ imageserver\ plumtree\ common\ private\ js\ jsportalmenus\ SomeNumber\ styles\ css

Thursday, March 10, 2005

Plumtree Content Server 6.0 Allows Community Customization on Published Content Portlets

This is going to be a big relief for a lot of clients. Until 5.0, Plumtree Content Server did not allow community customization on Published Content Portlets. This meant that people had to create a new portlet for every new community or else it would keep showing the same content.

This is going to change with Plumtree Content Server 6.0. It allows community customization on all the published content portlets. To make this work, open the portlet in portlet editor wizard and click on the EDIT button. After that go to the Advanced Settings area and scroll down to the bottom. Under Customization Rights you can enable or disable community customization for this particular portlet. Snap! Relieves a big headache and keeps the portlets to a minimum.

Wednesday, March 09, 2005

Top Seven Portals - Plumtree on the top

InfoWorld has done some good work in rating the top seven portals. They have also listed all the criteria these portals were evaluated on, as well as, how each of portals fared on those. Take a look at their results How the portals scored.

Undoubtedly Plumtree came on the top again. Here is what InfoWorld has to say about Plumtree Enterprise Web. "Plumtree Enterprise Web Suite’s Portal 5.0, Collaboration, Content and Studio servers work together seamlessly, giving users a fine portal experience. What’s more, Plumtree provides centralized security and administration of Web applications on different systems -- both within and outside the enterprise -- in one portal environment. This outstanding approach to Web application deployment yields simple operation for users along with lower development and maintenance costs for an organization."

Monday, March 07, 2005

The Need for Distance Collaboration

Any larger software development is a group activity. The division of work into phases often means that different groups are involved at the same or different time. Due to globalization, these groups are often spread out geographically and it is common that group members live and work in different time zones. Outsourcing of subsystems to subcontractors also results in geographically co-located teams that need to work together. These groups need to communicate, collaborate, and coordinate independently of time and place.

Knowledge Management can help solve this problem as it acknowledges the need to capture, organize and store knowledge, as well as the necessity of knowledge transfer. Communication in software engineering is often related to the transfer of knowledge. Collaboration is related to mutual sharing of knowledge. Coordination that is independent of time and space is facilitated if the work artifacts and their status are stored and made part of an organizational memory.

Saturday, March 05, 2005

The Need for Domain Knowledge

Software development not only requires knowledge about its own domain, but also about the domain for which software is being developed. Sometimes a new domain requires learning a specific technique or a new programming language or application of a new kind of project management technique. Therefore, acquiring the experience and skills needed in projects takes a long time. Even when the organization has been working on a particular domain extensively, the deep application-specific knowledge required to successfully build complex software is thinly spread over many software development engineers. Although individual development engineers understand different components of the application domain, building large and complex software like the Space Shuttle software for NASA requires integration of different pieces of domain knowledge. Most of the system engineers working in these complex domain software development units say, “writing code is not the problem, understanding the problem is the problem”.

There is no shortcut to learning. Domain knowledge that no one in the organization possesses must be acquired either by training or by hiring knowledgeable employees. Knowledge Management can, however, help organize the acquisition of new knowledge and it can help identify expertise as well as capture, package and share knowledge that already exists in the organization.

Friday, March 04, 2005

The Need for Acquiring Knowledge About New Technologies

Software development is becoming a more complex domain to master due to the constant change and stream of new technologies. The result is that it “is very difficult to keep the organization ahead in the competition”. Many industries have similar problems, but the software industry is probably worse than other industries due to the fact that the pace of change is faster.

The emergence of new technologies makes software more powerful, but at the same time “new technologies is every project manager’s worst nightmare”. Every emerging technology cannot be mastered overnight and it is extremely hard to accurately estimate the cost of a project when the technologies it will be using are new and unproven, and may even change during the project.

Lack of time causes a lack of experience, constantly pushing the boundaries of an organization’s development set of skills and competencies. When developers or project managers use a technology that is new to all team members of a given project, the engineers all too often resort to the "learning by doing" approach. This often results in serious delays of projects.

Knowledge Management fosters a knowledge sharing culture within the company that helps facilitate sharing of knowledge related to new technologies. Knowledge Management also makes the point that time should be spent on actively searching for knowledge both within the organization and outside. Knowledge sharing occurs within communities of practice and interests, which can help speed up the learning curve.

Thursday, March 03, 2005

The Need for Capturing and Sharing Process and Product Knowledge

Each software product and process is different in terms of goals and contexts. A single software development approach cannot be assumed for all projects or products. To develop software for the space shuttle is not the same as to develop software for a dishwasher. Software developers are often exposed to this diversity, which makes the software discipline inherently experimental and we constantly gain experience with each development project. “Knowledge emerges in work practices, often being defined by the first project to address the issues involved”.

Ideally, we would apply that experience to future projects in order to avoid mistakes and leverage successes. This does not always happen because often these work practices are not captured. Development teams work on similar kinds of projects without realizing that results would have been achieved more easily if they followed a practice adopted by a previous project. The bottom line is that development teams do not benefit from existing experience. Instead they repeat mistakes over and over again. This was manifested by the fact that “a large number of cases showed a lack of knowledge in the specific project, while this knowledge was actually available in the company”. These problems are also tied to the problem of transferring knowledge to novices in the organization.

Knowledge Management addresses the issues of capturing and sharing knowledge, while the problems of project diversity and product singularity make it clear that such a system must be flexible enough to encompass variations on the same theme. Most artifacts guiding a software project and developed during a software project can be represented as documents. Therefore, these are the main explicit assets of the software organization. These assets directly support the core business and must be managed so that they do not get lost. The problem of transferring knowledge from experts to novices is facilitated if the knowledge is readily captured, stored, and organized, possibly as documents. Therefore, Document Management is the main corner stone of our knowledge management model.

Wednesday, March 02, 2005

Motivation for Knowledge Management in Software Engineering

Software engineering is a complex business that involves many people working in different phases and activities. Constant technology changes make the work dynamic: New problems are solved and new knowledge is created every day. The knowledge in software engineering is diverse and its proportions immense and growing. Organizations have problems keeping track of what this knowledge is, where it is, and who has it. A structured way of managing the knowledge and treating the knowledge and its owners as valuable assets could help organizations leverage the knowledge they possess. This section discusses software organizations’ needs related to knowledge management. We also discuss some of the challenges that software organizations might face when they try to implement knowledge management, as well as some opportunities that might make implementation easier.

Happy Birthday Yahoo!

Yahoo! The company that redifenied the whole web is celebrating its 10th birthday today. Yahoo! holds a special place in almost all of our lives. Everybody who has ever been on the web must have been on the yahoo.com at least once. Probably not many people would remember how Yahoo used to look like when it came into this world 10 years ago. Take a look at Yahoo! home page from 10 years ago . I like Yahoo! and its an inseparable part of my day to day life. I just want to extend my heartfelt wishes on its 10th anniversary. I also wish many more of these decade anniversaries. Long Live yahoo!

Goa, Jharkhand and ... Bihar next?

Is this what democracy means to Congress. Is this what Governance means for Sonia and her coterie. Rediff anticipates this already and writes "Buta may do a Jharkhand in Bihar". NDA leaders went to the president as an outcry for this whole farce, but, President, what he can do? I don't think he will be able to reverse the decision in Jharkhand. If this happens in Bihar as well that will be a slap in the face of democracy. If for a moment I disassociate myself from NDA and think rationally then also I find it terribly wrong.

What Congress and Sonia are upto? Are they on a mission to remove any and all pieces of non Congress governments from the map of INDIA? Well if they really want to do that then focus on development and try to get eleccted during the elections rather than making backdoor entries through, now sullied, RajBhavans.

Tuesday, March 01, 2005

Knowledge Management in Software Engineering

The first argument in favor of managing knowledge in software engineering is that it is a human and knowledge intensive activity. Similar to other sectors, such as consulting, law, investment banking, and advertising, the main asset of an organization consists of its intellectual capital. Software development is a “design type process” where every person involved has to make a large number of decisions, each of them with several possible choices, as opposed to a “production”, or “manufacturing” process where, once a decision is made, many workers can carry out tasks without having to make further decisions. For example, a company must select what products to develop; a project manager must select the staff and must plan a project, which implies selecting a process and a set of methods and techniques to be used; a designer must select an efficient algorithm; a programmer has to decide on a function, or variables to use; and a tester must select a set of test cases. How do all these people make their decisions? On what are they based? Most of the time, decision makers rely on personal knowledge and experience, on their “gut feeling”. But as software development projects grow larger and the discipline moves from craftsmanship to engineering, it becomes a group activity where individuals need to communicate and coordinate. Individual knowledge has to be shared and leveraged at a project and organization level, and this is exactly what KM proposes. Knowledge management demystifies the individual hero and shifts the focus to collective creativity, exploiting the emerging behavioral idea – “none of us is as smart as all of us”. This complements software industry initiatives like the Capability Maturity Model, which tries to establish stable software processes that are independent of individual software engineers. Knowledge has to be collected, organized, stored, and easily retrieved when it needs to be applied.

The latest #BigData #Analytics Daily! https://t.co/IvIGAevVLn Thanks to @mauriciogarciar @hivemaster @EnvironicsA #bigdata #analytics

The latest #BigData #Analytics Daily! https://t.co/IvIGAevVLn Thanks to @mauriciogarciar @hivemaster @EnvironicsA #bigdata #analytics Source...