Category Archives: Technology

Project Communication Management Software


In today’s fast paced world, organizations are willingly hiring efficient project managers, who can assist them in optimizing the work processes. Project management itself is now being considered as the most efficient and effective methodology for the completion of various projects, being initiated at organizations at different levels. Whether companies are working on software projects or on projects of diverse niche, they get them done with the assistance of project managers.

For successful completion of a project, at present a number of organizations as well as project managers take assistance from project communication management software. This software assists project managers to be as effective as possible, irrespective of their industry. This project communication management software definitely enhances the work processes and hence, provides a structured platform for efficient completion of a project.

Project communication management software is an essential tool not only for software project managers or for software companies only, but for the entire corporate world, operating in diverse industries. This software allows you to efficiently communicate with your customers directly, without revealing your identity. You can easily discuss with them about the project requirements by posting your queries related to the project, irrespective of the geographical location.

The major advantage of this software is that it allows you to not only add your customers, but you can also other team members, who are working on the project. All you have to do is:

  • Initiate a project with its title on the software
  • Add team members with their name, designation and email address, note that it will not be revealed to your customers.
  • Add customers with their name, designation and email address
  • Whenever there is a query or you have to discuss something with customers, you can post messages and they will be notified with an email alert.

Features That Assist Successful Completion of Your Project

  • You can easily maintain a complete history of your communication for future reference.
  • Time spent on each project is recorded and hence, you can keep track of the project activities.
  • The interface is highly user-friendly, easy to use and install and hence, everyone can use the software easily. It therefore, allows quick ramp-up times.
  • Team members and customers can directly hold discussions without signing up.
  • A notification is sent to everyone added in the project along with a link, so that you can participate in the project discussion by simply clicking on the link.
  • Once members are removed the link sent to them becomes inaccessible.
  • You can easily upload relevant files, apply filters and tag members in the messages, so that they can quickly access them.

Advantages of Using Project Communication Management Software

  • Project managers can easily collaborate with team members as well as with their customers in real time. They can easily discuss issues; keep members up to date with the current status of the project while dealing with problems and queries arising at the instant.
  • Easily share significant documentation of projects with the help of document sharing tools that allows editing and organizing reports and also, ensures transparency and efficient communication.
  • The project communication management software reporting capabilities provides flexible report formats and has the facility to access required data promptly. Thus, the software assists in keeping tasks on schedule.

Online Collaboration Software Offers New

Collaboration Software is used to exchange the required information inside your teams and with your clients. This software is not only used for exchanging information but also use to manage projects, including all basic facilities like file storage, calendar, wikis, chat room, to-do list, goal setting etc. It is used to save time and reduce budget. Collaboration software offers new capabilities for project planning teams. Project planning team is used for initiation, planning, and execution, evaluation, monitoring, controlling, and maintaining the projects. During the execution of the project it is the responsibility of the planning team to monitor and look-after each step of the project. So team is responsible for development of an effective and productive project plan. So for all these functions it plays a very important role. A good communication skill is very important in obtaining and executing any project. Collaboration software is used to improve the communication within the organization. By using online collaboration software you can easily communicate with your team and your clients throughout the world at any time. This software tool allows you to access the data and information about the project from any location around the globe.

Nowadays many online project management software are available that provides different services. Using project management software decision making has become easier for project planning teams. Collaboration software provides up to date report, information and data which everyone can view and discuss upon it and makes changing for the growth of the project. By using this software communication and work discussion for the project becomes very easy and can be done on real time basis. Teams can easily share and maintain the files online. Project planning team instantly knows the new updates through dashboards and email notifications. By using it you will have live chat for your clients and team members, and this will help you spend your time for something that you like, instead of answering hundreds of emails of clients and team members. It will assist you in creating a pleasant work atmosphere, which makes your business communication more interactive. This web based software can be accessed from any type of computer without installing software on your computer. Project planning teams manage the projects very efficiently and effectively by using online collaboration software. So online Collaboration software is very important for the development of the company or organization and it also offers new services to the project planning teams.

Community Innovation

Many hands make software work

The stakes for Microsoft, which was outlining its Office 2010 product strategy, were extremely high. According to Microsoft’s earnings statements, Microsoft Office productivity suite generates more revenue than any other business division, says Gregg Keizer,who covers Microsoft and general technology news for Computerworld.

Months before Microsoft released Office 2010 productivity suite, 9 million people downloaded the beta version to test the software and to provide feedback. Through this program, Microsoft collected 2 million valuable comments and insights from those testers.

Denise Carlevato, a Microsoft usability engineer for 10 years, and her colleagues from Microsoft’s Virtual Research Lab observed how people used new features. Their objective was to make Microsoft Office fit the way millions of people used their product and to help them work better. It was a massive, controlled crowd sourcing project.

The scenario

Developing a new software product is always exciting, especially to watch ideas take form and truly become a reality. Sometimes a fresh perspective or an innovative use case is all it takes to turn a product from good to great. However, when it comes to testing, we often find ourselves in unchartered waters wondering if the product will actually work in the diverse customer landscapes. It is virtually impossible to test the vast number of devices and configurations of software that web-based software can run on today. Truly robust testing is time consuming, and ensuring that every possible permutation and combination of features, localizations, and platforms works, as intended is nearly impossible.

Often times, comprehensive testing is a challenge and buggy code is delivered to the customer. For example, if a Software-as-a-Service (SaaS) application does not render in a particular browser or a critical software tool fails to deliver its intended functionality, a bug fix or a patch is promised and the vicious cycle starts all over again. Either way, the customer withstands the worst of inadequate testing, especially when faced with the escalating costs of software maintenance, performance, etc. For the software development company, ramifications include distress around brand image, perceived quality, relationship and potential future projects, trust, etc.

Welcome to the new world of crowd sourced testing, an emerging trend in software engineering that exploits the benefits, effectiveness, and efficiency of crowd sourcing and the cloud platform towards software quality assurance and control. With this new form of software testing, the product is put to test under diverse platforms, which makes it more representative, reliable, cost-effective, fast, and above all, bug-free.

Crowd sourced testing, conceived around a Testing-as-a-Service (TaaS) framework, helps companies reach out to a community to solve problems and remain innovative. When it comes to testing software applications, crowdsourcing helps companies reduce expenses, reduce time to market and increase resources for testing, manage a wide range of testing projects, test competence needs, exigency to resolve higher defects rates, and use 3rd party’s test environment to subside the project requirements.

It differs from traditional testing methods in that the testing is carried out by a number of different testers from across the globe, and not by locally hired consultants and professionals. In other words, crowd sourced testing is a form of outsourced software testing, a time-consuming activity, to testers around the world, thus enabling small startups to use ad-hoc quality-assurance teams, even though they themselves could not afford traditional quality assurance testing teams.

Why Does Crowd Sourced Testing Work?

To understand why crowd sourced testing works, it is important to understand the set of biases that infest most testers and test managers around the world. This phenomenon is called, “The Curse of Knowledge,” a phrase used in a 1989 paper in The Journal of Political Economy. It means that for a particular subject expert, it is nearly impossible to imagine and look beyond the knowledge the tester has acquired i.e. the set of concepts, beliefs and scenarios that the tester knows or predicts. As a result, it is particularly challenging to think outside the box and conceive the various ways a typical end user would use particular software.

This phenomenon has been empirically proven through an infamous experiment conducted by a Stanford University graduate student of psychology, Elizabeth Newton. She illustrated the phenomenon through a simple game, people were assigned to one of two roles, namely tappers and listeners. Each tapper was to select a well-known song, such as “Happy Birthday,” and tap the rhythm on a table. The listeners were to guess the song from the taps. However, before the listeners guessed the song, tappers were asked to predict the probability that listeners would guess correctly. They predicted 50%. Over the course of the experiment, 120 songs were tapped out, but listeners guessed only three of the songs correctly – a success rate of merely 2.5%

The explanation is as follows: when tappers tap, it is impossible for them to avoid hearing the tune playing along to their taps. Meanwhile, all the listeners could hear is a kind of bizarre Morse code. The problem is that once we know something, we find it impossible to imagine the other party not knowing it.

Extrapolating this experiment to software testing, most testers conduct a battery of tests that they feel is representative and that captures the set of end-user scenarios for how the software would be used. The reality is far from this. Any expert tester would asset that it is impossible to capture the complete set of scenarios that an end user may throw at a software system. As a result, critical path(s) of the code under certain scenarios go untested, which leads to software malfunctioning, production system crashes, customer escalations, long hours of meetings, debugging, etc.

Crowd sourced testing circumvents all these headaches by bringing a comprehensive set of code coverage mechanisms and end user scenarios during the design and development stages of software engineering, during which the cost of modification is meager. This results in identifying critical use cases early on and providing for those contingencies, which reduces software maintenance costs later on during and after productive deployment. Besides progressive code coverage, the quality and depth of software testing among various vital software modules is achieved, which ultimately results in a higher code quality, among other benefits.

Crowd sourced testing – the framework

At the heart of crowd sourced testing is the community that tests a given software product. The community encompasses people from diverse backgrounds, cultures, geographies, languages, all with a diverse approach to software usage. The community, represented by a diverse and extended user space, tests any given software by putting it to use under realistic scenarios, which a tester in the core test team may not be able to envision, given a tester’s constraints, such as limited bounds of operation, knowledge, scenarios. Thus, it is easy to observe the broad set of usage patterns that put the software under intense scrutiny. Crowd sourcing software testing draws its benefits from delegating the task of testing a web or software project, while in development, on to a number of Internet users, to ensure that the software contains no defects.

