As the computer industry retools to leverage massively parallel graphics processing units (GPUs), this book is designed to meet the needs of working software developers who need to understand GPU ...programming with CUDA and increase efficiency in their projects. CUDA Application Design and Development starts with an introduction to parallel computing concepts for readers with no previous parallel experience, and focuses on issues of immediate importance to working software developers: achieving high performance, maintaining competitiveness, analyzing CUDA benefits versus costs, and determining application lifespan. The book then details the thought behind CUDA and teaches how to create, analyze, and debug CUDA applications. Throughout, the focus is on software engineering issues: how to use CUDA in the context of existing application code, with existing compilers, languages, software tools, and industry- standard API libraries. Using an approach refined in a series of well-received articles at Dr Dobb's Journal, author Rob Farber takes the reader step-by-step from fundamentals to implementation, moving from language theory to practical coding. * Includes multiple examples building from simple to more complex applications in four key areas: machine learning, visualization, vision recognition, and mobile computing * Addresses the foundational issues for CUDA development: multi-threaded programming and the different memory hierarchy * Includes teaching chapters designed to give a full understanding of CUDA tools, techniques and structure. * Presents CUDA techniques in the context of the hardware they are implemented on as well as other styles of programming that will help readers bridge into the new material
The surveyed companies applied hybrid development approaches to specific projects even when company-wide policies for process usage existed. These approaches emerged from the evolution of different ...work practices and were consistently used regardless of company size or industry sector.
On the basis of 13 agile transformation cases over 15 years, we identify nine challenges associated with implementing Scaled Agile Framework, Scrum at Scale, Spotify, Large-Scale Scrum, Nexus, and ...other mixed or customized large-scale agile frameworks. These challenges should be considered by organizations aspiring to pursue a large-scale agile strategy. We also provide recommendations for practitioners and agile researchers.
•Systematic review on large-scale agile transformations analyzing 52 papers.•We identify 35 reported challenges in 9 categories, and 29 success factors in 11 categories.•Few academic studies (6), ...mostly experience reports (46) identified.•Challenges e.g. difficulty of implementing, integrating other functions, and change resistance.•Success factors e.g. choosing and tailoring, management support, and mindset.
Agile methods have become an appealing alternative for companies striving to improve their performance, but the methods were originally designed for small and individual teams. This creates unique challenges when introducing agile at scale, when development teams must synchronize their activities, and there might be a need to interface with other organizational units. In this paper we present a systematic literature review on how agile methods and lean software development has been adopted at scale, focusing on reported challenges and success factors in the transformation. We conducted a systematic literature review of industrial large-scale agile transformations. Our keyword search found 1875 papers. We included 52 publications describing 42 industrial cases presenting the process of taking large-scale agile development into use. Almost 90% of the included papers were experience reports, indicating a lack of sound academic research on the topic. We identified 35 reported challenges grouped into nine categories, and 29 success factors, grouped into eleven categories. The most salient success factor categories were management support, choosing and customizing the agile model, training and coaching, and mindset and alignment.
Software and Systems Traceability provides a comprehensive description of the practices and theories of software traceability across all phases of the software development lifecycle. The term ...software traceability is derived from the concept of requirements traceability. Requirements traceability is the ability to track a requirement all the way from its origins to the downstream work products that implement that requirement in a software system. Software traceability is defined as the ability to relate the various types of software artefacts created during the development of software systems. Traceability relations can improve the quality of a product being developed, and reduce the time and cost of development. More specifically, traceability relations can support evolution of software systems, reuse of parts of a system by comparing components of new and existing systems, validation that a system meets its requirements, understanding of the rationale for certain design and implementation decisions, and analysis of the implications of changes in the system.
Aim/Purpose: Using the Agile Adoption Framework (AAF), this study aims to examine the agile potential of software development companies in Nepal based on their agile maturity level. In addition, this ...study also examines the impact of various basic agile practices in determining the maturity level of the agile processes being implemented in the software industry of Nepal.
Background: Even if most organizations in the software sector utilize agile development strategies, it is essential to evaluate their performance. Nepal’s software industry did not adopt agile techniques till 2014. The Nepalese industry must always adapt to new developments and discover ways to make software development more efficient and beneficial. The population of the study consists of 1,500 and 2,000 employees of software companies in Nepal implementing agile techniques.
Methodology: The sample size considered was 150 employees working in software companies in Nepal. However, only 106 respondents responded after three follow-ups. The sample was collected with purposive sampling. A questionnaire was developed to gain information on Customer Adaptive, Customer Collaboration, Continuous Delivery, Human Centric, and Technical Excellence related to agile practices along with the Agile Maturity Level.
Contribution: This research contributes to the understanding of agile practices adopted in software companies in developing countries like Nepal. It also reveals the determinants of the agility of software companies in developing countries.
Findings: The results suggest that some of the basic principles of agile have a very significant role in Agile Maturity Level in the Nepali context. In the context of Nepal, human-centered practices have a very high level of correlation, which plays a vital role as a major predictor of the agile maturity level. In addition, Technical Excellence is the variable that has the highest level of association with the Agile Maturity Level, making it the most significant predictor of this quality.
Recommendations for Practitioners: As Nepali software companies are mostly offshore or serve outsourcing companies, there is a very thin probability of Nepali developers being able to interact with actual clients and this might be one of the reasons for the Nepali industry not relying on Customer Adaptation and Collaboration as major factors of the Agile methodologies. Continuous Delivery, on the other hand, has a significant degree of correlation with Agile Maturity Level. Human-centric practices have a very high level of correlation as well as being a major predictor in determining the Agile Maturity Level in the context of Nepal.
Technical Excellence is the most significant predictor and the variable which has the highest level of correlation with Agile Maturity Level. Practitioners should mainly focus on technical excellence as well as human-centric practices to achieve a higher level of Agile Maturity.
Recommendation for Researchers: There has not been any such research in the Nepali context that anyone could rely on, to deep dive into their organizational concerns regarding agile strategies and plans. Researchers will need to focus on a more statistical approach with data-driven solutions to the issues related to people and processes. Researchers will need to cover freelancers as well as academics to get a different perspective on what can be the better practices to achieve a higher level of agile maturity.
Impact on Society: This study on Agile work is accessible not only to the software industry but also to the general public. The Agile technique has had a huge impact on society’s project management. It has revolutionized how teams approach project planning, development, and execution. The paper’s findings will further information regarding the Agile methodology, which emphasizes collaboration and communication, fosters teamwork and higher quality work, and promotes the exchange of knowledge, ideas, and the pursuit of common goals.
Future Research: Owing to the limitations of this study, it is necessary to analyze agile practices in the Nepalese software sector using additional factors that influence agile maturity. The conclusion that years of agile experience do not serve as a balancing factor for both agile practices and the Agile Maturity Level requires additional research. Whether a software outsourcing firm or not, the organization type had no bearing on the degree of maturity of agile methods; this leaves space for further research.
Organizations can choose from software development methodologies ranging from traditional to agile approaches. Researchers surveyed project managers and other team members about their choice of ...methodologies. The results indicate that although agile methodologies such as Agile Unified Process and Scrum are more prevalent than 10 years ago, traditional methodologies, including the waterfall model, are still popular. Organizations are also taking a hybrid approach, using multiple methodologies on projects. Furthermore, their choice of methodologies is associated with certain organizational, project, and team characteristics.