Advertisement
engineering excellence in software development: Software Engineering at Google Titus Winters, Tom Manshreck, Hyrum Wright, 2020-02-28 Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldâ??s leading practitioners construct and maintain software. This book covers Googleâ??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youâ??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions |
engineering excellence in software development: How to Engineer Software Steve Tockey, 2019-09-10 A guide to the application of the theory and practice of computing to develop and maintain software that economically solves real-world problem How to Engineer Software is a practical, how-to guide that explores the concepts and techniques of model-based software engineering using the Unified Modeling Language. The author—a noted expert on the topic—demonstrates how software can be developed and maintained under a true engineering discipline. He describes the relevant software engineering practices that are grounded in Computer Science and Discrete Mathematics. Model-based software engineering uses semantic modeling to reveal as many precise requirements as possible. This approach separates business complexities from technology complexities, and gives developers the most freedom in finding optimal designs and code. The book promotes development scalability through domain partitioning and subdomain partitioning. It also explores software documentation that specifically and intentionally adds value for development and maintenance. This important book: Contains many illustrative examples of model-based software engineering, from semantic model all the way to executable code Explains how to derive verification (acceptance) test cases from a semantic model Describes project estimation, along with alternative software development and maintenance processes Shows how to develop and maintain cost-effective software that solves real-world problems Written for graduate and undergraduate students in software engineering and professionals in the field, How to Engineer Software offers an introduction to applying the theory of computing with practice and judgment in order to economically develop and maintain software. |
engineering excellence in software development: Software Craftsmanship Pete McBreen, 2002 This book introduces the author's collection of wisdom under one umbrella: Software Craftmanship. This approach is unique in that it spells out a programmer-centric way to build software. In other words, all the best computers, proven components, and most robust languages mean nothing if the programmer does not understand their craft. |
engineering excellence in software development: Lean Software Development Mary Poppendieck, Tom Poppendieck, 2003-05-08 Lean Software Development: An Agile Toolkit Adapting agile practices to your development organization Uncovering and eradicating waste throughout the software development lifecycle Practical techniques for every development manager, project manager, and technical leader Lean software development: applying agile principles to your organization In Lean Software Development, Mary and Tom Poppendieck identify seven fundamental lean principles, adapt them for the world of software development, and show how they can serve as the foundation for agile development approaches that work. Along the way, they introduce 22 thinking tools that can help you customize the right agile practices for any environment. Better, cheaper, faster software development. You can have all three–if you adopt the same lean principles that have already revolutionized manufacturing, logistics and product development. Iterating towards excellence: software development as an exercise in discovery Managing uncertainty: decide as late as possible by building change into the system. Compressing the value stream: rapid development, feedback, and improvement Empowering teams and individuals without compromising coordination Software with integrity: promoting coherence, usability, fitness, maintainability, and adaptability How to see the whole–even when your developers are scattered across multiple locations and contractors Simply put, Lean Software Development helps you refocus development on value, flow, and people–so you can achieve breakthrough quality, savings, speed, and business alignment. |
engineering excellence in software development: Leading Lean Software Development Mary Poppendieck, Tom Poppendieck, 2009-10-21 Building on their breakthrough bestsellers Lean Software Development and Implementing Lean Software Development, Mary and Tom Poppendieck’s latest book shows software leaders and team members exactly how to drive high-value change throughout a software organization—and make it stick. They go far beyond generic implementation guidelines, demonstrating exactly how to make lean work in real projects, environments, and companies. The Poppendiecks organize this book around the crucial concept of frames, the unspoken mental constructs that shape our perspectives and control our behavior in ways we rarely notice. For software leaders and team members, some frames lead to long-term failure, while others offer a strong foundation for success. Drawing on decades of experience, the authors present twenty-four frames that offer a coherent, complete framework for leading lean software development. You’ll discover powerful new ways to act as competency leader, product champion, improvement mentor, front-line leader, and even visionary. Systems thinking: focusing on customers, bringing predictability to demand, and revamping policies that cause inefficiency Technical excellence: implementing low-dependency architectures, TDD, and evolutionary development processes, and promoting deeper developer expertise Reliable delivery: managing your biggest risks more effectively, and optimizing both workflow and schedules Relentless improvement: seeing problems, solving problems, sharing the knowledge Great people: finding and growing professionals with purpose, passion, persistence, and pride Aligned leaders: getting your entire leadership team on the same page From the world’s number one experts in Lean software development, Leading Lean Software Development will be indispensable to everyone who wants to transform the promise of lean into reality—in enterprise IT and software companies alike. |
engineering excellence in software development: Continuous Delivery Jez Humble, David Farley, 2010-07-27 Winner of the 2011 Jolt Excellence Award! Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours— sometimes even minutes–no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the “deployment pipeline,” an automated process for managing all changes, from check-in to release. Finally, they discuss the “ecosystem” needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes • Automating all facets of building, integrating, testing, and deploying software • Implementing deployment pipelines at team and organizational levels • Improving collaboration between developers, testers, and operations • Developing features incrementally on large and distributed teams • Implementing an effective configuration management strategy • Automating acceptance testing, from analysis to implementation • Testing capacity and other non-functional requirements • Implementing continuous deployment and zero-downtime releases • Managing infrastructure, data, components and dependencies • Navigating risk management, compliance, and auditing Whether you’re a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever—so you can deliver value to your business rapidly and reliably. |
engineering excellence in software development: Software Excellence Shigeichi Moriguchi, 1997-02-01 Thanks to the great success of the QC movement, quality assurance has taken root in the earliest stages of technology development. Software Excellence addresses the assumption that software cannot be built without bugs. The author argues that the application of total quality principles and tools to software development will eliminate the lengthy and costly step of debugging that has become an accepted phase of software development. Table of Contents Publisher's Message Preface Editor's Foreword--Tadashi Yoshizawa Editor's Foreword--Motohiro Higashi List of Editors and Authors PART 1 -- QUALITY CONTROL METHODOLOGY Chapter One: High-Quality Software Chapter Two: Total Quality Management (TQM) Chapter Three: Methods of Quality Control (QC) PART 2 -- QUALITY PROCESSES APPLIED TO SOFTWARE DESIGN AND DEVELOPMENT Chapter Four: Software Quality Control and Small-Group Activities in Software Chapter Five: High-Reliability Software Chapter Six: Software Development and Modularization Chapter Seven: Software Documentation Chapter Eight: Software Engineering Chapter Nine: Change Management Chapter Ten: Quality Improvement in Reuse Chapter Eleven: Quality Function Deployment for Software Development Chapter Twelve: Examples of Quality Measurement Systems Chapter Thirteen: Methods for Quantitative Measurement and Evaluation of Quality Chapter Fourteen: Production Planning for Software Products Chapter Fifteen: Software Technology Management Chapter Sixteen: Quality Design and Management Planning Chapter Seventeen: Review and Process-Specific Management Chapter Eighteen: Test Management and Audits Chapter Nineteen: Maintenance Management Glossary of Acronyms Index |
engineering excellence in software development: Management of Software Engineering Innovation in Japan Yasuo Kadono, 2015-10-14 This book assesses the achievements of the software engineering discipline as represented by IT vendors in Japan in order to deepen understanding of the mechanisms of how software engineering capabilities relate to IT vendors’ business performance and business environment from the perspective of innovation and engineering management. Based on the concepts of service science and science for society, the volume suggests how to improve the sophistication of services between the demand side, i.e., IT user companies, and the supply side, i.e., IT vendors, simultaneously. The author and his colleagues developed a structural model including innovational paths, such as service innovation, product innovation and process innovation, and a measurement model including the seven software engineering capabilities: deliverables, project management, quality assurance, process improvement, research and development, human resource development and customer contact. Then they designed research on software engineering excellence and administered it with the Japanese Ministry of Economy, Trade and Industry and Information-Technology Promotion Agency. Through statistical analyses of the results, they found that human resource development and R&D are significant fundamental conditions to improve the quality of the deliverables and that IT firms with high levels of deliverables, derived from high levels of human resource development, quality assurance, project management and process improvement, tend to sustain high profitability. In addition, they developed a measurement model based on Porter’s five forces and Barney’s resource-based view. A regression tree analysis suggested that manufacturer spin-off vendors tend to expand business with well-resourced R&D, whereas user spin-off vendors tend to depend heavily on parent company demand. |
engineering excellence in software development: Software Design for Six Sigma Basem S. El-Haik, Adnan Shaout, 2011-02-16 This proposal constitutes an algorithm of design applying the design for six sigma thinking, tools, and philosophy to software design. The algorithm will also include conceptual design frameworks, mathematical derivation for Six Sigma capability upfront to enable design teams to disregard concepts that are not capable upfront, learning the software development cycle and saving development costs. The uniqueness of this book lies in bringing all those methodologies under the umbrella of design and provide detailed description about how these methods, QFD, DOE, the robust method, FMEA, Design for X, Axiomatic Design, TRIZ can be utilized to help quality improvement in software development, what kinds of different roles those methods play in various stages of design and how to combine those methods to form a comprehensive strategy, a design algorithm, to tackle any quality issues in the design stage. |
engineering excellence in software development: Think Like a Software Engineering Manager Akanksha Gupta, 2024-08-06 Unlock your full potential as an effective, efficient, and inspiring leader, and be the software engineering manager that your team deserves! Most development teams are only as good as their leader. In this practical guide, you’ll explore all aspects of the software engineering manager’s job, from operational practices to the core skills of handling humans. Think Like a Software Engineering Manager is full of all the skills you’ll need to thrive in software leadership, including: People and performance management Empathy and feedback Delegation and learning to let go Hiring amazing engineers and handling attrition Collaborating with cross-functional partners Managing expectations at all levels Implementing engineering and operational excellence Time and organizational change management Experienced team leader Akanksha Gupta helps you explore whether software engineering management is the right move for your career, guides you through preparing for the position, and gives you all the tools you need to thrive in the role. Thought-provoking exercises help you apply what you learn to your daily professional life, and prepare you for making the big decisions about software. Purchase of the print book includes a free eBook in PDF and ePub formats from Manning Publications. About the technology A software engineering manager needs to be an amazing communicator, an effective decision maker, and a thoughtful mentor. Your success depends on your ability to evaluate and manage projects, motivate and lead your team, and coolly handle whatever crisis each new day brings. It’s a big transition, and this book will guide you every step of the way. About the book Think Like a Software Engineering Manager teaches you how to hire, train, and lead a successful development team. You’ll start with building and managing your team to maximize performance. You’ll then quickly progress to strategies for delivering large scale projects, cultivating excellence in your projects, and managing change. Author Akanksha Gupta’s battle stories and industry anecdotes from her work at Amazon, Audible, Robinhood, and Microsoft reveal how the experts handle the biggest engineering management challenges. What's inside People and performance management Hiring amazing engineers and handling attrition Collaborating with cross-functional partners Practice for success with insightful exercises About the reader For new and aspiring software engineering managers. About the author Akanksha Gupta is an engineering leader at Amazon AWS. She has served as an engineering manager at Robinhood, Audible, and Microsoft and passionately champions the cause of empowering women within the tech industry. The technical editor on this book was Bruce Bergman. Table of Contents PART 1 1 Exploring the engineering manager role 2 Individual contributor to engineering manager 3 Managing people, teams, and yourself 4 Managing performance 5 Delegation: Learn to let go 6 Rewards and recognition 7 Hiring 8 Handling attrition PART 2 9 Working with cross-functional partners 10 Project management, execution, and delivery 11 Managing expectations PART 3 12 Engineering and operational excellence 13 Organizational change management 14 Time management 15 Beyond this book: Grow yourself |
engineering excellence in software development: The Certified Software Quality Engineer Handbook Linda Westfall, 2016-09-23 This handbook contains information and guidance that supports all of the topics of the 2016 version of the CSQE Body of Knowledge (BoK) upon which ASQ's Certified Software Quality Engineer/(CSQE) exam is based. Armed with the knowledge presented in this handbook to complement the required years of actual work experience, qualified software quality practitioners may feel confident they have taken appropriate steps in preparation for the ASQ CSQE exam. However, the goals for this handbook go well beyond it being a CSQE exam preparation guide. Its author designed this handbook not only to help the software quality engineers, but as a resource for software development practitioners, project managers, organizational managers, other quality practitioners, and other professionals who need to understand the aspects of software quality that impact their work. It can also be used to benchmark their (or their organization's) understanding and application of software quality principles and practices against what is considered a cross-industry good practice baseline. After all, taking stock of strengths and weaknesses, software engineers can develop proactive strategies to leverage software quality as a competitive advantage. New software quality engineers can use this handbook to gain an understanding of their chosen profession. Experienced software quality engineers can use this handbook as a reference source when performing their daily work. It is also hoped that trainers and educators will use this handbook to help propagate software quality engineering knowledge to future software practitioners and managers. Finally, this handbook strives to establish a common vocabulary that software quality engineers, and others in their organizations can use to communicate about software and quality. Thus increasing the professionalism of the industry and eliminating the wastes that can result from ambiguity and misunderstandings. |
engineering excellence in software development: Requirements Engineering and Management for Software Development Projects Murali Chemuturi, 2012-09-27 Requirements Engineering and Management for Software Development Projects presents a complete guide on requirements for software development including engineering, computer science and management activities. It is the first book to cover all aspects of requirements management in software development projects. This book introduces the understanding of the requirements, elicitation and gathering, requirements analysis, verification and validation of the requirements, establishment of requirements, different methodologies in brief, requirements traceability and change management among other topics. The best practices, pitfalls, and metrics used for efficient software requirements management are also covered. Intended for the professional market, including software engineers, programmers, designers and researchers, this book is also suitable for advanced-level students in computer science or engineering courses as a textbook or reference. |
engineering excellence in software development: Scenario-focused Engineering Austina De Bonte, Drew Fletcher, 2014 Annotation Great technology alone is rarely sufficient today to ensure a products success. At Microsoft, scenario-focused engineering is a customer-centric, iterative approach used to design and deliver the deeper experiences and emotional engagement customers demand in new products. In this book, youll discover the proven practices and lessons learned from real-world implementations of this approach, including:Why design matters: Understand a competitive landscape where customers are no longer satisfied by products that are merely useful, but respond instead to products they crave using. What it means to be customer focused: Recognize that you are not the customer, understand customers can have difficulty articulating what they want, and apply techniques that uncover their unspoken needs. How to iterate effectively: Implement a development system that is flexible enough to respond to early and continuous feedback, and enables experimentation with multiple ideas and feedback loops simultaneously. How to bridge the culture gap: In an engineering environment traditionally rooted in strong analytics, the ideas and practices for scenario-focused engineering may not be intuitive. Learn how to change team mindset from deciding what a product, service, or device will do, to discovering what customers actually want and what will work for them in real-life scenarios. Connections with Lean and Agile approaches: See the connections, gaps, and overlaps among the Lean, Agile, and Scenario-Focused Engineering methodologies, and achieve a more holistic view of software development. |
engineering excellence in software development: The New Software Engineering Sue A. Conger, 1994 This text is written with a business school orientation, stressing the how to and heavily employing CASE technology throughout. The courses for which this text is appropriate include software engineering, advanced systems analysis, advanced topics in information systems, and IS project development. Software engineer should be familiar with alternatives, trade-offs and pitfalls of methodologies, technologies, domains, project life cycles, techniques, tools CASE environments, methods for user involvement in application development, software, design, trade-offs for the public domain and project personnel skills. This book discusses much of what should be the ideal software engineer's project related knowledge in order to facilitate and speed the process of novices becoming experts. The goal of this book is to discuss project planning, project life cycles, methodologies, technologies, techniques, tools, languages, testing, ancillary technologies (e.g. database) and CASE. For each topic, alternatives, benefits and disadvantages are discussed. |
engineering excellence in software development: Successful Software Development Scott E. Donaldson, Stanley G. Siegel, 2001 Rev. ed. of: Cultivating successful software development. c1997. |
engineering excellence in software development: Modern Software Engineering David Farley, 2021-11-16 Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more legacy code Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish good new software development ideas from bad ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details. |
engineering excellence in software development: Leading software teams with context, not control Dion Beetson, 2020-06-16 As a software engineering leader, the scope of your role is extensive. You have many competing responsibilities and priorities that need to be balanced to ensure you and your team are as effective as possible. These can include providing architectural direction, driving peer to peer collaboration, ensuring cross-team alignment, motivating teams with purpose, supporting team members' career progression, or perhaps helping remove blockers and impediments. All of these efforts work to create a specific culture within a software team that aims to improve effectiveness, engagement, and retention. This book is for software engineering leaders who are responsible for leading teams. It also dives into the unique complexity and challenges that comes with leading, aligning and supporting multiple software teams. This book aspires to provide you with helpful and reusable approaches that can be leveraged to bring about a greater level of efficiency into your role as a leader. There are many books written around leading teams or leading people, this book takes a lens of what specific practices and initiatives you should be investing your time into when leading software engineering teams. The book has been inspired by the many people I have worked with, learnings from practices I have implemented, as well as books and blogs I have read over the years. I see this is a book that leads itself to many iterations and should evolve as I discover new practices and techniques that help me improve the way I lead software teams. Regardless of the size of your software team, if you find yourself needing to better balance both the technical and people aspects of leading teams, or guidance on initiatives you could be running to improve team alignment, effectiveness and engagement then this book is written for you. |
engineering excellence in software development: Retrospectives for everyone MADHAVI LEDALLA, 2020-07-13 Metaphors from our day-to-day life can throw new perspectives when juxtaposed with professional or personal experiences. What seemingly looks like a mundane chore can give great insights with interesting and innovative improvisations. The author, a committed technologist, makes this brave and successful attempt to explain retrospectives using contexts from day-to-day life with suitable graphic representations for ease of understanding. The book focuses on 'retrospectives' as a platform for teams as well as individuals to reflect and improve. She strongly advocates that, regardless of the industry, teams need to have an experimental mindset to continuously learn and adapt. Thus, reflecting on diversified areas such as work-life balance, goals, team collaboration, product development, process, technology, delivery, or targets is an ongoing process that happens either explicitly or implicitly. The book highlights the need for teams and individuals to come out of their comfort zones and think out-of-the box, while staying in sync with their individual and organization's goals. Illustrations shown in the book can be customized according to organizational or individual aspirations. |
engineering excellence in software development: Working Effectively with Legacy Code Michael Feathers, 2004-09-22 Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes. |
engineering excellence in software development: Staff Engineer Will Larson, 2021-02-28 At most technology companies, you'll reach Senior Software Engineer, the career level for software engineers, in five to eight years. At that career level, you'll no longer be required to work towards the next pro? motion, and being promoted beyond it is exceptional rather than ex? pected. At that point your career path will branch, and you have to decide between remaining at your current level, continuing down the path of technical excellence to become a Staff Engineer, or switching into engineering management. Of course, the specific titles vary by company, and you can replace Senior Engineer and Staff Engineer with whatever titles your company prefers.Over the past few years we've seen a flurry of books unlocking the en? gineering management career path, like Camille Fournier's The Man? ager's Path, Julie Zhuo's The Making of a Manager, Lara Hogan's Re? silient Management and my own, An Elegant Puzzle. The manage? ment career isn't an easy one, but increasingly there are maps avail? able for navigating it.On the other hand, the transition into Staff Engineer, and its further evolutions like Principal and Distinguished Engineer, remains chal? lenging and undocumented. What are the skills you need to develop to reach Staff Engineer? Are technical abilities alone sufficient to reach and succeed in that role? How do most folks reach this role? What is your manager's role in helping you along the way? Will you enjoy being a Staff Engineer or you will toil for years to achieve a role that doesn't suit you?Staff Engineer: Leadership beyond the management track is a pragmatic look at attaining and operate in these Staff-plus roles. |
engineering excellence in software development: Modern Software Engineering Concepts and Practices: Advanced Approaches Dogru, Ali H., Bier, Veli, 2010-12-31 Software engineering has advanced rapidly in recent years in parallel with the complexity and scale of software systems. New requirements in software systems yield innovative approaches that are developed either through introducing new paradigms or extending the capabilities of well-established approaches. Modern Software Engineering Concepts and Practices: Advanced Approaches provides emerging theoretical approaches and their practices. This book includes case studies and real-world practices and presents a range of advanced approaches to reflect various perspectives in the discipline. |
engineering excellence in software development: 97 Things Every Software Architect Should Know Richard Monson-Haefel, 2009-02-05 In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de hOra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as: Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar) Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm) Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards) Simplicity Before Generality, Use Before Reuse (Kevlin Henney) For the End User, the Interface Is the System (Vinayak Hegde) It's Never Too Early to Think About Performance (Rebecca Parsons) To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading. |
engineering excellence in software development: Managing Technical Debt Philippe Kruchten, Ipek Ozkaya, 2019-04-15 “This is an incredibly wise and useful book. The authors have considerable real-world experience in delivering quality systems that matter, and their expertise shines through in these pages. Here you will learn what technical debt is, what is it not, how to manage it, and how to pay it down in responsible ways. This is a book I wish I had when I was just beginning my career. The authors present a myriad of case studies, born from years of experience, and offer a multitude of actionable insights for how to apply it to your project.” –Grady Booch, IBM Fellow Master Best Practices for Managing Technical Debt to Promote Software Quality and Productivity As software systems mature, earlier design or code decisions made in the context of budget or schedule constraints increasingly impede evolution and innovation. This phenomenon is called technical debt, and practical solutions exist. In Managing Technical Debt, three leading experts introduce integrated, empirically developed principles and practices that any software professional can use to gain control of technical debt in any software system. Using real-life examples, the authors explain the forms of technical debt that afflict software-intensive systems, their root causes, and their impacts. They introduce proven approaches for identifying and assessing specific sources of technical debt, limiting new debt, and “paying off” debt over time. They describe how to establish managing technical debt as a core software engineering practice in your organization. Discover how technical debt damages manageability, quality, productivity, and morale–and what you can do about it Clarify root causes of debt, including the linked roles of business goals, source code, architecture, testing, and infrastructure Identify technical debt items, and analyze their costs so you can prioritize action Choose the right solution for each technical debt item: eliminate, reduce, or mitigate Integrate software engineering practices that minimize new debt Managing Technical Debt will be a valuable resource for every software professional who wants to accelerate innovation in existing systems, or build new systems that will be easier to maintain and evolve. |
engineering excellence in software development: Best Practices and New Perspectives in Service Science and Management Ordóñez de Pablos, Patricia, 2013-04-30 Within global commerce, services and management play a vital role in the economy. Service systems are necessary for organizations, and a multi-disciplinary approach is ideal to establish full understanding of these systems. Best Practices and New Perspectives in Service Science and Management provides original research on all aspects of service science, service management, service engineering, and its supporting technology in order to administer cutting-edge knowledge to encourage the improvement of services. This book is essential for researchers and practitioners in the fields of computer science, software management, and engineering. |
engineering excellence in software development: Junior to Senior David Glassanos, 2023-08-07 As a programmer, you've spent plenty of time learning technical and programming skills. Junior engineers-and even some who have been in it a long time-must constantly focus on improving their hard technical skills. But writing code is only part of our job as software developers. It's equally essential for developers to cultivate the soft skills critical for adding value for their team, their company, their customers, and their career-and it's often neglected. Junior to Senior is one of only a few books that gives practical advice on the soft skills needed to thrive as an engineer: · Dealing with lack of confidence · Learning from others and by reading unfamiliar code · Managing your time · Working effectively with your manager · Communicating clearly with business stakeholders and writing clear documentation · Understanding different ways to add value for a company and its customers · Managing risks and recovering from mistakes · Dealing with conflict · Balancing the demands of work and personal life ... and much more. Improvements in these areas are important milestones on the journey from junior to senior software developer. Junior to Senior is filled with insights, from one engineer to another, to guide you along that path. Whether you studied Computer Science, graduated from a coding bootcamp, or are a self-taught programmer, this book will help you manage yourself, build value, and earn the confidence of your team to take on roles with greater responsibility and impact. |
engineering excellence in software development: Managing the Unmanageable Mickey W. Mantle, Ron Lichty, 2012-09-16 “Mantle and Lichty have assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike.” —Tom Conrad, CTO, Pandora “I wish I’d had this material available years ago. I see lots and lots of ‘meat’ in here that I’ll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes.” —Steve Johnson, VP, Custom Solutions, DigitalFish All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable? In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams , Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people—how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully. Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide. |
engineering excellence in software development: Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment Jean-Michel Bruel, Manuel Mazzara, Bertrand Meyer, 2020-01-18 This book constitutes revised selected papers of the Second International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, DEVOPS 2019, held at the Château de Villebrumier, France, in May 2019. The 15 papers presented in this volume were carefully reviewed and selected from 19 submissions. They cover a wide range of problems arising from DevOps and related approaches: current tools, rapid development-deployment processes, modeling frameworks, anomaly detection in software releases, DevDataOps, microservices, and related topics. |
engineering excellence in software development: Essential Software Development Career + Technical Guide Appjungle.net LLC, 2023-06-03 Master the skills and knowledge you need to succeed as a software engineer with this comprehensive guide. Whether you're new to the field or a seasoned professional, this book covers all the essential software development topics to help you stay up-to-date and excel in your role. This comprehensive guide covers essential topics in software engineering/software development. Read this book If: You want to start OR have started a career in software engineering. You want to know about all the technical topics you need to succeed. You want to understand the entire process of software engineering. You want to learn what they will NOT teach you in school. You want to understand coding, multithreading, testing, and more! You would like to learn the soft skills you need for promotions. You want to know why you are NOT getting promoted. You want to understand deep technical topics, i.e., encryption+crypto. If you think your company is doing Agile wrong. After reading the book, you will: · Understand how to have a successful career in software engineering. · Have the technical knowledge to know how and where to grow. · Have the soft skills framework to help get you promoted and do your job exceptionally. · Understand how to make the best decisions · Understand the technology and psychology to excel Don't wait! Buy this book now! The field of software engineering is so vast there is no way anyone can learn it all. With hundreds of languages and technologies, what you choose can make the difference between getting a job or not. From just thinking about a career in software engineering to senior level and beyond, this book has you covered. This book covers career, soft skills, processes, and deep technical details on coding, testing, architecture, and much more! Learn about software engineering and management career paths. Don't make mistakes that you can avoid with a little knowledge. Take your engineering knowledge to the next level to help you get the promotions you desire. If you are or plan to be a self-taught software engineer or plan on taking computer science/programming classes, you need this book to help you on your path. Get answers to: What classes should you take in high school/college? Should you become a software engineer? What do Software Engineers / Developers / Programmers do? What kind of computer do you need? What industry sector should you work in? What don't they teach you in school? Should you do consulting vs. full-time? Do you need certifications? Should you use a staffing firm? What do software engineers do? How do I get a job? How do I get promoted? How do I understand what hardware does? How to become a Senior Software Engineer, Staff Software Engineer and more? How do I become a manager? Learn about: Agile with Scrum, Multithreading, Source Control, Working with a team, Architecture, Algorithms / Data Structures, Networking, File Systems, Overviews of the web, Unicode, Dependency Injection, Security, Privacy, Object Oriented Languages, Message tracing, Floating point number processing, User Interface Design, Time Management, Cryptocurrency, Encryption, Recursion, Databases, Support, Testing, and much more! If you are looking for one of the best software engineering books, software development books, computer science books, or programming books, this is the right book for you. If you are or are planning to be a software engineer, software developer, application engineer, front end developer, tech career, or IT career, this is the book for you. If you find errors in the book, please don't leave that in a review. Please tell us directly. Go to the website mentioned at the end of the book. If you find errors visit our website. |
engineering excellence in software development: Software Engineering Ravi Sethi, 2022-12-08 Software engineering is as much about teamwork as it is about technology. This introductory textbook covers both. For courses featuring a team project, it offers tips and templates for aligning classroom concepts with the needs of the students' projects. Students will learn how software is developed in industry by adopting agile methods, discovering requirements, designing modular systems, selecting effective tests, and using metrics to track progress. The book also covers the 'why' behind the 'how-to', to prepare students for advances in industry practices. The chapters explore ways of eliciting what users really want, how clean architecture divides and conquers the inherent complexity of software systems, how test coverage is essential for detecting the inevitable defects in code, and much more. Ravi Sethi provides real-life case studies and examples to demonstrate practical applications of the concepts. Online resources include sample project materials for students, and lecture slides for instructors. |
engineering excellence in software development: Agile Methods Graziela Simone Tonin, Bernardo Estácio, Alfredo Goldman, Eduardo Guerra, 2019-03-06 This book constitutes revised selected papers from the 9th Brazilian Workshop on Agile Methods, WBMA 2018, held in Campinas, Brazil, in October 2018. The 6 full and 1 short papers presented in this volume were carefully reviewed and selected from 18 submissions. Accepted papers in this edition present empirical results and literature reviews on agile requirements validation in Brazilian software development companies; a survey on Brazilian software processes about to be agile or not; an evaluation of an agile maturity model; strategies to increase customer value in agile software development; an agile development environment and scrum in a strongly hierarchical organization. |
engineering excellence in software development: Agile Mindset Ma.g.i.c. Yashasree Barve, 2020-12-08 ‘Nothing will work till they change their mindset.’ As an agile leader or coach, how often would you have said this? Mindset drives behaviors and behaviors drive culture. Culture is the topmost obstacle to adopting and scaling agile practices in organizations consistently as per the State of Agile report for years. Bringing in the right agile mindset in your organization is the right first step to bringing in an agile culture. However, it’s tough, isn’t it? This book unravels how to bring the change in mindset to be agile using a four-stage approach drenched with real-life stories from the trenches. Start with why one needs to change and then get into what and how through examples. Take a look at what has worked and what did not in the journey of embracing agility, along with techniques that clicked. Get ready to wield the magic of the agile mindset. |
engineering excellence in software development: Software Engineering Reviews and Audits Boyd L. Summers, 2011-01-07 Accurate software engineering reviews and audits have become essential to the success of software companies and military and aerospace programs. These reviews and audits define the framework and specific requirements for verifying software development efforts.Authored by an industry professional with three decades of experience, Software Engineerin |
engineering excellence in software development: Software Security Engineering Nancy R. Mead, Julia H. Allen, Sean Barnum, Robert J. Ellison, Gary R. McGraw, 2004-04-21 Software Security Engineering draws extensively on the systematic approach developed for the Build Security In (BSI) Web site. Sponsored by the Department of Homeland Security Software Assurance Program, the BSI site offers a host of tools, guidelines, rules, principles, and other resources to help project managers address security issues in every phase of the software development life cycle (SDLC). The book’s expert authors, themselves frequent contributors to the BSI site, represent two well-known resources in the security world: the CERT Program at the Software Engineering Institute (SEI) and Cigital, Inc., a consulting firm specializing in software security. This book will help you understand why Software security is about more than just eliminating vulnerabilities and conducting penetration tests Network security mechanisms and IT infrastructure security services do not sufficiently protect application software from security risks Software security initiatives should follow a risk-management approach to identify priorities and to define what is “good enough”–understanding that software security risks will change throughout the SDLC Project managers and software engineers need to learn to think like an attacker in order to address the range of functions that software should not do, and how software can better resist, tolerate, and recover when under attack |
engineering excellence in software development: The Engineering Leader's Guide to Cycle Time Bryan Helmkamp, 2020-09-15 Top-performing engineering organizations achieve a Cycle Time of less than one day. If your Cycle Time is greater than that, you'll need to know what to do and where to start optimizing. That's what this book is for.What's inside: - A breakdown of component metrics and signals that drive up Cycle Time- Strategic advice on increasing engineering speed, based on hundreds of conversations with Managers, VPs, and CTOs- Tactical guidance on how to improve individual and collaborative work habits- Real life examples of how Engineering Leaders think about and improve Cycle Tim |
engineering excellence in software development: Dynamic Reteaming Heidi Helfand, 2020-06-12 Your team will change whether you like it or not. People will come and go. Your company might double in size or even be acquired. In this practical book, author Heidi Helfand shares techniques for reteaming effectively. Engineering leaders will learn how to catalyze team change to reduce the risk of attrition, learning and career stagnation, and the development of knowledge silos. Based on research into well-known software companies, the patterns in this book help CTOs and team managers effectively integrate new hires into an existing team, manage a team that has lost members, or deal with unexpected change. You’ll learn how to isolate teams for focused innovation, rotate team members for knowledge sharing, break through organizational apathy, and more. You’ll explore: Real-world examples that demonstrate why and how organizations reteam Five reteaming patterns: One by One, Grow and Split, Isolation, Merging, and Switching Tactics to help you master dynamic reteaming in your company Stories that demonstrate problems caused by reteaming anti-patterns |
engineering excellence in software development: Agile Processes in Software Engineering and Extreme Programming Peggy Gregory, Casper Lassenius, Xiaofeng Wang, Philippe Kruchten, 2021-06-09 This open access book constitutes the proceedings of the 22nd International Conference on Agile Software Development, XP 2021, which was held virtually during June 14-18, 2021. XP is the premier agile software development conference combining research and practice. It is a unique forum where agile researchers, practitioners, thought leaders, coaches, and trainers get together to present and discuss their most recent innovations, research results, experiences, concerns, challenges, and trends. XP conferences provide an informal environment to learn and trigger discussions and welcome both people new to agile and seasoned agile practitioners. This year’s conference was held with the theme “Agile Turns Twenty While the World Goes Online”. The 11 full and 2 short papers presented in this volume were carefully reviewed and selected from 38 submissions. They were organized in topical sections named: agile practices; process assessment; large-scale agile; and short contributions. |
engineering excellence in software development: How We Test Software at Microsoft Alan Page, Ken Johnston, Bj Rollison, 2008-12-10 It may surprise you to learn that Microsoft employs as many software testers as developers. Less surprising is the emphasis the company places on the testing discipline—and its role in managing quality across a diverse, 150+ product portfolio. This book—written by three of Microsoft’s most prominent test professionals—shares the best practices, tools, and systems used by the company’s 9,000-strong corps of testers. Learn how your colleagues at Microsoft design and manage testing, their approach to training and career development, and what challenges they see ahead. Most important, you’ll get practical insights you can apply for better results in your organization. Discover how to: Design effective tests and run them throughout the product lifecycle Minimize cost and risk with functional tests, and know when to apply structural techniques Measure code complexity to identify bugs and potential maintenance issues Use models to generate test cases, surface unexpected application behavior, and manage risk Know when to employ automated tests, design them for long-term use, and plug into an automation infrastructure Review the hallmarks of great testers—and the tools they use to run tests, probe systems, and track progress efficiently Explore the challenges of testing services vs. shrink-wrapped software |
engineering excellence in software development: Rules for Software Development Andrew Woods, 2021-04-28 Software engineering isn’t just about writing code. It’s about much much more than that. Rules for Software development presents the reader with a 360° view of what it takes to truly be a professional software engineer. In today’s software industry, being proficient in the development of code is the baseline of a software engineer role. The most prominent engineers are those who understand software principles and patterns and who also understand soft skills and communication. This book will give you insight into - Why you need to say No - How to work with multiple stakeholders - Why micro-changes make a big impact - What technical excellence is expected of you - How to grow your own career A handbook of career-changing advice and insightful real-world experience. - Dr. Jenny Munnelly, Senior Lecturer, Technological University Dublin ....a succinct guide that every software developer must read regardless of programming language or experience - Paul Flanagan, Principal Software Engineer, Danalto ....provides the reader with a road map to longevity and efficacy as a professional in the ever-changing tech industry landscape - Naomi Freeman, CTO Lingu ...an invaluable book for IT professionals - Santiago García da Rosa, CTO, Nowports |
engineering excellence in software development: Agile Processes in Software Engineering and Extreme Programming Hubert Baumeister, Horst Lichter, Matthias Riebisch, 2017-04-12 This book is open access under a CC BY license. The volume constitutes the proceedings of the 18th International Conference on Agile Software Development, XP 2017, held in Cologne, Germany, in May 2017. The 14 full and 6 short papers presented in this volume were carefully reviewed and selected from 46 submissions. They were organized in topical sections named: improving agile processes; agile in organization; and safety critical software. In addition, the volume contains 3 doctoral symposium papers (from 4 papers submitted). |
engineering excellence in software development: Accelerate Nicole Forsgren, PhD, Jez Humble, Gene Kim, 2018-03-27 Winner of the Shingo Publication Award Accelerate your organization to win in the marketplace. How can we apply technology to drive business value? For years, we've been told that the performance of software delivery teams doesn't matter―that it can't provide a competitive advantage to our companies. Through four years of groundbreaking research to include data collected from the State of DevOps reports conducted with Puppet, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performance―and what drives it―using rigorous statistical methods. This book presents both the findings and the science behind that research, making the information accessible for readers to apply in their own organizations. Readers will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance. This book is ideal for management at every level. |
The effect of age on mapping auditory icons to visual icons for ...
Oct 1, 1996 · This research explored the abilities of subjects in grade 1 (6–7 years old) and grade 3 (8–9 years old) to identify auditory icons that are commonly introduced in software applications …
Toward establishing a link between psychomotor task complexity …
Oct 1, 1996 · The objective of this research is to propose and validate a link between an existing information processing model for psychomotor tasks and a comprehensive characterization of …
Engineering | Journal | ScienceDirect.com by Elsevier
The official journal of the Chinese Academy of Engineering and Higher Education Press. Engineering is an international open-access journal that was launched by the Chinese Academy of …
Pickering stabilization of double emulsions: Basic concepts, …
Double emulsions (DEs) offer unique compartmentalized structures but are inherently unstable, prompting significant scientific and industrial efforts …
Engineering Structures | Journal | ScienceDirect.com by Elsevier
Engineering Structures provides a forum for a broad blend of scientific and technical papers to reflect the evolving needs of the structural engineering and structural mechanics communities. …
Engineering Failure Analysis | Journal - ScienceDirect
Published in Affiliation with the European Structural Integrity Society. The Engineering Failure Analysis journal provides an essential reference for analysing and preventing engineering …
Engineering Geology | Journal | ScienceDirect.com by Elsevier
Engineering Geology is an international interdisciplinary journal bridging the fields of the earth sciences and engineering, particularly geological and geotechnical engineering.The focus of the …
Engineering Applications of Artificial Intelligence | Journal ...
A journal of IFAC, the International Federation of Automatic Control Artificial Intelligence (AI) is playing a major role in the fourth industrial revolution and we are seeing a lot of evolution in …
High-Entropy Approach vs. Traditional Doping Strategy for Layered …
Jun 1, 2025 · The traditional doping strategy has emerged as an effective method for addressing challenges such as irreversible phase transitions and poor cycling s…
Food Hydrocolloids | Vol 168, December 2025 - ScienceDirect
Read the latest articles of Food Hydrocolloids at ScienceDirect.com, Elsevier’s leading platform of peer-reviewed scholarly literature
The effect of age on mapping auditory icons to visual icons …
Oct 1, 1996 · This research explored the abilities of subjects in grade 1 (6–7 years old) and grade 3 (8–9 years old) to identify auditory icons that are …
Toward establishing a link between psychomotor task co…
Oct 1, 1996 · The objective of this research is to propose and validate a link between an existing information processing model for psychomotor …
Engineering | Journal | ScienceDirect.com by Elsevier
The official journal of the Chinese Academy of Engineering and Higher Education Press. Engineering is an international open-access journal …
Pickering stabilization of double emulsions: Basic conc…
Double emulsions (DEs) offer unique compartmentalized structures but are inherently unstable, prompting significant scientific and industrial …
Engineering Structures | Journal | ScienceDirect.com b…
Engineering Structures provides a forum for a broad blend of scientific and technical papers to reflect the evolving needs of the structural …