The method of crowd sourced testing is particularly useful when the software is user-centric, when software’s success and adoption is determined by its user feedback. It is frequently implemented with gaming or mobile applications, when experts who may be difficult to find in one place are required for specific testing, or when the company lacks the resources or time to carry out internal testing.

The spectrum of issues that such test efforts could uncover within a short lead-time is particularly noteworthy. Such testing efforts yield productive results with reasonable costs. Often times, the product company pays only for those valid reported bugs. Hence, the Return on Investment (ROI) is high compared to the traditional means of software testing.

How does it work?

Most crowd sourced testing companies provide the platform for the testing cycles. Clients specify the type of tests that they wish to have performed and the types of devices that the software product must be tested on.

Testers complete a profile, indicating the skills they have, the devices to which they have access to, and the countries where they reside. Once a tester has completed his profile, he/she can check the project dashboard for a listing of projects and releases that are available for testing. The dashboard may also include sample test scenarios, additional tools and scripts, instructions for testers about what is expected from them, etc. Usually, the testers are required to submit a QA plan, which outlines both high level test cases and detailed test scenarios. The plan may also include whether or not the test can be automated and expected results.

A qualified Project Manager, who is typically a proven community leader or a person from the client/the platform company, reviews such plans, and approves or amends such plans to cater to the client’s specific testing requirements.

Each project includes an explanation and access to a forum where bugs and issues are discussed and additional questions can be asked. Testers document bug reports and are rated based on the quality of their reports. The amount the testers earn increases as their rating increases.

The community combines aspects of collaboration and competition, as members work to finding solutions to the stated problem. Forums facilitate networking and discussion of bugs or relevant issues; rating systems allow for recognition of a job well done, which helps participants gain credibility and improved career.

Checks & Balances

Security is a crucial element to crowd source testing. More often than not, confidential customer information is exposed to testers during application testing. Any breach of this data can lead to serious damage, both to the brand and the business. Test data management ensures the availability and security of test data by obfuscating sensitive information for large-scale testing engagements. Masking such information or creating ‘test-only’ data helps maintain privacy and security while using crowd sourced testing services.

In almost all cases, the testers are required to sign a Non-Disclosure Agreement (NDA) when they join the community. The NDA forbids them from talking about customers, their products or specific defects, both offline and online on Facebook, Twitter, personal blogs or anywhere outside the confines of the private testing platform. Beyond that, the customers can upload a customized NDA, which testers must sign before viewing the customer’s project. For projects that require a high level of security, a pre-screened list of white hat engineers, that have a long professional relationship with the platform company are selected.

Furthermore, standardized communication patterns help users secure their data and gain confidence in their testing vendors, which results in a seamless transition.

By combining an internal, permanent team of testers with a crowd of experienced software testers working from around the globe, superior quality in testing is delivered. By constantly filtering the network of testers to accept only experienced software testing professionals, applicants without formal training and significant professional experience are eliminated. This ensures the quality and the validity of the bugs reported. Last but not the least, tests are dispatched to individual testers based on their experience, available material, and languages mastered. The testers and test project exposure are continually monitored to ensure both quality and integrity, not only of the test results, but also of the associated environment.

Caveat emptor?

Crowd sourced testing is best when the product under development is consumer-centric rather than enterprise-centric, such as gaming or web driven consumer applications. A global user base to test the product should exist and the product should be relevant to the community at large. This is also a test for the application’s potential success in the marketplace.

There should also be an earnest interest from the community to proffer critical feedback for the product under consideration such as a monetary reward. This also brings forth another interesting challenge. The product company is not obliged to follow through on community’s recommendations and may dispense with the feedback for various internal reasons. In this case, the community may feel unheard and this mandates a fine balancing act of the entire ecosystem.

The product company should be committed to working with a large group of people and understand that it involves some degree of overhead in such a decentralized test effort. It also requires certain subject matter experts to mentor and monitor various testing efforts as well as offer support and relevant guidance to the testing teams. If the product team does not have the resources to take on full-fledged testing in-house, but has a good understanding of the testing requirements, it can realize its overall strategy from a globally sourced team.

With normal employment contracts, employees receive a salary for their contribution and the firm owns any intellectual property developed by the employee during their tenure with the organization. In a crowd-sourcing constellation, people are participating voluntarily. Unless the position on Intellectual Property (IP) is clear and explicitly stated, i.e. a condition of the right to participate is the acceptance of Intellectual Property transfers to the client, potential for IP infringement by the contributor exists.

A crowd sourced project requires skills and mastery in designing the compensation structure, both in monetary and non-monetary terms. The testers are usually paid a certain amount of money in the case of a successful bug/issue discovery. In some cases, the testers would prefer non-monetary aspects like recognition and personal satisfaction rather than monetary compensation. Thus, it is vital to understand the motivators prior to mission critical deployments.

In cases where participants are compensated on a per task basis, an incentive for participants to choose speed over accuracy exists. This is especially the case with especially micro tasks, which are susceptible to mistakes and could result in erroneous overall outcomes. Therefore, robust governance mechanisms need to be instilled, continually monitored and policies regularly updated to reflect the changing trends.

Advantages of crowd sourced testing:

  1. Representative scenarios from the real user base, not hypothetical test cases
  2. Tight feed-back loop with rapid feedback processing and agility
  3. Comprehensiveness in use cases, platforms, tools, browsers, testers, etc. that is typically impossible to replicate by any single product company
  4. Cost efficiency, as the product company pays only for the valid bugs reported
  5. Diversity among the pool of testers lends to comprehensive testing, especially with regard to applications, which are localization based
  6. Reduced time to test, time to market and total cost of ownership as critical paths of a software module are tested during design time, which leads to a reduced maintenance cost
  7. Better productivity and improved product development focus

Disadvantages of crowd sourced testing:

  1. Governance issues around security, exposure and confidentiality when offering a community project to wide user base for testing
  2. Quality and workload challenges that arise from the unpredictable nature of customer demands
  3. Project management challenges that stem from the users’ diverse backgrounds, languages and experience levels
  4. Documentation issues, such as poor quality of bug reports, bug duplicates and false alarms
  5. Equity and equality constraints in the reward mechanism with remuneration as a function of the quality of contributions that meets a prescribed minimum standard
  6. Management overhead associated with managing an active and growing community

What does the future hold?

Crowd sourced testing, clearly, has its advantages and limitations. It cannot be considered as a panacea for all testing requirements and the power of the crowd should be diligently employed. The key to avoid failure in crowdsourcing would be to use it prudently depending on the tactical and strategic needs of the organization that seeks crowd sourced testing services. It is important for the organization to embrace the correct model, identify the target audience, offer the right incentives and have a suitable workforce to manage the task results.

Crowd sourcing testing is a relatively new application in Software Engineering and as we continue to experiment and learn about crowdsourcing, we will gain experience and maturity that will help to identify best practices and to harvest the entire value it offers. With this learning, we will become better equipped at mitigating any associated risks and at learning how to better deal with the operational issues around the applicability of crowdsourcing to new sets of activities.

Discover How Online Discussion Forums Drive Traffic

Why build a discussion forum? Businesses use them to enhance employee productivity or communicate with customers: Sports fans use them to discuss their team’s performance, schools provide educational support to students, “foodies” compare recipes, and so much more. Forum audiences are as diverse as human interests. Because of this, their reach and influence as a search marketing tool should be studied and integrated in most if not all search engine marketing strategies.

How Do Forums Work?

A forum’s main topic is generally set by the owner, also known as forum administrator, but the bulk of the content is provided by members of the forum. In a forum, visitors have the ability to start “discussions” with other members in the form of topics, also known as “threads.” Once a forum user (guest or member) has read a thread, they’ll generally have the option to post a reply which can then be read by the community. These discussions can develop without all users needing to be online at the same time.

Forums can be thought of as containers, or archives, for information fostered by the community. Depending on the permissions community members have (as set by the forum administrator), members can post replies to existing threads and start new threads at will. Most forums allow people to browse through postings before registering and, once they feel comfortable, they can set up an account and submit their own posts.

Who Should Create a Forum?

If you’re passionate about a subject, there are few better ways to indulge your enthusiasm than by creating a forum for others to share and learn about the topic you love so much. Not only can you write about something you really enjoy, meet and become friends with people that share your passion, but there is often the opportunity to make good money while you’re doing it. What could possibly be better?

If you love kayaking, start a kayaking forum. If you love collecting Cherokee arrowheads, start a Cherokee arrowhead collectors forum. If you love skydiving, start a skydiving discussion forum! You can be sure of this: there will be others who share your zeal.

With over 2 billion people that now have access to the Internet, there really isn’t an interest, avocation or hobby that’s so obscure there aren’t others who share your passion. In fact, the more eccentric and unseen the subject, the more likely it could go viral and be of interest to a much larger audience. If your forum takes off and you have a large number of people visiting it every day, selling advertising space can often generate substantial monthly income for the forum owner.

Adding Community to Your Existing Site

Building a forum community is a great way to add value to an existing site and can create a sense of belonging for your visitors. This can encourage repeat visits and generate more interest in the site as a whole. With a discussion forum, there will be richer and more varied content being added to your site. You no longer need to be the sole contributor creating content, but rather many people joining in with their opinions and perspectives will help grow your site.

Also, if you’re marketing a product or service, you can generally rely on rapid and unvarnished feedback from a forum community. You can quickly find out how your product is working in the real world and respond more efficiently to customer needs. Moreover, forum communities foster personal relationships between members which can help get information rapidly disseminated as well as increase pageviews and product-use through word of mouth.

Creating a Forum

