Wednesday, 30 June 2010

All things technology


Welcome to the June 23, 2010 edition of computing technology.


Jennifer Lynch presents 60 Awesome Search Engines for Serious Writers posted at AccreditedOnlineColleges.com.


Jena Ellis presents 10 Things to Learn in a Project Management Certificate Program posted at Online Certificate Programs.


Ariana Burgess presents New ActiveAgents for Windows and Mac make Napera Insight deployment even easier posted at Napera.


Mike Fitterer presents Changing the way the World Thinks About eSignature Services: Document Markup posted at DocuSign Blog.


Ariana Burgess presents Introducing the Evri Cocoa API posted at Evri Blog.


Jennifer Saksa presents Naming New Software Programs posted at NCH Software Blog.


That concludes this edition.

Submit your blog article to the next edition of computing technology using our carnival submission form.

Past posts and future hosts can be found on our blog carnival index page.



Technorati tags:

, .

Sunday, 20 June 2010

All Things Technology Blog Carnival - 20, June 2010

Welcome to the June 20, 2010 edition of computing technology.


Katie Gilbert presents Coming Soon to a Classroom Near You: 10 Things To Know About Robot Teachers posted at Best Colleges Online.


Heather Sanders presents 21 Infographics Every Computer Nerd Must See posted at Masters in Computer Science, saying, "Computers have become the lifeblood of our society. To that end, here are 21 infographics that any computer nerd can appreciate."


Canika Jackson presents 10 Must-Follow Twitter Accounts for Politics Junkies posted at Master of Public Administration, saying, "If you follow politics a little, or a lot, Twitter is the place to immediately gratify your desire to know what’s happening in the White House and outside of it."


nissim ziv presents Project Manager: Roles and Responsibilities posted at Job Interview Guide, saying, "The article provides general job description for senior project managers and discusses the responsibilities and requirements for project management positions.

This article can be applied for any organizational roles such as – product mangers, program managers, project leaders and IT managers."


AndrosenDsouza presents 10 Awesome Android Apps for Nurses posted at RN To MSN Programs, saying, "Your android phone puts all kinds of medical information at your fingertips, which not only helps you, but can help your patients also. These 10 Android apps allow you to access the latest medical research and diagnostic tools in seconds."


Brenda Harris presents 50 Free Resources for Controlling Your Online Reputation posted at Associate Degree Online, saying, "Now employers and universities can simply Google a name to see if the applicant is the right fit for them based on the things they do on the job and off. You never want to risk an opportunity thanks to your online reputation, so keep it in check with free resources that will make you look good on the web."


Victoria Kennedy presents Open Courseware & Public Domain Books on the iPad ? The Ultimate Guide posted at Masters Degrees, saying, "The iPad has an optional iBooks application that can be downloaded from the App Store, which displays books and other ePub-format content downloaded from the iBookstore. But, how does the iPad fare in the e-book department, and is it friendly to open courseware and public domain books?"


stanya16 presents 10 Killer Online Tools for Web Designers posted at Web Design Colleges, saying, "Web design has never been easier. Sure, knowing HTML helps, but with these 10 killer online tools for Web designers, anyone can get in on the fun – and take a few shortcuts."


Ariana Burgess presents Archive - Microsoft - Napera posted at Napera.


Mike Fitterer presents eSignature to Save Equity Residential Six Million Sheets of Paper Annually posted at DocuSign Blog.


Ariana Burgess presents Evri Blog posted at Evri Blog.


Leonard Gilhooley x presents 5 Excellent iPad Apps for ?Dr. Mom? posted at CNA Class Online, saying, "Apps that range from helpful reminders of health appointments to apps that can diagnose common ailments mean that Mom has an entire arsenal of medical knowledge at her fingertips."


Tom Tessin presents Top Android Apps for College Students posted at FCC Student Blog, saying, "The top Android applications that every student should consider when it comes to helping them with school."


Larry Brown presents Optimization part 1 posted at Computer Guides.


Case Ernsting presents The Office: A Study in Social Media Success posted at MetaSpring Blog, saying, "Getting started with internet marketing and social media is a complicated process. But have no fear! There are many examples to follow including The Office, Sharpie and a t-shirt company."


Wise Bread presents Make Money Online With Free Videos posted at Wisebread.


That concludes this edition. Submit your blog article to the next edition of

computing technology using our carnival submission form.

Past posts and future hosts can be found on our  blog carnival index page.



Technorati tags:



, .

Thursday, 10 June 2010

Knowledge Management, Decision Support Systems and Competitive Advantage

