2 research outputs found

    Helping developers to help each other: a technique to facilitate understanding among professional software developers.

    Get PDF
    Much of a professional software developer’s work involves amending or extending pre-existing software; creating new software from scratch represents only a small proportion of their time. Even in a brand new project they still need to make sense of work others have done in the emerging software system. This research addresses how developers are helped or hindered in their own daily tasks by the actions of their peers. The literature commonly focuses on a specific aspect of the work such as code comprehension or the processes by which a project is run. This research instead takes a holistic view that considers all the activities involved in the job, but from a single uniting perspective: rather than conventional measures such as coding errors or delivery timescales, the criterion here is how a developer personally experiences their own productivity to be affected by their peers. The research used one-to-one interviews to identify common behaviours that help or hinder fellow software developers. Experienced software developers discussed team- friendly (and otherwise) behaviours across the breadth of their typical workplace tasks. The key themes to emerge from this qualitative data make a contribution to the understanding of software development by giving a comprehensive, developer’s- eye view of behaviours that help or hinder them across the whole range of tasks that fill their days. These themes laid the foundation for a practical application of the research. Techniques which had proved engaging and useful in the interviews were adapted into a continuing professional development workshop designed to encourage team discussion on issues of local resonance, selected by participants from those which the interviews had shown to be important. The topics resonated in a way which reinforces the validity of the interview findings. Participants enthusiastically identified useful actions for their own teams and would recommend the workshop to others. They also saw potential for future development into different workplace scenarios. The workshop is just one application of the understanding contributed by the research. The principles of good practice from the human perspective that have been identified also offer an empirical foundation that could be of practical use in appraisals, recruitment and any other scenario which requires an understanding of software developers not just as computer programmers but as people

    Reading CS classics

    Get PDF
    Knowledge of the theories of computer science (CS) helps in understanding the limitations of the field by providing users with new perspectives and insights. It can be a good practice for CS professionals to compile their own list of classics that highlights some key scientific concepts of the field. 'An Axiomatic Basis for Computer Programming,' by C.A.R. Hoare is a CS classic, which tells about the computing industry of the 1960s and 1970s in Britain. Hoare provides a foundation for the formal proofs of programs by an algebraic assertions-based approach. 'Computing Machinery and Intelligence,' by A.M. Turing tells about the computer numbering systems that provide unique representation to every programming construct. Dijkstra' s realization of the high intellectual challenge of programming and his encouragement made him one of the greatest minds of computer programming. Donald Knuth is extraordinary with his perspective on computer programming
    corecore