There are basically two ways to create an online discussion forum; the hard way, and the easy way. The “hard” way requires a fair amount of technical expertise and involves installing forum software on a host server, creating a database, and configuring the forum once it’s been installed. Further, installed forum software will also usually require some level of ongoing maintenance to insure proper functioning.

The smart and simple way to create a discussion forum simply requires choosing a free, web-based forum host. For those of you not interested in taking on the responsibilities of installing software and configuring databases, “remote” forum hosting offers a much simpler, more reliable, and less demanding free solution. Also, remotely hosted forums can easily be linked to websites or be operated as stand-alone entities.

Current Management Opportunities

During the past 30 years the world went through a very dynamic technological transformation. In retrospective, it can be stated without exaggeration that the emergence of electronic devices and the Internet have greatly impacted daily life as well as managerial practice to an unforeseen extent. The computerization of multiple business processes and the creation of large scale databases, among many other radical technological advances, have lead to enormous cost savings and quality improvements over the years. The interconnection of financial markets through electronic means and the worldwide adoption of the Internet have greatly reduced transaction and communication costs and brought nations and cultures closer to one another than ever imaginable. Computers are now fundamental tools in almost all businesses around the world and their application and adaptation to specific business problems in the form of software development is a practice that many companies perform on their own. In the past, such computerization and automation efforts were very costly and therefore only practiced by large corporations. Over the years, however, the software industry emerged to offer off-the-shelf solutions and services to smaller companies. Today, having survived the massive dotcom crash of the year 2000, software development businesses established themselves as strong players in the technology industry.

The emergence of numerous computer standards and technologies has created many challenges and opportunities. One of the main opportunities provided by the software sector is relatively low entry barrier. Since the software business is not capital intensive, successful market entry largely depends on know-how and specific industry domain knowledge. Entrepreneurs with the right skills can relatively easily compete with large corporations and thereby pose a considerable threat to other, much larger organizations. Companies, on the other hand, need to find ways to reduce turnover and protect their intellectual property; hence, the strong knowledge dependence combined with the relatively short lifespan of computer technologies makes knowledge workers very important to the organization. Knowledge workers in this industry therefore enjoy stronger bargaining power and require a different management style and work environment than in other sectors, especially those industries that have higher market entry capital requirements. This relatively strong position of software personnel challenges human resource strategies in organizations and it also raises concerns about the protection of intellectual property.

The relatively young industry is blessed with sheer endless new opportunities, such as the ability of companies to cooperate with other organizations around the globe without interruption and incur practically no communication costs. In addition, no import tariffs exist making the transfer of software across borders very efficient; however, the industry with its craft-like professions suffers from lack of standards and quality problems. The successful management of such dynamic organizations challenges today’s managers as well as contemporary management science because traditional management styles, such as Weberian bureaucracies, seem to be unable to cope with unstable environments.

Challenges in the Software Industry

Many studies indicate that present-day software development practices are highly inefficient and wasteful (Flitman, 2003). On average, projects are only 62% efficient, which translates to a waste of 37 %. The typical software development project has the following distribution of work effort: 12% planning, 10% specification, 42% quality control, 17% implementation, and 19% software building (2003). There are many possible interpretations of the nature of this distribution of resources. First, the extraordinarily high share of 42% for quality control purposes can indicate a lack of standards and standardized work practices. This large waste of effort may also be the result of inefficient planning and specification processes. Because the share of 19% for software building is a function of software complexity, hardware, and tools used, there is a chance to reduce it by carefully managing and standardizing internal work processes. The disappointing share of only 17% for implementation, however, should be alarming to business owners, since implementation activities are the main activity that results in revenue. The relatively low productivity level reported by Flitman (2003) seems to be also reflected in the fact that the average U.S. programmer produces approximately 7,700 lines of code per year, which translates to just 33 per workday (Slavova, 2000). Considering that a large software project, such as Microsoft Word, is reported by Microsoft to require 2 to 3 million lines of code, it becomes obvious how costly such projects can become and that productivity and quality management are major concerns to today’s software businesses. The challenge for contemporary software managers is to find the root of the productivity problem and a remedy in the form of a management practice.

A plethora of recent studies addresses software development productivity and quality concerns. Elliott, Dawson, and Edwards (2007) conclude that there is a lack of quality skills in current organizations. Furthermore, the researchers put partial blame on prevailing organizational cultures, which can lead to counterproductive work habits. Of the main problems identified, project documentation was found to be lacking because documents are deficient in detail and not updated frequent enough. Quality control in the form of software testing is not practiced as often and there seems to be a lack of quality assurance processes to ensure that software is built with quality in mind from the beginning. Organizational culture was found to be deficient in companies were workers tend to avoid confrontation and therefore avoid product tests altogether (2007).

Since knowledge workers are the main drive in software organizations, creating a fruitful and efficient organizational culture constitutes a main challenge to today’s managers. The relationship between organizational culture and quality and productivity in software businesses was recently investigated by Mathew (2007). Software organizations tend to be people-centered and their dependency on knowledge workers is also reflected by the enormous spending remuneration and benefits of more than 50% of revenue. As the industry matures and grows further, the challenge to organizations is that larger number of employees need to be managed which brings culture to the focus of management. Mathew (2007) found that the most important influence on productivity was achieved by creating an environment of mutual trust. Higher levels of trust lead to greater employee autonomy and empowerment, which strengthened the existing management view that trust and organizational effectiveness are highly related. Those companies with higher trust and empowerment levels benefitted from more intensive employee involvement and thereby achieved better quality products (2007).

Product quality, however, depends on other factors as well that reach beyond the discussion of work processes. Relatively high employee turnover was found to have a detrimental effect on product quality and organizational culture (Hamid & Tarek, 1992). Constant turnover and succession increase project completion costs, cause considerable delays, and expose organization to higher risks because their development processes can be severely disrupted. While human resources strategies should help find ways to retain key personnel in the company, organizations need to nevertheless be prepared for turnovers and minimize their risks. One of the greatest risks for people-centered, knowledge worker organizations is the loss of knowledge when employees leave.

Knowledge management has evolved into a relatively new discipline in the last two decades but is mostly practiced by large, global organizations only (Mehta, 2008). As corporations realized the importance of knowledge management activities to mitigate the risk of know-how loss within their organizations, they started employing chief knowledge officers and crews with the goal of collecting and organizing information. By building custom knowledge management platforms, companies can benefit from increased transfer, storage, and availability of critical business information. Such activities can help companies innovate and build knowledge capital over time (2008). The challenge remains, however, to set up such systems and to elicit employee support for knowledge management systems. In addition, these systems leave another critical question open. What happens when top performers take all the knowledge with them when they leave?

Another crucial variable affecting software product and service quality is top management involvement. Projects in the software industry commonly fail due to one or a combination of the following three major causes: poor project planning, a weak business case, and lack of top management support and involvement (Zwikael, 2008). Software projects are similar to projects in other industries by focusing on timely project completion, budget, and compliance to specifications, the industry requires specific support processes from top management to facilitate projects. These processes are summarized in Table 1. Key support processes, such as the appropriate assignment of project managers and the existence of project success measurement, indicate that successful companies demonstrate a higher level of project progress control than others; however, Zwikael acknowledges that top managers rarely focus on these key processes and instead prefer to deal with those processes that are easier for them to work on personally.

Table 1

The ten most critical top management support processes in the software sector (Zwikael, 2008). Those processes marked with an asterisk (*) were found to be the most important.

Support Process

Appropriate project manager assignment *

Refreshing project procedures

Involvement of the project manager during initiation stage

Communication between the project manager and the organization *

Existence of project success measurement *

Supportive project organizational structure

Existence of interactive interdepartmental project groups *

Organizational projects resource planning

Project management office involvement

Use of standard project management software *

Opportunities in the Software Industry

The advent of low cost communication via the Internet and the diversification of the software industry into many different branches brought a multitude of new market opportunities. Some of the main opportunities are rooted in the low costs of communication, while others originated from the possibility of geographic diversification and international collaboration.

One major opportunity which especially larger organizations seek to seize is geographic diversification in the form of globally distributed software development. Kotlarsky, Oshri, van Hillegersberg, and Kumar (2007) have researched this source of opportunities that is mainly practiced by multinational companies; however, an increasing number of small companies is also reported to be benefitting from dispersed software development across national boundaries. The study revealed that software companies can achieve significantly higher levels of productivity by creating reusable software components and reducing task interdependencies. By reducing interdependence, the produced modules are more likely to become useful in future projects on their own; furthermore, this reduction of intertwined computer code also has a positive effect on project teams. Teams in companies that globally distribute their developments benefit from increased autonomy and reduced communication requirements. The authors point out, however, that the prerequisites to distributing software development are not only good project planning but also the standardization of tools and development procedures. Without such prearrangements it may become almost impossible to manage and consolidate the various distributed team activities (2007). Especially for teams working across countries away from one another, it may pay off to deploy video or other Internet-based conferencing technologies and exploit huge savings potentials. But are these means of communication effective?

In the last decade a new form of organization has emerged that has taken the most advantage of the Internet. Virtual organizations exist entirely in cyberspace and their team members communicate mostly, if not exclusively, via the Internet using webcams and messaging software. The challenge for managers in virtual organizations is to exploit the new technology but also to find ways to motivate and direct the workforce and work processes. A study by Andres (2002) compared virtual software development teams with face-to-face teams and identified several challenges and opportunities for virtual managers. Managing work from a different time zone can be problematic due to the lack of physical presence. Communication will need to be asynchronous or can only occur at work hours that overlap in both time zones. Virtual teams facilitate this process by using email and voice/text messaging but more importantly by reducing the interdependency of tasks. Andres (2002) suggested that these types of communication have lower “social presence” meaning that humans have a need and ability to feel the presence of others in the group. The problem with many computerized communication channels is that visual clues, utterances, body language clues and clues from the person’s voice are missing. When placed on a social presence continuum, the various communication types rank as follows from the lowest to the highest: email, phone, video conferencing, and face-to-face meetings. Andres’ comparison between development teams using video-conferencing versus face-to-face meetings revealed that the latter group was far more efficient and productive, even though the video-conferencing team benefitted from reduced travel costs and time.