In today’s competitive business environment it is of vital importance for organisations to achieve competitive advantage. Without it, companies will not be able to operate and will eventually cease to exist. One of the ways in which organisations can position themselves to gain competitive advantage is through a strategic approach towards knowledge management and supporting disciplines.

Many organisations are becoming more alert to the significance of knowledge for efficiency and competitiveness. The main reason for this is the idea that knowledge management, and its applications, are the means by which creativity can be promoted, innovation facilitated and competencies applied in such a way as to advance the organisations and position them ahead of the competition.

An effective knowledge management strategy encourages individuals to communicate their knowledge by creating environments and systems for capturing, organising and sharing knowledge throughout an organisation. The purpose of knowledge management, thus, is to leverage an organisation’s intellectual assets in achieving and sustaining competitive advantage.

There are two kinds of knowledge, explicit and tacit. Explicit knowledge can be expressed in words, numbers, universal principals and so forth. It can be readily transmitted across individuals. Tacit knowledge however is highly personal and hard to formalise which in turn makes it difficult to share with others

In order for knowledge management practices to be effective it needs to take into consideration both types of knowledge. The management of tacit knowledge has more challenges than explicit knowledge; nevertheless tacit knowledge has the potential to generate greater advantages to organisations as it is unique and difficult to copy.

An organisation can achieve competitive advantage by differentiating itself from competitors and new market entrants. Intangible resources, such as tacit knowledge, are more likely to generate competitive advantage due to the fact that intangible resources are hard to copy.

As with any other business initiative, knowledge management needs to be endorsed by senior managers therefore it needs to be part of the strategic planning process of the organisation. An integrated strategic approach will ensure that the topic always has the visibility of top management and is always at the top of their agenda.

Once senior managers decide to implement knowledge management as a means to achieve competitive advantage, they need to take careful consideration as to how that strategy will be implemented. Organisations need to put practices into place that encourage the sharing of tacit knowledge. This knowledge not only needs to be captured but also shared amongst members of the organisation.

one of the barriers that organisations may face when considering knowledge management strategies is the inability to understand the impact of knowledge initiatives on business performance. It is important for organisations to appreciate and embrace the added value generated by Knowledge Management initiatives. This lack of understanding makes it difficult to justify and implement knowledge management strategies.

Implementing Knowledge Management

A few strategies to implement knowledge management have been devised including knowledge management score cards and knowledge management SWOT analysis. Any knowledge management strategies need to be implemented by directly relating it to real life work. If employees are not able to directly link knowledge management tasks with their daily tasks then knowledge management initiatives will become dull and individuals will not be encourage to positively participate in the new initiative.

It is also important to consider how computer systems can support the implementation of a knowledge management strategy.

A prerequisite to implement a knowledge management strategy is to understand and develop the infrastructure elements required to support the acquisition, management and transfer of tacit and explicit organisational knowledge.

As mentioned above, knowledge needs to be acquired, managed and transferred. Information systems can be used to support this process by implementing decision support systems (DSS). The purpose of such systems is to centralise data into a data warehouse and provide users with the ability to retrieve it and analyse it. The vast amount of data is given context and turned into powerful information which can be used to gain advantage over competitors.

Data Warehouses centralise information from various sources such as billing, customer relationship and document management systems. A strategy can be put into place to encourage employees to enter tangible and intangible information, which is ingrained in their brains (tacit knowledge), into a knowledge bank which is then transferred into the data warehouse and available to all employees of the organisation.

The Role of Strategic Human Resources Management in Knowledge Management

Organisations are composed of individuals who work collectively to achieve a set goal. It is therefore important to consider the fundamental centrality of human and social factors in shaping the attitudes of workers towards knowledge-sharing initiatives. There is significant potential for Human Resources Management analysts and practitioners to make a valuable contribution towards the development of knowledge and to play a central role in organisational knowledge management initiatives.

It is important to note that If HRM is about managing people effectively and if people’s most valuable resource is knowledge, then HRM and KM are closely interrelated. With this in mind it is important to consider that the knowledge acquisition aspect of knowledge management is about recruiting outstanding people and about helping them learn and grow as individuals and professionals. It is also about encouraging employees to participate in professional networks and communities of practice that extend beyond organisational boundaries. Knowledge creation is achieved by creating a supportive environment, through requisite HRM, for individuals, groups and teams in order to be challenged by the organisational problems, to search for the problems’ solutions and to innovate. Human Resources influence in knowledge management goes from the creation of positions and teams, to the provision of information feedback flows, to the design of stimulating remuneration and other systems of encouragement. It includes also investment in the training and development of human resources.

