Software Estimation: Demystifying the Black Art (Developer Best Practices)

Software Estimation: Demystifying the Black Art (Developer Best Practices)

Often referred to as the “black art” because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward—once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation—distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency. Discover how to: Estimate schedule and cost—or estimate the functionality that can be delivered within a given time frame Avoid common software estimation mistakes Learn estimation techniques for you, your team, and your organization * Estimate specific project activities—including development, management, and defect correction Apply estimation approaches to any type of project—small or large, agile or traditional Navigate the shark-infested political waters that surround project estimates When many corporate software projects are failing, McConnell shows you what works for successful software estimation.

  • UPC: 790145053510
  • ASIN: 0735605351
  • ISBN: 0735605351
  • Brand: Brand: Microsoft Press
  • Manufacturer: Microsoft Press

Patterns, Principles, and Practices of Domain-Driven Design

Patterns, Principles, and Practices of Domain-Driven Design

Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C# This book presents the philosophy of Domain-Driven Design (DDD) in a down-to-earth and practical manner for experienced developers building applications for complex domains. A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space. You will learn how to build effective domain models through the use of tactical patterns and how to retain their integrity by applying the strategic patterns of DDD. Full end-to-end coding examples demonstrate techniques for integrating a decomposed and distributed solution space while coding best practices and patterns advise you on how to architect applications for maintenance and scale. Offers a thorough introduction to the philosophy of DDD for professional developers Includes masses of code and examples of concept in action that other books have only covered theoretically Covers the patterns of CQRS, Messaging, REST, Event Sourcing and Event-Driven Architectures Also ideal for Java developers who want to better understand the implementation of DDD

  • UPC: 787721845461
  • ASIN: 1118714709
  • ISBN: 1118714709
  • Brand: imusti
  • Manufacturer: Wrox

Serverless Design Patterns and Best Practices: Build, secure, and deploy enterprise ready serverless applications with AWS to improve developer productivity

Serverless Design Patterns and Best Practices: Build, secure, and deploy enterprise ready serverless applications with AWS to improve developer productivity

Get started with designing your serverless application using optimum design patterns and industry standard practicesKey FeaturesLearn the details of popular software patterns and how they are applied to serverless applicationsUnderstand key concepts and components in serverless designsWalk away with a thorough understanding of architecting serverless applicationsBook DescriptionServerless applications handle many problems that developers face when running systems and servers. The serverless pay-per-invocation model can also result in drastic cost savings, contributing to its popularity. While it's simple to create a basic serverless application, it's critical to structure your software correctly to ensure it continues to succeed as it grows. Serverless Design Patterns and Best Practices presents patterns that can be adapted to run in a serverless environment. You will learn how to develop applications that are scalable, fault tolerant, and well-tested.The book begins with an introduction to the different design pattern categories available for serverless applications. You will learn the trade-offs between GraphQL and REST and how they fare regarding overall application design in a serverless ecosystem. The book will also show you how to migrate an existing API to a serverless backend using AWS API Gateway. You will learn how to build event-driven applications using queuing and streaming systems, such as AWS Simple Queuing Service (SQS) and AWS Kinesis. Patterns for data-intensive serverless application are also explained, including the lambda architecture and MapReduce.This book will equip you with the knowledge and skills you need to develop scalable and resilient serverless applications confidently.What you will learnComprehend the popular design patterns currently being used with serverless architecturesUnderstand the various design options and corresponding implementations for serverless web application APIsLearn multiple patterns for data-intensive serverless s... [Read More]

  • ASIN: 178862064X
  • ISBN: 178862064X
  • Manufacturer: Packt Publishing

React Design Patterns and Best Practices: Design, build and deploy production-ready web applications using standard industry practices, 2nd Edition

React Design Patterns and Best Practices: Design, build and deploy production-ready web applications using standard industry practices, 2nd Edition