The study conducted in 2002, however, has several shortcomings. First, it is already seven years old and Internet costs have dropped and speeds have improved significantly since then. Considering the improvements in video quality and availability and computer speeds, this form of communication became more feasible recently. In addition, today’s managers are just now starting to learn how to use these means of communication efficiently. For example, even though email technology has been around for two decades now, many managers still find that emails can create a lot of ambiguity. The challenge to future generations of managers will be to change their writing style to match the limitations of email and other text messaging technologies. Another important factor to consider is that written communication may be stored indefinitely and have legal consequences; hence, more often than not, managers may intentionally prefer to avoid such communication channels for political or legal reasons. The study by Andres (2002), however, resulted in a negative view of video conferencing probably because the technology was not yet matured and the team members were not yet comfortable with it.

For video conferencing to work well, all participants need to be knowledgeable of the peculiar characteristics of that technology and adjust their communication style and speech accordingly. Regardless of meeting type, another important factor is preparation. What could be researched in conjunction with Andres’ study in the future is the degree of preparation of the group. Do team members invest enough time in preparing questions and answers for their teammates before coming to the meeting? Video conferences may require more preparation than face-to-face meetings in some circumstances.

Another opportunity for software businesses and challenge for managers worldwide is outsourcing. In the year 2007, $70 billion were spent globally for outsourced software development (Scott, 2007). Given the extreme shortage of IT skills in the U.S. and Europe, many companies take advantage of globalization by choosing international suppliers for their software development tasks. Outsourcing, however, requires elaborate coordination between the organization and its many supplier groups. The idea is that in total, coordination costs and problems are less costly than in-house development; however, this goal is not always achieved. While outsourcing, when it is deployed and coordinated correctly, can result in 24 hour development worldwide and thereby provide continuous services to the organization around the clock, it may result in the loss of intellectual property. While mechanic parts are patentable in most countries that support intellectual property rights, software is not patentable in most countries outside North America.

In addition to the challenge of managing outsourcing, software organizations exploit technologies in various ways to save costs, for example by offering remote access, telecommuting, and service-oriented architectures (SOA) (Scott, 2007). Remote access and telecommuting has increased six-fold between 1997 and 2005 and resulted in $300 million annual savings due to a reduction of office space (2007). SOA is a similar concept and involves a software rental for customers. Instead of buying, installing, and maintaining software and servers, customers can rent a service online and reduce the total cost of ownership because these activities are no longer required on the customer side. Gradually the virtualization of the software business opens new horizons and provides further opportunities but it also presents managers with endless challenges.

Some of the strengths and weaknesses of offshore and virtual team development were studied by Slavova (2000). In the year 2000, India and Ireland were the largest offshore software development locations. Offshore companies can offer up to 60% cost reduction, a faster completion of development tasks by distributing them around the globe, and specific domain knowledge which they acquired over the years providing similar services to other customers. The integration of work from external sources, however, constitutes a major hurdle. Furthermore, language and cultural issues can cause serious communication problems that put the project at risk, especially when misunderstandings cause misinterpretations of project specification documents. Slavova (2000) found that the most common remedy and strategy avoiding problems with offshore suppliers is to visit them frequently face-to-face; however, this tactic results in higher travel costs and disruptions of the managers’ workflows and hence may offset the benefits gained for outsourcing altogether. Managers in the software business need therefore to balance the risks and opportunity potentials before engaging in outsourcing because for many companies this strategy failed to pay off in the end.

A huge opportunity that emerged in the last decade is online innovation. The collective innovation effort of many individuals and companies is generally known as open-source on the Internet and it has lead to many advances in the computer technology, such as the free Linux operating system. At first businesses felt threatened by this wave of developments on the market because the businesses perceived that open-source solutions were in competition with their products. In many cases this was and still is in fact true; however, a couple of companies, including IBM, are exploiting this new way of innovation for their own and for a common benefit (Vujovic & Ulhøi, 2008). Because software companies operate in an increasingly instable environment, they struggle to create continuously new and better products. By exposing the computer code to the public on the Internet, companies can benefit from ideas submitted by the public, especially other companies. Furthermore, companies benefit from free bug finding and testing by external users but one of the primary reasons for “going open-source” is the quick adoption and spread of the company’s technology at a relatively little or no cost. The spread of IBM’s open-source technology, for example, is also free marketing for the company. But how can companies make money by offering something for free?

The closed innovation model (the traditional model of providing software without revealing the software code) can be combined with open-source, so the company can charge for the product. In other cases, the company can reveal the technological platform on the Internet for free and then sell specialized tools which utilize the new platform. The big money savers are obviously the shared development, testing, and maintenance costs since many interested parties work on the same project.

The knowledge-sharing model of open-source is nothing new, however. The philosophy and the benefits of open innovation models have been already realized in the third quarter of the nineteenth century. Back then, open innovation was practiced in the UK iron and

US steel industry. The cooperation of many industry players ended the domination of proprietary technologies for which costly royalties were due (Vujovic & Ulhøi, 2008). Given the dynamic environment of the IT industry and the short lifespan of computer technologies, the adoption of open innovation models gained much more popularity. By analyzing the largest open-source players in the market, Vujovic and Ulhøi put together a list of supportive strategies, which is shown in Table 2. Several of these strategies are quite relevant from a top management perspective as well, such as deploying open-source to block a competitor and using the open model as a gateway for greater market share.

Table 2

Strategies for adopting the open-source approach (Vujovic & Ulhøi, 2008).

Business Strategy

Obtaining higher market share

Obtaining market power

Better adoption of a product and thereby establishing standards

Shifting competitive advantage to another architectural layer

Making the product more ubiquitous

Delivering faster time-to-market

Spurring innovation

Complementing a revenue core stream

Blocking a competitor


Reviewing the rather recent emergence of the IT industry and the software industry in particular, several parallels can be drawn to management history. While Taylor’s scientific management was a highlight in the evolution of management science (Wren, 2005), the software industry seems to be lagging behind such great advancement. Due to its high level of complexity, the software development discipline is still plagued with quality problems stemming from a lack of standardization. Similar to Taylor’s efforts, managers need to analyze software development processes and develop industry-wide standards and measures. Once such measures and procedures exist, this will help make software projects much more predictable.

Much of today’s software industry practices would have been a déjà vu for Taylor, if he was still alive. In addition, the anomie and social disorganization concerns during the social person era apply today more dramatically than in the past. Mayo described in the 1940s how managers overemphasized on technical problems in the hope of raising efficiency ignoring the human social element (p. 296). The same situation is now evident to a larger degree in the computer industry. The rapid technological advances have created many opportunities and changed the work environment drastically. At the same time, however, management was unable to prepare for these dramatic shifts technology would bring to the workplace. At best, managers are simply reacting to technological advances because the consequences are mostly unpredictable given the complexity of human nature. For example, email brought several benefits such as low cost and simple asynchronous communication; however, many email messages are misunderstood because they are not written appropriately. Moreover, IT knowledge workers are struggling to keep up with the vast number of messages received per day as they constitute a severe disruption of the daily workflow.

As knowledge workers are becoming more and more essential to an organization’s survival and as organizations in this industry mature and require greater headcounts, the span of control is becoming an issue for managers to handle correctly. As discussed in Wren (2005), as the team size increases, the number of interrelations to be managed rises astronomically (p. 353). Managing larger teams poses a great problem because the sheer number of interrelations makes it also more difficult to develop trust within the team. Motivating large groups of knowledge workers can hence be tricky, especially because creative tasks can require a large degree of collaboration. Work design is hence a major hurdle for future managers to overcome. Much emphasis has been on hygiene factors and not on motivators of the workforce. Flexible hours, telecommuting, empowerment, and increased responsibility may help in the short-term but for the long-term management will need to find new strategies for retaining knowledge workers.

Product quality remains a big issue. Deming’s ideas are good but quality assurance in the software world is difficult to implement due to the lack of standards and measures. The open-source innovation model may provide some relief in this respect because the greater involvement of external developers can help improve overall quality. On the other hand, however, open-source projects are hard to manage for the same reason. Since open-source projects are self-directed and not owned by anyone in particular, those projects sometimes suffer from uncontrolled, tumorlike growth.

Several of Deming’s deadly sins (Wren, 2005, p. 463) apply directly to the software industry. Most products are made from scratch rather than from components and there is little standardization in software organizations. Since software developers have a tendency to see their job as a craft they defy standards and procedures. In addition, the rather complex environment with its dynamic requirements and the push for meeting deadlines make it easy for practitioners to lose sight of quality improvements through the preparation of organizational standards. High turnover and individual performance measures continue to be industry practice, even though many scientists, such as Deming, have argued for long that such measures are counterproductive.

Future managers need to find ways to compensate for the high turnover, if they cannot find a way to avoid it. The division of labor might work well for the company but it is not well perceived by the workforce which tends to require constant challenge. Top performers disfavor mundane tasks and prefer to walk away with all their knowledge. IBM has successfully deployed job enlargement for some time to combat this phenomenon (Wren, 2005, p.332). Unfortunately, this strategy might not work for every company and it can only be used within certain boundaries of the organization. Given the developments of the last two decades, managers will need to confront the discipline of knowledge worker management and find a workable solution for their organization.