Conclusion

Knowledge Management is about leveraging organisations' intellectual resources in order to achieve and sustain competitive advantage.

In order for an organisation to achieve competitive advantage, it needs to differentiate itself from the competition. One way of achieving this differentiation is through investing in people and their knowledge. These are intangible assets which are impossible to copy and therefore offer the potential to differentiate an organisation from its competition.

Decision Supporting Systems, Data Warehouses and Human Resources Management play a vital role in the knowledge management process by providing recruiting the right people to the right job and by enabling the knowledge management process through information technology that support knowledge acquisition, sharing and, most importantly, the application of knowledge to support organisations to achieve competitive advantage.

References

Alhawary, F. A., & Al-Zegaier, H. (2009). The Successful Implementation of Knowledge Management Processes: The Role of Human Resources Systems "An Empirical Study in the Jordanian Mobile Telecommunications Companies". Journal of Information & Knowledge Management , 159-173.

Halawi, L. A., Aronson, J. E., & McCarthy, R. V. (2005). Resource-Based View of Knowlegde Management for Competitive Advantage. Electronic Journal of Knowledge Management , 75-86.

Hamza, S. E. (2009). Capturing Tacit Knowledge from Transient Workers: Improving the Organisational Competitiveness. International Journal of Knowledge Management .

Ibrahim, F., Edgar, D., & Reid, V. (2009). Assessing the Role of Knowledge Management in Adding Value: Moving Towards a Comprehensive Framework. Journal of Information and Knowledge Management , 275 - 286.

Smith, P. A. (1998). Systemic Knowledge Management: Managing Organisational Assets for Competitive Advantage. Journal of Systemic Knowledge Management .

Srinivas, H. (2009, December). Types of Knowledge. Retrieved March 22, 2010, from The Global Development Research Centre: http://www.gdrc.org/kmgmt/km-7.html

Sunday, 6 June 2010

All things software BlogCarnival

Welcome to the June 6, 2010 edition of "All things software".


Madeleine Begun Kane presents Patently Evil? (Litigation Limerick) posted at Mad Kane's Humor Blog.


EDUmobile.ORG presents Ipad Development posted at iPad Programming and iPad Development Tutorials Online, saying, "Learn how to master iPad development and tap into this hot new niche. Start writing Apps for the iPad and iPhone just like the gurus. If you have an idea that you think is unique - there is no better time to make good money with your idea for the iPad and iPhone. EDUmobile has over 200 students in training and they offer a free downloadable ebook and one-on-one training sessions, with a full money back guarantee."


Tela Andrews presents Building a VMware Cost Model posted at Digital Fuel - Yisrael's Blog, saying, "Managing the costs of cloud service providers is challenging. While cloud computing and virtual servers offer flexibility, how do you manage the costs so you know whether its the least expensive option? In this entry we take a look at how to build a cost model for VMware and the benefits this approach can provide for CIOs, IT managers and company owners."


Sheryl Owen presents Change of Address: Mail Delivery Times and Realistic Expectations posted at Change of Address.


Simple Llama presents Specs Don’t Matter posted at Simple Llama.



John Andersen presents 5 Minute AS400 Tutorial posted at AS400 Tutorials.



Jennifer Saksa presents Hello World! posted at NCH Software Blog, saying, "One software developer compares programing and trying to make user-friendly software to the "guest experience" in the restaurant industry and really taking the time to think about all of the little details and listen to customer feedback to help improve the entire process."



sharons719 presents 50 “Healthy” Ways to Use Twitter posted at Masters in Public Health, saying, "Here's a list that offers 50 healthy ways to use Twitter with links to the actual resources so you can begin immediately to prove Twitter’s worth as an effective tool in your life."



Case Ernsting presents The Panel Agrees: SEO & SEM Are Growing posted at MetaSpring Blog, saying, "The tech industry is booming all over the nation, especially in college campus communities. For those looking to join an expanding and exciting industry, look no further than search engine optimization and search engine marketing."



Matthew Paulson presents Verizon is Not Getting the iPhone in 2010, Executive Confirms posted at iPad Weekly.



Beth Ziesenis presents F.lux: Control Your Computer’s Inner Glow posted at Cheapskate Freelancer, saying, "Thumbnail of F.lux to help control the light of the computer to mimic the light outside according to the time of day which relieves your tired eyes. This is great for people who are using their computer for hours at a time."



matt presents Invasion of Privacy. | Attack Vector posted at Attack Vector, saying, "Incredible article detailing the steps used by an attacker when they steal someones identity. A MUST read for anyone concerned about their identity and internet privacy."



