Kim Man Lui
Hong Kong Polytechnic University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Kim Man Lui.
International Journal of Human-computer Studies \/ International Journal of Man-machine Studies | 2006
Kim Man Lui; Keith C. C. Chan
Agile Software Development methodologies have grown in popularity both among academic researchers and industrial practitioners. Among the various methodologies or practices proposed, pair programming, which is concerned with two programmers collaborating on design, coding and testing, has become a controversial focus of interest. Even though some success stories have been reported with the use of pair-programming in real software development environment, many people remain rather skeptical of the claims on pair-programming productivity. Previous studies in pair programming have only addressed the basic understanding of the productivity of pairs and they have not addressed the variation in productivity between pairs of varying skills and experience, such as between novice-novice and expert-expert. Statistical productivity measurements reported by different researchers also seem to lead to contradictory conclusions. Until now, the literature has not addressed how those results and experiments were related to each other. In this paper, we propose a controlled experiment called repeat-programming which can facilitate the understanding of relationships between human experience and programming productivity. Repeat-programming can be performed when controversial issues in non-traditional programming methodologies and development productivity need to be investigated into. To illustrate how the proposed empirical experiment can put arguable, divisive problems into perspective, we have examined the productivity in pair programming as a case study. With repeat-programming, we are able to (i) better understand why results of previous pair programming control experiments reached different conclusions as to the productivity of pair programming and (ii) most importantly, present a case in which novice-novice pairs against novice solos are much more productive than expert-expert pairs against expert solos.
IEEE Transactions on Engineering Management | 2008
Kim Man Lui; Keith C. C. Chan
Many software projects fail, whether failure is measured in terms of budget, schedule, or some other requirement. The causes of such failures are many, but are not always easily recognized. This is not the least due to the human dimension of corporate activities, as spurious or misdiagnosed issues in Enterprise Resource Planning (ERP) projects can take on a life of their own and become a magnet for company politics. This paper reports an industrial case in which the senior management attempted to deal with a troubled ERP implementation (SAP R/3) in an international fast moving consumer goods (FMCG) company during 2001 and 2002. This paper reflects this dimension as it uses original emails and PowerPoint slides to recount a number of representative episodes in a troubled but ultimately successful project. At the heart of this success is the realization that whereas it can be difficult and time-consuming to do root-cause analyses, it is relatively simple to identify problem owners. In this case, the senior management without IT backgrounds turned around a failing project by reorganizing the team structure according to process areas so that issues in each process area had one problem owner. We summarize the managements actions into a troubleshooting framework, and in addition, suggest three actions for rescuing troubled projects: keep the project manager but narrow down the managers scope of responsibility to one or two process areas; assign the right people to be responsible for other process areas; and have the General Manager chair the ERP meetings.
IEEE Transactions on Software Engineering | 2008
Kim Man Lui; Keith C. C. Chan; John T. Nosek
Pair programming involves-two developers simultaneously collaborating with each other on the same programming task to design and code a solution. Algorithm design and its implementation are normally interwoven in that implementation often provides feedback to enhance the design. Previous controlled pair programming experiments did not explore the efficacy of pairs versus individuals in program design-related tasks separately from coding. Variations in programmer skills in a particular language or an integrated development environment and the understanding of programming instructions can mask the skill of subjects in program design-related tasks. Programming aptitude tests (PATs) have been shown to correlate with programming performance. PATs do not require understanding of programming instructions and do not require a skill in any specific computer language. Two controlled experiments were conducted, with full-time professional programmers being the subjects who worked on increasingly complex programming aptitude tasks related to problem solving and algorithmic design. In both experiments, pairs significantly outperformed individuals, providing evidence of the value of pairs in program design-related tasks.
international conference on software engineering | 2004
Kim Man Lui; Keith C. C. Chan
Developing areas in China are attracting increasing investment in manufacturing. This has increased the local demand for software and, consequently, demands on local software teams. Such teams, typically small, inexperienced and suffer high personnel turnover, often produce defective products. As software process improvement models are unsuitable for such teams, research was conducted applying a test-driven development (TDD) approach. TDD quickly improved the overall team performance. Our findings are applicable in other Asian developing countries.
ieee international conference on cognitive informatics | 2004
Kim Man Lui; Keith C. C. Chan
As eXtreme programming (XP) has grown in popularity in both academia and industry, pair programming, two programmers collaborating on design, coding and testing, has become a controversial focus of interest. Many researchers and practitioners remain skeptical of claims for the productivity of pair programming. Three controlled experiments, by Nosek, William, and Nawrocki, all reported statistical productivity measurements, but the results were inconsistent and the differences among the results could not be explained because there exists no theoretical framework to articulate pair programming. This paper proposes a cognitive model that describes the programming mechanism and this in turn can be used to explain why and when a pair may outperform two individuals. The model helps explain discrepancies in the results of the above-mentioned experiments. To show how the proposed model can be applied, a psychological experiment was conducted in which twenty-two programmers who were informed only of the experiment and the results of Nosek, and of the descriptions of Williams and Nawrocki, were able to use our model to predict the possible outcomes of the experiments of Williams and Nawrocki.
Lecture Notes in Computer Science | 2005
Kim Man Lui; Keith C. C. Chan
This paper proposes an implementation roadmap that shows how inexperienced software teams in industrial developing areas in China can adopt eXtreme Programming (XP) to produce software applications. Inexperienced teams unfamiliar with XP can face difficulties in adopting at once all twelve XP practices in a “big bang” implementation strategy. Intuitively, a step-by-step approach might seem more practical; however, XP practices are heavily intertwined and mutually dependent, creating problems in terms of prioritizing and justifying one instructional sequence over another. We propose a way to technically analyze the complex interrelationships between XP practices by identifying cluster patterns. These patterns can then be used to assist us in sequencing the introduction XP practices, helping both inexperienced teams and classroom learners in using XP. This work has value in both industrial and educational contexts.
IET Software | 2008
Kim Man Lui; Keith C. C. Chan
The role of pair programming in software development is controversial. This is due partly to the relatively unclear benefit of pair programming over solo programming. There have been arguments either way and there have been studies to show that one is more cost-effective than the others. Rather than investigating into pair vs. solo programming here, we present a new process model combining both together. This paper argues and shows, with two case studies, that the fusing of pair and solo programming processes may actually be better than adopting either alone. In the proposed model called Software Process Fusion (SPF), a donor and a recipient process can be defined and if some transfer conditions are met, one process can be converted into another to achieve tasks with minimal costs. The transfer conditions we define is related to a Software Fusion Ratio (SFR). SFR can be used to evaluate the effectiveness of an SPF model. In our case studies, we observed that, with SPF, programmers would design solution patterns of their own in pairs and then use these patterns to build sub-modules in solos. We conclude that SPF can be a more effective approach to increase productivity of less experienced programmers.
ieee international conference on teaching assessment and learning for engineering | 2012
Hareton Leung; Herbert Lee; Kai-Pan Mark; Kim Man Lui
Although previous research has shown promising results on 3D in education, the standard method of viewing 3D content would not be practical in Hong Kong as many students need to wear two pairs of glasses due to nearsightedness. This paper will present our study of using the automultiscopic LCD display of Marvel Digital for 3D teaching on General Studies in a primary school in Hong Kong. Significant findings support that pupils learn science topics better in 3D than in 2D.
International Journal of Enterprise Information Systems | 2005
Kim Man Lui; Keith C. C. Chan
AcceleratedSAP is a methodology developed for cost-effective SAP R/3 installation. Numerous project managers have adopted AcceleratedSAP for SAP implementation in a range of industries around the world. The Capability Maturity Model (CMM) is, similarly, a software model that improves software processes in software organizations so that software projects run successfully and deliver quality products. AcceleratedSAP and CMM were developed independently with completely different objectives but share two important characteristics: good engineering and good management practices. Given the high failure rates in software projects, organizations have adopted well-established software models, such as AcceleratedSAP and CMM. This paper describes how AcceleratedSAP and CMM can be aligned in terms of software project management practices. By combining their unique features, ERP managers can easily adopt CMM for ERP installations so that the advantages that can be realized through CMM KPAs (Key Process Areas), and can be exploited for business process re-engineering.
Lecture Notes in Computer Science | 2006
Kim Man Lui; Keith C. C. Chan
The role of pair programming process in software development is controversial. This controversy arises in part from their being presented as alternatives, yet it would be more helpful to see them as complementary software management tools. This paper describes the application of such a complementary model, software process fusion (SPF), in a real-world software management situation in China. Pair and solo programming are adopted at different stages of the process and according to the background of programmers, as appropriate. Unlike the usual practice of eXtreme Programming, in which all production code must written in pairs, all-the-time pair programming, the proposed model encourages programmers to design code patterns of their own in pairs and then to use these patterns to build sub-modules solo. The report finds that the longer team members work alone, the more code patterns they develop for reuse later in pairs.