The integration of management science with the advances in psychology and sociology may provide a route towards the solution of the knowledge worker management problem. It is crucial for managers to have an accurate understanding of the motivational drives for this particular group of the workforce. These employees enjoy higher income, greater flexibility and freedom, and greater bargain power. This puts them in a gray zone between the traditional, lower skilled employee and an owner in the company because knowledge workers create intellectual capital in the company. Because most of this capital is lost and remains with the employees when they decide to leave the organization, turnover can be much more damaging than with traditional workers. Managers can therefore not simply apply conventional strategies to this dissimilar group of employees; rather, they need to seek for more creative incentives for motivating and retaining knowledge workers.


Andres, H. P. (2002). A comparison of face-to-face and virtual software development teams. Team Performance Management, 8, 39-49. Retrieved March 15, 2009 from ProQuest.

Elliott, M., Dawson, R., Edwards, J. (2007). An analysis of software quality management at AWE plc. Software Quality Journal, 15, 347-364. Retrieved March 15, 2009 from ProQuest.

Flitman, A. (2003). Towards meaningful benchmarking of software development team productivity. Benchmarking, 10, 382-350. Retrieved March 15, 2009 from ProQuest.

Hamid, A., Tarek, K. (1992). Investigating the impacts of managerial turnover/succession on software project performance. Journal of Management Information Systems, 9, 127-145. Retrieved March 15, 2009 from ProQuest.

Kotlarsky, J., Oshri, I., van Hillegersberg, J., Kumar, K. (2007). Globally distributed component-based software development: an exploratory study of knowledge management and work division. Journal of Information Technology, 22, 161-174. Retrieved March 15, 2009 from ProQuest.

Mathew, J. (2007). The relationship of organizational culture with productivity and quality; A study of Indian software organizations. Employee Relations, 29, 677-697. Retrieved March 15, 2009 from ProQuest.

Mehta, N. (2008). Successful knowledge management implementation in global software companies. Journal of Knowledge Management, 12, 42-57. Retrieved March 15, 2009 from ProQuest.

Scott, J. E. (2007). Mobility, business process management, software sourcing, and maturity model trends: Propositions for the IS organization of the future. Information Systems Management, 24, 139-146. Retrieved March 15, 2009 from ProQuest.

Slavova, S. (2000). Offshore software development: strengths and weaknesses. Academy of Information and Management Sciences, 4, 16-22. Retrieved March 15, 2009 from ProQuest.

Vujovic, S., Ulhøi, J. P. (2008). Online innovation: the case of open source software development. European Journal of Innovation Management, 11, 142-157. Retrieved March 15, 2009 from ProQuest.

Top 5 Tips to Making Your Online Community

When staring up a new online community, or even regenerating an old one, the most important thing to consider is the categories. The main reason that people visit online communities is for discussion and debate. Categories are a brilliant way to split up conversation types so users to the website can find related discussions which they may be interested in. To ensure discussions occur, take some time to write out the areas that people may want to discuss related to your subject. Try not to put too many categories as people may feel a bit overwhelmed when visiting the website for the first time, and not know where a specific post should go. Do not however go the other way and make too few categories as they may become very general and posts will not stay specific to the categories.

A good way to ensure there are enough categories without cluttering the community is to create sub categories. These sit nicely within a specified category and give suggestions of more in depth areas that may be more suited to the post.


If you are going to use a new forum with none or very few posts in, one way to make users remember the website and potentially start posting, is to ensure the community has a good design. Even if the forum is empty, a good clean design that is specified towards the audience and subject of the community can help to make it stand out from many other dead communities. It also shows users that the owner of the community has made an effort, rather than just having a blank default design, and therefore there is more chance of a response from posting a topic.


With a wide variety of community or forum software available on the Internet, it is very important to ensure you pick the perfect one. Users may not be as bothered by the software, but as the person who is required to administer the forum and set up various aspects, if the software is wrong it can be extremely hard to get the community running as smoothly as you may wish.

The other aspect of deciding what software you want to use, is the availability of add-ons. These can be games, statistics from the website, a shopping system or even an enhancement to the usability of the community. This again can be a key factor in visitors becoming part of your online community, many of the newer add-ons can add a lot of value to your community and give it a much more professional feel, especially when it is relatively new.

Remain Active

To me this seems like the most obvious of all the tips, but to many it is something that seems to pass them by. All forums will go through a period where there is a lack of posts, this could be as a result of the subject matter being seasonal, people are on holiday during the summer months, or just simply that the interest in the forum has dropped.

If you are going to attempt to keep the community active, you need to maintain you input and enthusiasm for the community. Without this, no users are likely to post there again, especially if no one else is willing to post on the community.

If members see you are enthusiastic about the subject and the community, they will become enthusiastic themselves and hopefully increase the post count and discussions.


The final tip for a successful online community is the moderating of the community. It is very important to ensure posts and topics and moderated into the correct areas, while deleting any spam or inappropriate content. When forums are very young however, many people are drawn to smaller more intimate forums due to their lack of moderation. This may sound strange, but large communities often will over moderate users and only allow certain posts. Smaller communities however are less concerned with these types of posts and more concerned that discussions are actually occurring. The balance required is a fine one, moderating is a good thing, in moderation, but make sure you don’t over do it.

The Five Stages of Interviewing Offshore Software

The following describes some techniques that I use when interviewing candidates for Software Engineering positions in offshore locations. I have brought these techniques together into five stages:

  1. Logic and Problem Solving Ability
  2. Computing Knowledge
  3. Specific Skills
  4. Spoken and Written English Ability
  5. Communication Skills and Personality
  1. Logic and Problem Solving Ability

When I first started out interviewing offshore software engineering candidates in Malaysia, I wasted a lot of time looking at their CVs and using those as the basis for the first stages of interviews. This resulted in the candidates doing a lot of talking about projects they (claimed) they had done and skills they (thought) they had before I even started measuring their technical ability. Some CVs looked very impressive indeed, their authors claiming almost endless lists of skills acquired, many to “advanced” standards. Now, back in the UK, for the most part when talking about highly skilled jobs there is an unspoken rule when it comes to CVs, candidates only listing skills that are really worth listing and certainly being prepared to back up any claims of “advanced” levels of proficiency in any of those claimed skills. It is no surprise that upon receiving such impressive CVs in Malaysia I assumed the candidates were very high quality indeed and decided that the first hour of the interview should be about them talking about their experience (to help them relax into the interview) and me doing a bit of a sell on the role and company. Only after that would we dive into the technical questions, which looked like they would a breeze for them. Unfortunately, the aforementioned CV “rule” that applies in the UK does not apply in Malaysia, nor does it at any other offshore location that I have interviewed candidates from thus far. I could therefore quite easily waste the first hour of an interview talking to a candidate about their CV, and perhaps spending some time talking about the role and the company, before even thinking about getting their hands dirty with some technical questions. When the technical phase began, many candidates were turned down because it quickly became apparent that the person I had talked to for the previous hour or so was not the person who was on the piece of paper (the CV) in front of me; they had exaggerated wildly and in some cases blatantly lied on their CV.

When only recruiting for one or two positions, wasting an hour here and there talking to a candidate who has deliberately fabricated their CV is not a big deal. Indeed, many candidates I talked to were truthful and I subsequently hired them. However, when recruiting on a larger scale offshore, the numbers go against you and such an approach can be hugely inefficient. Given that I was recruiting on a larger scale, I had to find a way to determine as quickly as possible if a candidate I was interviewing was worth talking to further. I therefore put aside their CVs and piles of certificates and jumped straight into a bunch of logic and problem solving activities (which involve writing code) on the whiteboard; I was quietly amazed with the results.

The questions were short and simple, often programmatic, such as:

  1. Using the language of your choice (or even pseudocode for junior candidates), write a function to reverse a string.
  2. Using the language of your choice (or even pseudocode for junior candidates), write a function that prints all the prime numbers from 1 to n.

At the very start of the interview, before asking these questions, I would I often ask a candidate to rate themselves, 1-10 (1 being beginner, 10 being advanced), in each of the programming languages they listed on their CV, quite a few responding confidently that they were 8,9, 10’s in languages such as C and Java. I would record these ratings on the whiteboard, in view of the candidate, for later reference. I then asked the candidate to complete questions similar to (1) and (2) on the whiteboard in front of me. The key with the questions is that I emphasise to the candidates that they are to choose which language they want to use when writing the solution to the problem, thus removing any potential for them to claim they struggled with the question due to a particular language being imposed on them. Furthermore, I am happy for them to use pseudocode / English if they are unable to code the solution (though that in itself will tell me something about the ability of the candidate and will set alarm bells off if they are applying for a more senior position). Based on the candidate’s solution to problems such as these, it doesn’t take long to establish if they are worth interviewing further for the role in question. We are talking minutes. For example, I still vividly remember an already very senior candidate C developer who had worked in the USA as an embedded engineer and was now back in Malaysia working on C code related to aviation systems. He applied for one of my senior software engineer jobs in Malaysia. On paper, he looked fantastic – good degree, strong background and the right skills. To my surprise, he struggled to reverse a string in his language of choice, C, for which he had rated himself as a 9 when asked at the start of the interview (and which I wrote on the board). I don’t mean he got one or two statements wrong due to not remembering syntax, I mean he completely could not reverse a string as per question (1) above. After far too much guidance from me, eventually we got there. Thinking he was nervous, I then gave him the prime numbers question (2) as above. After some initial explanation from me as to what a prime number was (he did know it in the end, perhaps he forgot) he had no idea where to go and just wrote drivel on the board, continually wiping it out, puzzling his forehead and writing yet more drivel. He looked embarrassed. I stopped it there and asked him what he now thought his ranking was in C. I could see the look of torment on his face, like he still wanted to stick with his original answer. “5 or 6, perhaps?”, he reluctantly admitted. Based on his claimed level of experience and the level job he was applying for in Malaysia, I had no further questions. Although I did not set a timer off, I would be surprised if the whole thing lasted 15 minutes.