nissim ziv presents Project Manager: Roles and Responsibilities posted at Job Interview Guide, saying, "The primary challenge of the managing a project is to achieve all of the project goals while considering the predefined three project constraints – the scope, the time, and the budget."

Marco presents OpenGL glBlendFunc tools — gabriev82 posted at gabriev82.com.



Elyse Nielsen presents Qualities of a Project Sponsor posted at Anticlue, saying, "Most projects are about implementing some type of change. This change will need to be adopted by the organization in order to be a success. Changes are often lead by Change Leaders and the skill set to make a change stick are among the softer skills of a project sponsor. We have all experienced good sponsorship and sponsorship which needed improvement. Matching the project sponsor to the project manager and the project is crucial for the project's success."



That concludes this edition. Submit your blog article to the next edition of computing technology using our
 carnival submission form. Past posts and future hosts can be found on our blog carnival index page.

Technorati tags:

, .

Tuesday, 18 May 2010

Effort Estimation in Agile Software Development - Applying the Pert Weighted Average formula

Effort estimation in software development is complex. Traditional estimation techniques such as COCOMO and Functional Points are fine for traditional development approaches but they are not appropriate for agile approaches where you don't know the entire lifecycle time span in advance and the entire estimation process may seem a bit too overwhelming to the agile, more fluid approaches.

Once user stories have been prioritised, developers are then able to estimate the duration, in development effort, to complete the stories. The total effort is calculated and finally, the iteration will contain only the most valuable stories, the ones that deliver the most value to customers, in a fixed timeframe (the iteration).

The challenge is to accurately estimate the effort to complete the user stories on time. One may ask if the estimation needs to be so accurate for the agile methodology because if one user story does not make an iteration, it can always be accommodated into the next iteration. The risk with this approach is that important functionality may not get delivered because of delays in previous iterations and when deployment comes along there is a backlog of stories that did not make the build. This may be fine for the agile practioner (when thinking that you are delivering value and not delaying the project), but it probably is not fine for the customer and, depending upon contractual agreements, you may be penalised in various different ways for not delivering the promised functionality.

Before I proceed let me just take a pause and mention that in the case of the scenario mentioned in the previous paragraph, the agile practioner should continue to focus on releasing the software on time and on delivering value. If delays start to occur and functionality is consistently pushed back to other iterations, the project manager should immediately start communicating with customers to either reprioritise stories or to develop a plan to ensure that value is delivered to customers in a consultative and mutually agreed manner.

No one has the final answer on how to accurately estimate task duration. Various techniques have been developed to address the issue. I have been effectively utilising the PERT estimation technique detailed below.

The PERT estimation techniques uses a system of categorising 3 potential estimations as Realistic, Pessimistic and Optimistic.

A number is assigned to each of these variables which are then applied to a formula to devise the final estimation. The values applied to the formula can either be in hours or days, depending upon the size and complexity of the project. Needless to say that whatever unit of measure applied, it needs to be consistent for the entire iteration.

The formula is as follows: (Optimistic + (4 * Realistic) + Pessimistic) / 6.

I ask developers to provide me with estimation for the tasks in question. I take the numbers provided by the developers and apply them to the Optimistic component of the formula. I am pretty sure that many people will criticize me for implying that developers always provide estimations that are optimistic. There are many articles on the internet that support the fact that developers are the only ones that know exactly how long will take to complete a task. I don't entirely disagree with them. Feel free to change this aspect of the technique to address you environment, you may have developers that consistently provide estimates that are realistic, if so adjust the technique accordingly.

My motivation in applying the developer's estimation to the optimistic component of the formula comes from motivational management theories, unconscious motivation to be specific, and experience. Some motivational theories support the fact that workers will always try to do the best that they can, in this case, they may try to be as efficient as possible and provide you with estimations that are not achievable.

The next step in the process is assigning values to the realistic and pessimistic components of the formula. To figure out these components I have a system whereby I assign a grade to a task in order to estimate potential duration. The grade is based on size and complexity. The following tables provide more details with regards to how to choose these grades.

Following from these tables you can build a matrix with possible combinations and estimations to use to complete the realistic and pessimistic components of the formula. I have not posted my table because, in building it, you have to consider several different variables to devise those numbers. Some variables to consider include technical prowess of your team, number of developers available, iteration length and others.

Once you have the table built you can continually update it as you find variances between estimated and actual completed time.

