Provides a candid look at the ups and downs of software development, providing tips on how to ship great software on. The book is divided into five sections that chart the progress from initial design to successful product. The Adobe Reader format of this title is not suitable for use on the Pocket PC or Palm OS versions of Adobe Reader.
This book is designed for professionals and students in software engineering or information technology who are interested in understanding the dynamics of software development in order to assess and optimize their own process strategies. It explains how simulation of interrelated technical and social factors can provide a means for organizations to vastly improve their processes. It is structured for readers to approach the subject from different perspectives, and includes descriptive summaries of the best research and applications.
Get answers to common questions about setting up the design environment and building custom solutions with Microsoft Dynamics CRM. Delve into core architecture, tools, and techniques, and learn how to exploit powerful customization features. Authored by industry-leading experts, this book shows how to deliver intelligent CRM solutions that meet the unique challenges and requirements of your business. Discover how to: Set up the development environment Enhance the product’s APIs with your own code Execute business logic using plug-ins Build custom workflows that extend native workflow functions Create user-friendly integration with scripts and application extensions Code custom pages optimized for Microsoft Outlook with Offline Access Extend Microsoft Dynamics CRM using ASP.NET Create advanced Windows Workflow Foundation solutions Extend multilingual and multicurrency features Construct a custom security-access solution Get code samples on the Web.
An Expert Guide to Software Performance Optimization From mobile and cloud apps to video games to driverless vehicle control, more and more software is time-constrained: It must deliver reliable results seamlessly, consistently, and virtually instantaneously. If it doesn't, customers are unhappy--and sometimes lives are put at risk. When complex software underperforms or fails, software engineers need to identify and address the root causes. This is difficult and, historically, few tools have been available to help. In Understanding Software Dynamics, performance expert Richard L. Sites tackles the problem head on, offering expert methods and advanced tools for understanding complex, time-constrained software dynamics, improving reliability and troubleshooting challenging performance problems. Sites draws on several decades of experience pioneering software performance optimization, as well as extensive experience teaching graduate-level developers. He introduces principles and techniques for use in any environment, from embedded devices to datacenters, illuminating them with examples based on x86 or ARM processors running Linux and linked by Ethernet. He also guides readers through building and applying a powerful, new, extremely low-overhead open-source software tool, KUtrace, to precisely trace executions on every CPU core. Using insights gleaned from this tool, readers can apply nuanced solutions--not merely brute-force techniques such as turning off caches or cores. Measure and address issues associated with CPUs, memory, disk/SSD, networks, and their interactions Fix programs that are always too slow, and those that sometimes lag for no apparent reason Design useful observability, logging, and time-stamping capabilities into your code Reason more effectively about performance data to see why reality differs from expectations Identify problems such as excess execution, slow instruction execution, waiting for resources, and software locks Understanding Software Dynamics will be valuable to experienced software professionals, including application and OS developers, hardware and system architects, real-time system designers, and game developers, as well as advanced students. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
For those considering Extreme Programming, this book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience. While plenty of books address the what and why of agile development, very few offer the information users can apply directly.
Get your development schedules under control and on track!Corporate and commercial software-development teams all want solutions for one important problem--how to get their high-pressure development schedules under control. In RAPID DEVELOPMENT, author Steve McConnell addresses that concern head-on with overall strategies, specific best practices, and valuable tips that help shrink and control development schedules and keep projects moving.
A groundbreaking, unifying theory of computer science for low-cost, high-quality software The Cognitive Dynamics of Computer Science represents the culmination of more than thirty years of the author's hands-on experience in software development, which has resulted in a remarkable and sensible philosophy and practice of software development. It provides a groundbreaking ontology of computer science, while describing the processes, methodologies, and constructs needed to build high-quality, large-scale computer software systems on schedule and on budget. Based on his own experience in developing successful, low-cost software projects, the author makes a persuasive argument for developers to understand the philosophical underpinnings of software. He asserts that software in reality is an abstraction of the human thought system. The author draws from the seminal works of the great German philosophers--Kant, Hegel, and Schopenhauer--and recasts their theories of human mind and thought to create a unifying theory of computer science, cognitive dynamics, that opens the door to the next generation of computer science and forms the basic architecture for total autonomy. * Four detailed cases studies effectively demonstrate how philosophy and practice merge to meet the objective of high-quality, low-cost software. * The Autonomous Cognitive System chapter sets forth a model for a completely autonomous computer system, using the human thought system as the model for functional architecture and the human thought process as the model for the functional data process. * Although rooted in philosophy, this book is practical, addressing all the key areas that software professionals need to master in order to remain competitive and minimize costs, such as leadership, management, communication, and organization. This thought-provoking work will change the way students and professionals in computer science and software development conceptualize and perform their work. It provides them with both a philosophy and a set of practical tools to produce high-quality, low-cost software.
Software development continues to be an ever-evolving field as organizations require new and innovative programs that can be implemented to make processes more efficient, productive, and cost-effective. Agile practices particularly have shown great benefits for improving the effectiveness of software development and its maintenance due to their ability to adapt to change. It is integral to remain up to date with the most emerging tactics and techniques involved in the development of new and innovative software. The Research Anthology on Agile Software, Software Development, and Testing is a comprehensive resource on the emerging trends of software development and testing. This text discusses the newest developments in agile software and its usage spanning multiple industries. Featuring a collection of insights from diverse authors, this research anthology offers international perspectives on agile software. Covering topics such as global software engineering, knowledge management, and product development, this comprehensive resource is valuable to software developers, software engineers, computer engineers, IT directors, students, managers, faculty, researchers, and academicians.