I now never start an interview without asking similar questions to the above in the opening 15-30 minutes, no matter what the level of software engineer I am interviewing for. Candidates do not proceed to other stages without first getting past this stage. The level of role will merely determine how much leeway I give for incorrect answers. For example, for a very junior position, what I will look for is not necessarily the right answer, but how the candidate thinks about the solution. At the very least, they should be able to describe to me how their algorithm could solve the problem. In my view, even for such a junior candidate, if somebody has been through university, done a Computer Science degree, and cannot even explain how to reverse a string or does not know what a prime number is, they probably shouldn’t work for me. Likewise, if somebody has been working for 10 years and cannot reverse a string in the language of their choice, they definitely shouldn’t be working for me. Importantly, very importantly, no matter what the level of the candidate is, I ensure that they never guess the solution to my problems and try to bluff their way to an answer, talking about it as if it’s the right answer to impress me. Anybody that has worked for me will know that I hate guessing in software engineering. A candidate who is willing to guess and try to bluff their way through an interview is likely to do the same when they are working on a task for me or someone else. For example, they may, not understanding a problem thoroughly enough and hence guessing, go off and write reams of code that they are equally unsure of. I always tell my staff that if they are unsure of the work they are doing, to stop what they are doing and come and see the team leader or me to discuss; never guess. So, I always jump onto any evidence of guessing during this stage and find out why the candidate is doing it.

One other point worth mentioning about the questioning techniques I describe above is that that are easy to conduct with candidates that are remote, as long as they have a computer and Internet connection. For example, I have interviewed candidates in completely different countries by setting up a shared whiteboard session (many Internet communications tools offer such a facility) or a shared Google Doc and asking them to type the solution to the problem while we talk over the phone. Arguably, given that we are not in the same room they could cheat by looking up solutions on the Internet, but since I do not allow much time for the questions and I am also on the phone at the time, this is unlikely. Furthermore, I take steps to search for any solutions to the problems I ask online and ensure they did not merely type out one of those. That said, even if I am suspicious that they copied a certain solution, it is trivial for me to build upon their solution and ask them to modify it to solve a related problem. Use of this technique has allowed me to screen many remote candidates before inviting them to travel to my place of work for an interview.

To summarise, my advice when interviewing offshore candidates is to get a quick handle on their Logic and Problem Solving ability before deciding whether or not to move on to talk about their experience and the role. Spend up to 30 minutes doing this and give them a fair chance to answer a range of questions, not just a single question. Make sure the questions involve actually writing code, but ensure the questions allow flexibility in the languages used unless the role you are recruiting for is a senior role that uses primarily mandates use of a specific language. By all means ask further Logic and Problem Solving questions in later stages, but the key of this stage is to provide a quick “Go” or “No Go” on a given candidate.

  1. Computing Knowledge

Although I know of a number examples of colleagues that neither studied Computer Science at degree level nor had any knowledge of computers who went on to become exceptional software engineers during their career, when I interview offshore candidates I do look for general Computing Knowledge; so many aspects of the work, at least in my experience, that software engineers do every day depends upon a having a solid foundation in the principles of computing. Perhaps more obviously to me, I believe it to be of great advantage if a candidate has a genuine interest in computers and understands how they are work. More often than not, such candidates will have interacted with computers regularly as they were growing up, perhaps taking them apart, making modifications, playing games, configuring networks and suchlike. I always keep a lookout for these candidates and they certainly exist in offshore locations such as Malaysia.

A simple way to determine how much a candidate knows about computers is ask them to draw a diagram of a computer on a whiteboard, asking them to label the various components of the system. Then ask them to describe the function of these components. It’s a simple question and how well they perform at this question will give me an idea of how much they know about computing. If they do well at the question, perhaps I’ll throw in some more challenging questions about the hardware or maybe we’ll move onto software such as talking about how a compiler works, or perhaps we’ll talk about fundamental algorithms. The level of questions I ask depends on the seniority of the role being applied for, but I nearly always begin with a question about a computer. This exercise, since it is mainly on the whiteboard, also gives me a further opportunity, following the Logic and Problem Solving stage, to assess the candidate’s communication skills.

When I was at Nottingham University in the UK reading for my degree in Computer Science, I was surrounded by people like me, people who loved computers and who “messed around” with them on a regular basis, just for the fun of it. In my view, people like this need to be looked out for, so I nearly always ask offshore candidates why they are pursuing a career in software engineering and try to find out how interested they are in computers.

My advice, therefore, when looking for offshore candidates is to look for those that have a genuine interest in computers, who possess a good understanding of their inner workings and who can answer typical computer science type questions with ease. Try to establish how good they are in this area before you move on to specific skills, as that stage will most likely require significantly more time and involve people other than yourself if you are the hiring manager.

  1. Specific Skills

By this stage, following the previous two stages, which just involved me and the candidate, I will now have a pretty good “gut feel” on the candidate’s suitability for the role. After a little more talk about their experience and profile (including talk about software development processes etc), as well as some more talk from me about the role and company, now is the time to get other people involved and start assessing specific skills. I normally involve at least two of my software engineering subordinates in the skills assessment stage, as well as at least one other people manager. If the candidate will have any dealings with the core team (most likely), I will also include engineers and managers from the core team offices e.g. in the UK or US. All are free to ask any questions they like and their views hold considerable weight in my decision-making process. After all, software development is very much a team sport and it is important to me that my team buys into the idea of a given candidate joining their team; they are the ones that will be working with them day-to-day. I therefore allow to several hours of talks with these various stakeholders, either on the same day or on alternative days if time does not permit. Some of these talks, if with overseas colleagues, take place via telephone, Skype, or suchlike.

I then usually finish off the skills assessment stage by giving them one or more online tests on relevant topics. I use a reputable supplier of such tests. Although these tests do help me form a view of a given candidate’s skills, I normally give them far less weight than the opinions of my subordinates and other colleagues. In most cases, their ability to establish if a candidate can do the job far outweighs the results of these online tests, but it’s all about forming a total picture of a candidate.

To summarise this stage, my advice about specific skills is to get as many technical and managerial people involved in the interview process as you can, including those from core teams if applicable. Meet up /discuss after all interviews are finished and come to a conclusion as a team, each giving a “thumbs up” or “thumbs down”. Also use online testing tools to further assess specific skills, but use their results with caution.

  1. Spoken and Written English Ability

For pretty much any native English-speaking business that is to interact with an offshore software development team that, most likely, speaks English as a second language, proficiency in spoken and written English is paramount. A given offshore software engineer may be a good programmer, but if they cannot communicate with colleagues in the main country where the business operates it will cause a new set of problems focused around communication. I remember back to around 2003 when one of my friends in the UK, who at the time was dealing with a computer equipment supplier in Taiwan, wrote them a technical question about their firmware code. Although I do not remember the precise question he asked, which was in an email, it was very open-ended, something to the effect of “Could you please describe the function of this firmware module in more detail”. The answer he received, much to the amusement of all of the colleagues that were within his proximity at the time, was “Yes.”. In Malaysia, where I currently run my business, English is spoken and written rather well as a second language. However, not all candidates that I have interviewed have had a strong command of the English language, largely down to the area in which they grew up and the schools and colleges that they attended. Conference calls with such candidates, or email exchanges, or document write-ups, would be very difficult indeed. I always, therefore, assess spoken and written English skills during an interview. The spoken part is trivial as the candidate, based on the previous three stages, will have talked to a number of my colleagues in addition to myself, so we can form an opinion on their working knowledge of English. For the written part, I did not used to spend much time investigating this if they spoke English well. However, one of my subordinates at the time once suggested to me that we have candidates write a short document on a non-technical subject that pretty much any candidate would be able to write about. For example, the topic to write about in English could be “Describe the person you most admire in the world and why”. This is the kind of topic anybody should be able to write about, no matter what their career experience and technical background is. Some people may write about a great leader or scientist that they admire. Some may write about one of their parents or relatives. That is the beauty of such an open-ended question. I therefore now include this type of exercise wherever possible when interviewing an offshore candidate to assess their written English skills.

In summary, my advice for this stage is to realise the importance that spoken and written English ability play in offshore development scenarios This may sound obvious but it is something that can be overlooked in all the drama of assessing specific programming skills etc. In particular, written English ability can be easily overlooked if the candidate sounds like they can speak reasonably good English. Ultimately, failing to properly assess the written, as well as spoken,English skills of offshore candidates may place unnecessary burdens on the core team, who will end up losing time and getting frustrated in the process. To assess English skills, first of all ensure that all interviewers involved in the process take note the candidate’s spoken English ability, particularly those conducting in-depth assessments of skills (for example, how well does the candidate articulate about a certain technical topic?). To assess written English skills, one trivial technique is to give the candidates a simple written English exercise that is open-ended and non-technical. Any native English speaker will be able to read their answer and quickly determine how good their written English skills are.

  1. Communication Skills and Personality