This may sound a bit too hard for an agile approach, nevertheless as you get used to it, it is actually very easy and, over time, it speed us the process of task estimation and, more importantly, makes it more accurate.

Tuesday, 27 April 2010

Aligning Stakeholder Expectations - What's a PM to do?

Below is one of the best articulations (definitely one of the most humorous) of why there needs to be a person or party looking holistically at engagements and focusing her/his energies on driving stakeholder alignment. If you’ve been in an agency for decades or just arrived on the last boat, the issue highlighted in this strip should resonate.

Click on the strip image below to enlarge and/or check out the video variation on the theme below it.

Please add your insights, experiences and anecdotes in the comments section of this post.



Wednesday, 21 April 2010

The case for an agile methodology

I have recently decided to implement an agile methodology for the development of a mid-size project.

The following dot points outline a few of the reasons for which I decided to use the agile methodology.
  • Focus on people rather than on the methodology.
  • Reduce the bureaucracy and increase efficiency in the development process.
  • Address my observation that users generally don't understand what a software solution will men to the business until they actually get to use the product.
  • Changing business requirements due to a highly competitive market.
  • Have a flexible, yet effective development team.
  • Increase the level of communication between IT and business stakeholders
  • Lower the software time to market.
In this methodology the software is built on iterations which are made up of the following stages:

  1. Gather the requirements that will be implemented in the short term.
  2. Document the requirements.
  3. Design and code the solution.
  4. Present the solution to the users.
*Testing is done all the way through the development process and more specifically before step 4.

Please note that the purpose of this blog is not to explain how to implement the agile methodology, the purpose is to describe my implementation of the methodology in order to support others in their journey towards implementing an agile methodology for the development of software.

The rest of this document describes each step that makes up an iteration.


(1) Gather the requirements that will be implemented in the short term (iteration)

Today's business environment is very competitive and dynamic. Companies need to able to address a changing external environment in order to remain competitive. The purpose of software is to support the business in its operation, therefore software needs to be flexible to support a highly dynamic environment. The agile methodology addresses this issue by building and delivering software in small increments and only gathering requirements that will be built in the short term. If the requirements, or the priorities, change there is little or no waste of time and effort because the software planning and development is done in small increments.

Although all requirements are not gathered at the beginning of the project,business analysts or solution architects need to work with business stakeholders to get a high level view of the software and to enable a basic architectural model to be built. This process is important and should focus on gathering just enough information, not to compose an encyclopedia. The idea is that even the architecture can change during the development of the project.

(2) Document the requirement

This topic is often included in the previous section, the reason I separated it is because of the issue of agility. Traditional development methodologies require that a significant amount of time be spent early on the project, gathering and documenting all of the business requirements for the entire project. This can be an often long and tedious part of the project.

The documentation gathered should be just enough to enable the developers to code. It is important to keep in mind that for a agile methodology to work, the development team needs to have business representatives available throughout the development process to answer any questions that arise. This is positive because it increases interaction with business and addresses the traditional scenario where developers and architects discover details about the system that nobody has previously considered. Business representatives need to be prepared to discuss those topics quickly in order to enable the development process to continue.

The agile methodology emphasizes the importance of verbal, face-to-face communication as opposed to written documentation, which is often ambiguous and open for interpretation. Increasing verbal communication will in turn reduce the need to have overly detailed written documentation.

Another important item to consider is the purpose of the written documentation. When there is a bug or someone needs to find out how the software works, developers and business users very rarely rely on written documentation, they go directly to the software. Therefore working code is the best documentation available about a software.

The only item topic that should be well documented, and by well I mean just enough information, is the architectural design. This enables the development team to understand the reason for and how the various parts o the system are glued together. Without documentation this is a difficult topic to discuss. It is important to emphasize that only just enough information should be committed to paper.

(3) Design and code the solution

The solution design should not be a long, detailed and exhaustive exercise. Enough should be done to enable the developers to get on with the work at hand instead of focusing on the entire system. The team can hold stand-up meetings every morning and discuss what will be developed on that particular day, specific challenges should be discussed and the developers should move on with the work.

(4) Present the solution to the users

Once there is enough functionality to show to business users, the team should organise a meeting to present the work achieved and start the whole cycle again. This step may or may not occur depending upon you environment and specific business needs.

The steps above make up an iteration. The length of an iteration can vary from 2 weeks to a few months, this is another aspect of the agile methodology that can be changed to suit your business or the specific project.

The methodology described above is working well in an environment where business stakeholders are available to interact with the development team in a semi-formal way, enabling the business to communicate changing business requirements and giving IT an opportunity to ask questions during the course of the project.