Build modular React web apps that are scalable, maintainable and powerful using design patterns and insightful practices Key Features Get familiar with design patterns in React like Render props and Controlled/uncontrolled inputs Learn about class/ functional, style and high order components with React Work through examples that can be used to create reusable code and extensible designs Book Description React is an adaptable JavaScript library for building complex UIs from small, detached bits called components. This book is designed to take you through the most valuable design patterns in React, helping you learn how to apply design patterns and best practices in real-life situations. You'll get started by understanding the internals of React, in addition to covering Babel 7 and Create React App 2.0, which will help you write clean and maintainable code. To build on your skills, you will focus on concepts such as class components, stateless components, and pure components. You'll learn about new React features, such as the context API and React Hooks that will enable you to build components, which will be reusable across your applications. The book will then provide insights into the techniques of styling React components and optimizing them to make applications faster and more responsive. In the concluding chapters, you'll discover ways to write tests more effectively and learn how to contribute to React and its ecosystem. By the end of this book, you will be equipped with the skills you need to tackle any developmental setbacks when working with React. You'll be able to make your applications more flexible, efficient, and easy to maintain, thereby giving your workflow a boost when it comes to speed, without reducing quality. What you will learn Get familiar with the new React features,like context API and React Hooks Learn the techniques of styling and optimizing React components Make components communicate with each other by applying consolidate pattern... [Read More]

  • ASIN: 1789530172
  • ISBN: 1789530172
  • Manufacturer: Packt Publishing

Adaptive Code: Agile coding with design patterns and SOLID principles (2nd Edition) (Developer Best Practices)

Adaptive Code: Agile coding with design patterns and SOLID principles (2nd Edition) (Developer Best Practices)

Write code that can adapt to changes.   By applying this book’s principles, you can create code that accommodates new requirements and unforeseen scenarios without significant rewrites. Gary McLean Hall describes Agile best practices, principles, and patterns for designing and writing code that can evolve more quickly and easily, with fewer errors, because it doesn’t impede change.   Now revised, updated, and expanded, Adaptive Code, Second Edition adds indispensable practical insights on Kanban, dependency inversion, and creating reusable abstractions. Drawing on over a decade of Agile consulting and development experience, McLean Hall has updated his best-seller with deeper coverage of unit testing, refactoring, pure dependency injection, and more.   Master powerful new ways to: • Write code that enables and complements Scrum, Kanban, or any other Agile framework • Develop code that can survive major changes in requirements • Plan for adaptability by using dependencies, layering, interfaces, and design patterns • Perform unit testing and refactoring in tandem, gaining more value from both • Use the “golden master” technique to make legacy code adaptive • Build SOLID code with single-responsibility, open/closed, and Liskov substitution principles • Create smaller interfaces to support more-diverse client and architectural needs • Leverage dependency injection best practices to improve code adaptability • Apply dependency inversion with the Stairway pattern, and avoid related anti-patterns   About You This book is for programmers of all skill levels seeking more-practical insight into design patterns, SOLID principles, unit testing, refactoring, and related topics. Most readers will have programmed in C#, Java, C++, or similar object-oriented languages, and will be familiar with core procedural programming techniques.

  • ASIN: 1509302581
  • ISBN: 1509302581
  • Brand: Microsoft Press
  • Manufacturer: Microsoft Press

Programming: Principles and Practice Using C++ (2nd Edition)

Programming: Principles and Practice Using C++ (2nd Edition)

An Introduction to Programming by the Inventor of C++   Preparation for Programming in the Real World The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field.   Focus on Fundamental Concepts and Techniques The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code.   Programming with Today’s C++ (C++11 and C++14) The book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library and C++11 and C++14 features to simplify programming tasks.   For Beginners—And Anyone Who Wants to Learn Something New The book is primarily designed for people who have never programmed before, and it has been tested with many thousands of first-year university students. It has also been extensively used for self-study. Also, practitioners and advanced students have gained new insight and guidance by seeing how a master approaches the elements of his art.   Provides a Broad View The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics (such as text processing, testing, and the C programming language) and provides abundant reference material. Source code and support supplements are available from the author’s website.  

  • UPC: 884926202607
  • ASIN: 0321992784
  • ISBN: 0321992784
  • Manufacturer: Addison-Wesley Professional

Software Requirements (3rd Edition) (Developer Best Practices)

Software Requirements (3rd Edition) (Developer Best Practices)

Now in its third edition, this classic guide to software requirements engineering has been fully updated with new topics, examples, and guidance. Two leaders in the requirements community have teamed up to deliver a contemporary set of practices covering the full range of requirements development and management activities on software projects. Describes practical, effective, field-tested techniques for managing the requirements engineering process from end to end. Provides examples demonstrating how requirements "good practices" can lead to fewer change requests, higher customer satisfaction, and lower development costs. Fully updated with contemporary examples and many new practices and techniques. Describes how to apply effective requirements practices to agile projects and numerous other special project situations. Targeted to business analysts, developers, project managers, and other software project stakeholders who have a general understanding of the software development process. Shares the insights gleaned from the authors’ extensive experience delivering hundreds of software-requirements training courses, presentations, and webinars. New chapters are included on specifying data requirements, writing high-quality functional requirements, and requirements reuse. Considerable depth has been added on business requirements, elicitation techniques, and nonfunctional requirements. In addition, new chapters recommend effective requirements practices for various special project situations, including enhancement and replacement, packaged solutions, outsourced, business process automation, analytics and reporting, and embedded and other real-time systems projects.

  • ASIN: 0735679665
  • ISBN: 0735679665
  • Brand: Microsoft Press
  • Manufacturer: Microsoft Press