In software development, given that it can be thought of in the context of a team sport, communication skills and personality traits naturally come into play. Assessing communication skills and personality traits is not something I leave until the end. In fact, it is something that is done in almost all of the stages prior to this. By this stage, I certainly have a good handle on a candidate’s communication skills; this stage merely completes the process and considers Communication and Personality separately from the other stages. One of the things I like do in this stage, which I feel is quite important, is invite the candidate out to lunch with my team. This provides a relaxed atmosphere in which to talk about both work and non-work related topics, and is an opportunity for the team to further gain confidence in and acceptance of the candidate. It certainly gives a good picture of how a potential candidate will fit into the team. Likewise, it allows the candidate to chat with many members of the team and ask questions about life in the company, the type of work being done, and suchlike, so it is a beneficial process for them too.

On our return to the office after lunch, I have a final session with the candidate to ask them more communication and personality related questions. I am not a fan of psychometric assessments or suchlike, so I keep it verbal and rather informal, but the types of questions I ask are all about ascertaining if the candidate could fit into the offshore team as well as work with the core team. In addition to further discussing the role, I would perhaps ask fairly open questions like “What would you do if somebody modified your code and broke an area of functionality that you had implemented?” Or, “How would you react if the team leader insisted that you used their approach instead of yours?” Or, “What’s your view on coding standards?” The answers to these types of questions can indicate personality traits that may be disruptive in a team environment and may need further investigation before making an offer. In some cases, for more senior positions, I give them a piece of code and ask them to review it, observing how they go about the process and what kind of issues they find. This is not really about the skill in conducting a review (we’ve already assessed skills), but more about how they communicate with me. I also like to ask questions about testing. A good software engineer knows how to test code that they write, and explaining this is an exercise in communication.

One final exercise I give them to demonstrate their communication skills is another whiteboard exercise. For example, I may ask the candidate to map out their career plans onto the whiteboard. This not only allows me to see how driven the candidate is with respect to their own career, but also shows me how good they are at presenting information to an audience. Another similar question I could do on the whiteboard is to ask them to describe a software development process that they claim to know about.

With the notes I make in this stage, together with the notes from all of the stakeholder that interviewed the candidate, I am now able to conclude if the candidate has the necessary Communication Skills and Personality traits that would make them a likely fit for the role they are applying for.

Agile Or Incremental Software Development


First of all, “which is appropriate?” would be a better question. The truth is that each software development method is appropriate in different circumstances. This article discusses my personal experiences with these approaches within Axios, and I welcome any comments or different perspectives. It’s fair to say that we use our own flavours of both of these methodologies so if you’re a purist you might want to look away now.

General considerations.

The first consideration when choosing a project management methodology is to recognize that software development has technical, creative and people management elements to it – each of these must be considered.

Whichever methodology is chosen must facilitate communication. This means recognising that the customer has the clearest vision for their business but will generally lack understanding of what is possible or what each requirement may cost. The software development firm will understand the technologies but need to keep this closely aligned with valuable business outcomes. This balance requires a meeting of the minds and a degree of trust.

Another key consideration to remember is that it is not cost-effective to eliminate all uncertainty and risk.

Instead, we need to plan what can be reasonably planned and have agreed processes for managing any other challenges along the way. A classic example of this is the customer wanting to change scope mid-way through the project. We all know it’s going to happen so it’s important to discuss up-front how this would be handled under each project management methodology. If it’s going to happen a lot, such as when the requirements are not well understood up-front, then this may actually be a primary deciding factor in which project management methodology is appropriate.

Creatively speaking, the more precise requirements are, the closer any developer will be able to reproduce them for a given number of iterations. This can be both a good and a bad thing – if the customer has specific requirements but doesn’t communicate them (or makes assumptions about what the developer understands about their business) then this will likely result in the customer being unhappy with the result because it didn’t accord to what they saw in their minds-eye. At that point remediation work needs to be carried out and there is the potential for a dispute about who pays for that to be done. Conversely, there are instances where getting too bogged down in precise requirements stifles the creativity of the developers or limits the potential for interesting feedback from end-users. Again, this may form an important factor in selecting the project management methodology.

The last major factor comes about through an almost paradoxical customer need for both certainty of cost and development time-frames, and the need to be able to flexibly change requirements on the basis of user feedback. Clearly, these requirements work against each other to a degree and the manner in which scope is controlled and changes are costed is crucial in determining which project management methodology will deliver a satisfactory project outcome. As I discuss in my software asset whitepaper (see link to our other articles below), the key to a successful custom software project is a return on investment. This cannot occur if costs are unbounded.

How we manage projects.

An overview of this approach.


  • Work is divided up into milestones (1-4 months of work)
  • Detailed planning, design and risk elimination up-front
  • Project is controlled against the plan, less reliance on ongoing management of opportunities and issues
  • Outcomes are only as good as the detail in the design and the customer’s willingness to accept the developers professional judgement on everything else
  • Possible to achieve these in a fixed cost/time-frame


  • Work is divided up in to small sprints (2-3 weeks work)
  • Focus is on visual prototyping and collaboration, project is controlled through feedback
  • Keep iterating until desired outcome is achieved
  • Outcomes can be as close to “perfect” as the customer desires if they are willing to keep paying for iterations, risk here is disappearing down an endless trail of redevelopment
  • As number of iterations cannot be known up-front, fixed cost and timeframes are not possible

When does it make sense to use this approach?


  • Clear understanding of requirements up-front
  • Customer priorities include fixed cost/timeframe, lower risk, higher quality
  • Works under a diverse range of customer/supplier relationship “modes” (purely transactional or a long-term strategic/partnership style engagement)
  • Examples include developing custom business systems, post-R&D product development


  • Requirements are vague initially and are expected to evolve throughout the project
  • Customer priorities include the ability to rapidly produce prototypes (for R&D or funding purposes), flexibility and responsiveness to market feedback
  • Only works where the customer and developers dedicate resources, work closely together and do so as equals
  • Examples include initial product R&D and development, highly creative projects or where many ideas must be considered/tried

What are the risks of using this approach?


  • Flexibility and responsiveness to changing requirements or ideas can be difficult to accommodate as they require extensive re-planning. It is often preferable to finish a milestone and complete changes afterwards
  • Interpretation of vague requirements or designs can cause some friction if systems for dealing with these potential issues are not agreed upon in advance. It is also advisable for the customer to have a small contingency budget available to polish, refine or re-mediate any small areas of the system that don’t meet their expectations due to vague requirements
  • There is a risk of disengagement between the customer and the developers during project work because less ongoing communications are required after planning. Processes are needed to ensure communication is frequent and not issue focussed


  • Customers can labour “perfection” too much and end up with too many iterations and not enough functionality for their spend – there is a need for restraint here
  • As every hour is billable and exposed to the customer there is a danger that the customer will resent “paying for bugs”, that is any work touching up something that wasn’t delivered exactly as they imagined it the first time every time. It is necessary to understand that iterations are not bugs but an essential part of this style of development. Even where testing and debugging time is required this is no different to this being costed in to an incremental/quoted project

What is the rough process we follow and how is the customer involved?


  • Possible consulting up-front to ascertain business requirements
  • Functional requirements, screen designs and program workflows for a stage of the project are extensively workshopped with the customer, documented, costed and signed off
  • Development begins against the plan, progress/issues/opportunities are communicated with the customer
  • Test builds are published to a server for the customer to look at and all job progress and feedback is coordinated through a customer portal
  • Feature-complete builds are published for user acceptance testing and final changes
  • Final builds are deployed to the customer’s environment and any ancillary support activities such as data migration, training and documentation updates are completed


  • The customer will come to Axios with high-level requirements and/or mock-ups of the software required
  • Axios may build a rapid-prototype to help everyone get on the same page around visual style, workflows etc – this would be the first sprint
  • Frequent customer meetings to demonstrate progress and gather new ideas
  • Development is always completed against feedback gathered rather than an overarching plan
  • The final build isn’t so much planned as it is simply when the customer has no new changes that warrant paid work to be completed

How are resources allocated? Are there any timing considerations?


  • Resources required to complete a project are known up-front which allows them to be booked in and a delivery time-frame accurately planned
  • Where scope changes would require more or less time (or different resources) than originally planned, this can affect resource allocations for other projects and Axios may be reluctant to do this unless it has under-utilised staff at that time


  • Some customers are happy to lock in a monthly budget of hours in which case resources are assured
  • Customers who are not comfortable locking in a monthly budget (and want to work entirely casually) may find that there are months where resources are not available and project timing is affected
  • In either case, the key to using available resources effectively is good task prioritisation. Use the weekly/fortnightly meetings to ensure that work that has the greatest impact to the business is completed first, this may be work towards large strategic elements of functionality or simply responding to important user feedback or business opportunities

How is project success measured?


  • The planned functionality is delivered on time and on budget
  • The functionality delivered meets business objectives
  • The product quality is high
  • Customer satisfaction is high
  • Axios achieves these outcomes at a reasonable profit margin, enjoys the project, receives positive referrals etc


  • The customer has benefited from the evolutionary approach and ended up with a product that is superior to what they could have based on forward planning alone
  • Costs, timeframes and other commercial imperatives have been managed within acceptable boundaries
  • The end product quality is high
  • Customer satisfaction is high
  • Axios achieves these outcomes at a reasonable profit margin, enjoys the project, receives positive referrals etc

How are these projects billed?


  • Up-front requirements and design consulting may be quoted or time and materials
  • The project quoted cost is divided between a commencement payment and monthly progress payments during development and finalisation
  • Variations, if agreed to be completed alongside as opposed to after the milestone, are billed time and materials
  • There may or may not be subsequent milestones that were initially planned or agreed upon along the way that would also be quoted and billed in a similar manner
  • Typically there would be a support and maintenance agreement commencing once the project is completed


  • Monthly time and materials invoices for all time spent by Axios (note this includes project management, customer communication, testing, debugging etc)

Is the work guaranteed?


  • Where milestones are quoted and completed without variation, Axios warrants that it will fix defects without additional cost for 3 months after deployment
  • Warranties do not cover enhancements, i.e. where the implementation of a vague requirement works but does not meet the customer’s expectations
  • Support and maintenance plans can be used to extend these warranties


  • All work on agile projects is on a “best endeavours” basis, that is we will change or fix anything requested but the time is billable

Who assumes what risks?


  • Risk-share model
  • The customer assumes the risk that the specifications and designs agreed upon will meet their end requirements and are detailed enough so that the end product matches their expectations
  • Axios assumes the risk that the implementation of those requirements into a technical solution can be achieved for the price specified – if we run over time delivering against the design we cover these costs


  • The customer assumes all risks

How are variations managed?


  • Ideally variations are not entertained until after the current quoted milestone is completed and has passed user acceptance
  • In urgent circumstances re-planning, design and quoting can be completed however this time is billable on a time and materials basis. Also, given the difficulty in tracing the root cause of bugs back to either being from quoted or variation work, we would typically insist the customer waived their warranty before entertaining this option


  • Agile projects are ideally suited to dealing with variations as we are effectively working at all times under the customer’s direction and feedback
  • Typically the customer would observe something they wanted changed, either as a result of a new idea, focus group feedback or a clarification of a design element, notify Axios, Axios then mocks up the changes, the customer approves them and they become part of the current or next development sprint

How are vague or unclear requirements managed?


  • We work under the assumption that where the customer has very specific requirements they will describe these and ensure they are represented in the design before signoff
  • Where the customer is looking for our professional judgement and experience, the requirements may be less detailed and the customer should accept our implementation of these requirements as fulfilling our obligations under the quote
  • If, during the warranty period, it becomes clear that our implementation of a requirement is inconsistent with the design, we will fix it without additional charge. Where our implementation works and is consistent, but does not accord with the customer’s unstated expectations, we consider this a variation
  • As this is a creative process, and nobody can read minds, this will happen to a small degree in every project. We allow around ~5% of the quoted project budget to deal with very minor remediation work. We encourage customers to also allocate a small contingency budget to complete any additional polishing or refinement after the milestone is completed
  • Remediation budgets can be minimised by making initial planning more detailed. This in itself is an overhead so striking the right balance is essential to avoid a false-economy


  • Vague requirements are essentially variations in the agile context and are handled the same way

How are project issues worked through?


  • The most common issues with incremental projects are variations and how vague requirements are handled, these are described above
  • All other issues are handled by discussing the matter and considering a win-win, or at least a proportionate outcome based on initially stated expectations
  • Issue management is initially handled by the team leader but can be escalated to the production or account manager (depending on who is most suitable to assist) and finally the managing director
  • Failing these approaches (which has never happened to date in Axios’ history) there are contracted mediation and arbitration processes


  • All issues are handled by discussing the matter and considering a win-win, or at least a proportionate outcome based on initially stated expectations
  • Issue management is initially handled by the team leader but can be escalated to the production or account manager (depending on who is most suitable to assist) and finally the managing director
  • Failing these approaches (which has never happened to date in Axios’ history) there are contracted mediation and arbitration processes

How is collaboration and communication managed?


  • Collaboration and communication is intense in the early planning stages of each milestone/build
  • Subsequent communication tends to be status reports, milestone demonstrations and raising any issues
  • There can be an intense burst of Axios/customer contact at the end when the customer is performing user-acceptance
  • Need to make sure the project team communicate successes and not just issues along the way or this can create the wrong customer perception – it is OK to report that there is nothing to report!


  • Collaboration and communication is constant and typically done in regular demonstration/feedback meetings

Key take-away points.

There are trade-offs in choosing either the agile or incremental project management methodology. It is helpful when a software development company is capable in both, discusses them up-front with customers and works with the customer to select the best approach for their project. Without this discussion up-front it can be difficult to manage expectations and it is unlikely that the project would be seen as successful by all stakeholders.

Custom software, done well.

Looking for an innovative and experienced custom application development firm?

Axios is an Adelaide-based .Net/SQL house with the technical and commercial capabilities to deliver on time and on budget. We understand that custom software is an asset and should improve your bottom line.

We call this bottom line innovation.

Project Management Needs Communication to Succeed

To be able to work with people you have to communicate. This is a fact that very few people object to.

But communication is not always that easy. You sometimes hear that people talk too much instead of doing the work they should. And if they talk too much, they definitely don’t inform about what should be informed about.

To communicate inside a project you need a plan. Most project methods have a plan on how to communicate and what questions to answer. But, these guidelines are not always followed and by not following the guidelines you lose a lot of information and team spirit.

Some people say that “I have written this in the project management software so they should know what is happening.” This is of course true in many cases, but by just writing something in a system doesn’t necessarily make it communicated.

Scrum is one popular project management method in software development. Using this method the whole team meets up every morning to discuss what they did since last meeting and what they are planning to do next. This is a meeting where everyone stands up to make a point that the meeting should be short. Everyone has questions that should be answered and they are able to bring up anything that is needed for the project to progress smoothly.

This is a perfect example of organizing communication. There are other opportunities to communicate as well, but this way everyone will be able to become involved in what is happening and you don’t spend time on small talk during this meeting.

This example is not to promote one project management method, but to bring up a good example on what to think about.

If you enter a project meeting you should think about what is important for you to communicate to other members of the project. When writing down questions and ideas to be brought up you will solve a lot of things yourself just by thinking about them in an organized way.

By being prepared for the meeting you will also contribute to an efficient and short meeting.

To make sure that what is communicated is not forgotten about the information should be documented in the project management software for everyone to follow and see.

A lot of things are also brought up between the meetings. Project members discuss matters regarding tasks in the project and come to conclusions on how to solve them. These discussions can be done by chat, phone call or just talking.

However, not everyone understands the necessity to document the discussions. If there was a question needed to be asked and if the discussion led to a solution it is important for everyone to be able to take part of the information. Maybe not at the current moment but in the future. It will also be documentation that is important for the project management team to understand why a task was solved the way it was.

Some project management software have their own, integrated chat engine. Having this integrated you will be able to connect the discussion to a task automatically and not have to think about documenting the discussion. However, that is not as easy for phone calls or just a discussion in the coffee area.

As a project manager it is important to set up guidelines for how to document these discussions. If possible, create templates in the project management software to support the documentation. You need to make the guidelines so easy that they are easy to follow and people feel it is bearable to document (since most people do not like to document too much).

A lot of people are great at communicating. However, organized communication is not that easy. It is therefore important that leaders give guidelines of the communication and follow these guidelines themselves to show good example. By documenting meetings in the project management software, project members will be able to go back to read what was communicated and you will also be able to reach people who were not part of the meeting. In some cases you will not have to communicate everything in a meeting but just communicate through the system.

Community In WordPress With Buddypress And bbPress

Running your own social network can be confusing and very complex to set up, but it doesn’t have to be. Buddypress was created to give you a simple way to bring WordPress user profiles to the front-end. This gives members the ability to view their profile information and interact with network components that are necessary to engage on your site.


Buddypress has several features that are designed for communications and interaction. Here are the Spotlight Features:

• User Groups. Allow your users to create micro-communities.
• Activity Streams, for members and groups. Site-wide directory and single threads.
• Notifications, get notified. Smart read/unread options fully integrated.
• Friendships, create connections. It’s always about who you know!
• Private Conversations with several members at one time.
• Extend BuddyPress with hundreds of third-party WordPress plugins.

If you are planning to set-up a network on your WordPress site, I suggest that you do not set it up when you launch your site. I have personal experience with setting up a network prematurely, and it’s not a good idea if you have little traffic coming to your site. You will end up spending valuable time tweaking your site and playing with features instead of creating quality content for the growth of your site. Remember, a network will not grow your business just because you install a few plugins. Instead, focus primarily on content marketing and aggressive advertising campaigns to reach your target audios.

If you have followed this series, then you know the X Theme is fully integrated with Buddypress and bbPress. That means the set-up time will be dramatically decreased than if you tried to setup network configurations on a WordPress theme that is not integrated with these plugins. You can always install Buddypress later down the road with a few clicks of a button if your subscribers are asking for intelligent interaction on your site. It’s always good to be prepared, but these features may not be a necessity for your business model. Try to always manage your time properly and don’t just install plugins just to install plugins. That mindset could be the death of your business!


You can easily integrate Buddypress and bbPress with the X Theme. X uses the WordPress Live Preview Editor to handle these plugin configurations. It also has built- in menu functions for both Buddypress and bbPress. This makes the setup time very fast.


bbPress is forum software, made the WordPress way. It was also created by the people who developed WordPress. So you know the plugin will be lightweight and secure. Here is the Philosophy behind bbPress:

1. Open Source, always and forever.
2. Less (code) is more.
3. Code is poetry.
4. Simplicity is a feature.
5. Speed & security are paramount to a great user experience.

I really enjoy the simplicity of bbPress. It really is a quality forum software that is perfect for support forums, community discussions and even mastermind groups. I have installed it on a few of my sites and it has been proven to be very reliable. Once you install bbPress you will notice three new menu tabs in the WordPress dashboard – forums, topics and replies. You can moderate all your activity from these 3 tabs. Optionally, you can delete and pin posts from the front-end. Out of the box bbPress is simple and has basic features. But there are hundreds of add-on plugins you can install to bring greater functionality to your community. The options are nearly endless!