Fluent Python: Clear, Concise, and Effective Programming

Fluent Python: Clear, Concise, and Effective Programming

Python’s simplicity lets you become productive quickly, but this often means you aren’t using everything it has to offer. With this hands-on guide, you’ll learn how to write effective, idiomatic Python code by leveraging its best—and possibly most neglected—features. Author Luciano Ramalho takes you through Python’s core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work

  • ASIN: 1491946008
  • ISBN: 1491946008
  • Brand: O Reilly Media
  • Manufacturer: O'Reilly Media

Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems

Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems

A comprehensive guide to reaping the benefits of architectural modeling in embedded designKey FeaturesIdentify and overcome challenges in embedded environmentsUnderstand the steps required to increase the security of IoT solutionsBuild safety-critical and memory-safe parallel and distributed embedded systemsBook DescriptionEmbedded systems are self-contained units that have a dedicated purpose within a device. We come across a variety of applications of embedded systems in navigation tools, telecom applications, and networking equipment, to name just a few.Embedded Systems Architecture begins with a bird's eye view of embedded development and how it differs from the other systems that you may be familiar with. You'll first be guided to setting up a development environment and then move on to the core system architectural concepts, exploring pragmatic designs, boot-up mechanisms, and memory management. Next, you'll look at the programming interface and device drivers to establish communication via TCP/IP and take measures to increase the security of IoT solutions. Lastly, you'll be introduced to parallel multithreaded applications through the development of a scheduler.By the end of the book, you will have explored various aspects of embedded architecture such as memory management, focusing on a memory-safe approach, multithreading, and the RTOS approach.What you will learnParticipate in the design and definition phase of an embedded productLearn about architectural design patterns and engineering tradeoffsBuild an embedded development lab and optimize the workflowWrite memory-safe codeUnderstand the architecture behind the most communication interfacesUnderstand the design and development patterns for connected and distributed devices in the IoTMaster multitask parallel execution patterns and real-time operating systemsWho This Book Is ForIf you're a software developer or designer wanting to learn about embedded programming, this is the book for you. You'll also fin... [Read More]

  • ASIN: 1788832507
  • ISBN: 1788832507
  • Manufacturer: Packt Publishing - ebooks Account

Oracle PL/SQL Best Practices: Write the Best PL/SQL Code of Your Life

Oracle PL/SQL Best Practices: Write the Best PL/SQL Code of Your Life

In this compact book, Steven Feuerstein, widely recognized as one of the world's leading experts on the Oracle PL/SQL language, distills his many years of programming, teaching, and writing about PL/SQL into a set of best practices-recommendations for developing successful applications. Covering the latest Oracle release, Oracle Database 11gR2, Feuerstein has rewritten this new edition in the style of his bestselling Oracle PL/SQL Programming. The text is organized in a problem/solution format, and chronicles the programming exploits of developers at a mythical company called My Flimsy Excuse, Inc., as they write code, make mistakes, and learn from those mistakes-and each other.This book offers practical answers to some of the hardest questions faced by PL/SQL developers, including:What is the best way to write the SQL logic in my application code?How should I write my packages so they can be leveraged by my entire team of developers?How can I make sure that all my team's programs handle and record errors consistently?Oracle PL/SQL Best Practices summarizes PL/SQL best practices in nine major categories: overall PL/SQL application development; programming standards; program testing, tracing, and debugging; variables and data structures; control logic; error handling; the use of SQL in PL/SQL; building procedures, functions, packages, and triggers; and overall program performance.This book is a concise and entertaining guide that PL/SQL developers will turn to again and again as they seek out ways to write higher quality code and more successful applications."This book presents ideas that make the difference between a successful project and one that never gets off the ground. It goes beyond just listing a set of rules, and provides realistic scenarios that help the reader understand where the rules come from. This book should be required reading for any team of Oracle database professionals."--Dwayne King, President, KRIDAN Consulting

  • UPC: 636920514107
  • ASIN: 0596514107
  • ISBN: 0596514107
  • Brand: Brand: O'Reilly Media
  • Manufacturer: O'Reilly Media