Modern Software Engineering

Modern Software Engineering PDF Author: David Farley
Publisher: Addison-Wesley Professional
ISBN: 0137314868
Category : Computers
Languages : en
Pages : 479

Get Book Here

Book Description
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.

Modern Software Engineering

Modern Software Engineering PDF Author: David Farley
Publisher: Addison-Wesley Professional
ISBN: 0137314868
Category : Computers
Languages : en
Pages : 479

Get Book Here

Book Description
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.

Building Great Software Engineering Teams

Building Great Software Engineering Teams PDF Author: Joshua Tyler
Publisher: Apress
ISBN: 1484211332
Category : Computers
Languages : en
Pages : 154

Get Book Here

Book Description
WINNER of Computing Reviews 20th Annual Best Review in the category Management “Tyler’s book is concise, reasonable, and full of interesting practices, including some curious ones you might consider adopting yourself if you become a software engineering manager.” —Fernando Berzal, CR, 10/23/2015 “Josh Tyler crafts a concise, no-nonsense, intensely focused guide for building the workhouse of Silicon Valley—the high-functioning software team.” —Gordon Rios, Summer Book Recommendations from the Smartest People We Know—Summer 2016 Building Great Software Engineering Teams provides engineering leaders, startup founders, and CTOs concrete, industry-proven guidance and techniques for recruiting, hiring, and managing software engineers in a fast-paced, competitive environment. With so much at stake, the challenge of scaling up a team can be intimidating. Engineering leaders in growing companies of all sizes need to know how to find great candidates, create effective interviewing and hiring processes, bring out the best in people and their work, provide meaningful career development, learn to spot warning signs in their team, and manage their people for long-term success. Author Josh Tyler has spent nearly a decade building teams in high-growth startups, experimenting with every aspect of the task to see what works best. He draws on this experience to outline specific, detailed solutions augmented by instructive stories from his own experience. In this book you’ll learn how to build your team, starting with your first hire and continuing through the stages of development as you manage your team for growth and success. Organized to cover each step of the process in the order you’ll likely face them, and highlighted by stories of success and failure, it provides an easy-to-understand recipe for creating your high-powered engineering team.

A Philosophy of Software Design

A Philosophy of Software Design PDF Author: John Ousterhout
Publisher: Yaknyam Publishing
ISBN: 9781732102200
Category :
Languages : en
Pages :

Get Book Here

Book Description


Software Build Systems

Software Build Systems PDF Author: Peter Smith PhD
Publisher: Pearson Education
ISBN: 0132171937
Category : Computers
Languages : en
Pages : 647

Get Book Here

Book Description
“This book represents a thorough and extensive treatment of the software build process including the choices, benefits, and challenges of a well designed build process. I recommend it not only to all software build engineers but to all software developers since a well designed build process is key to an effective software development process.” —Kevin Bodie, Director Software Development, Pitney Bowes Inc. “An excellent and detailed explanation of build systems, an important but often overlooked part of software development projects. The discussion of productivity as related to build systems is, alone, well worth the time spent reading this book.” —John M. Pantone, Objectech Corporation, VP, IT Educator and Course Developer “Peter Smith provides an interesting and accessible look into the world of software build systems, distilling years of experience and covering virtually every type of tool in the build engineer’s toolbox. Well organized, well written, and very thorough; I would recommend this book to anyone with a build system under their responsibility.” —Jeff Overbey, Project Co-Lead, Photran “Software Build Systems teaches how to think about building software. It surveys the tools and techniques for building software products and the ways things go wrong. This book will appeal to those new to build systems as well as experienced build system engineers.” —Monte Davidoff, Software Development Consultant, Alluvial Software, Inc. Inadequate build systems can dramatically impact developer productivity. Bad dependencies, false compile errors, failed software images, slow compilation, and time-wasting manual processes are just some of the byproducts of a subpar build system. In Software Build Systems, software productivity expert Peter Smith shows you how to implement build systems that overcome all these problems, so you can deliver reliable software more rapidly, at lower cost. Smith explains the core principles underlying highly efficient build systems, surveying both system features and usage scenarios. Next, he encapsulates years of experience in creating and maintaining diverse build systems–helping you make well-informed choices about tools and practices, and avoid common traps and pitfalls. Throughout, he shares a wide range of practical examples and lessons from multiple environments, including Java, C++, C, and C#. Coverage includes • Mastering build system concepts, including source trees, build tools, and compilation tools • Comparing five leading build tools: GNU Make, Ant, SCons, CMake, and the Eclipse IDE’s integrated build features • Ensuring accurate dependency checking and efficient incremental compilation • Using metadata to assist debugging, profiling, and source code documentation • Packaging software for installation on your target machine • Best practices for managing complex version-control systems, build machines, and compilation tools If you’re a developer, this book will illuminate the issues involved in building and maintaining the build system that’s best for your team. If you’re a manager, you’ll discover how to evaluate your team’s build system and improve its effectiveness. And if you’re a build “guru,” you’ll learn how to optimize the performance and scalability of your build system, no matter how demanding your requirements are.

Continuous Delivery

Continuous Delivery PDF Author: Jez Humble
Publisher: Pearson Education
ISBN: 0321670221
Category : Computers
Languages : en
Pages : 956

Get Book Here

Book Description
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.

Design - Build - Run

Design - Build - Run PDF Author: Dave Ingram
Publisher: John Wiley & Sons
ISBN: 0470482931
Category : Computers
Languages : en
Pages : 722

Get Book Here

Book Description
This unique and critical book shares no-fail secrets for building software and offers tried-and-true practices and principles for software design, development, and testing for mission-critical systems that must not fail. A veteran software architect walks you through the lifecycle of a project as well as each area of production readiness—functionality, availability, performance and scalability, operability, maintainability, and extensibility, and highlights their key concepts.

The Nature of Software Development

The Nature of Software Development PDF Author: Ron Jeffries
Publisher: Pragmatic Bookshelf
ISBN: 1680505084
Category : Computers
Languages : en
Pages : 264

Get Book Here

Book Description
You need to get value from your software project. You need it "free, now, and perfect." We can't get you there, but we can help you get to "cheaper, sooner, and better." This book leads you from the desire for value down to the specific activities that help good Agile projects deliver better software sooner, and at a lower cost. Using simple sketches and a few words, the author invites you to follow his path of learning and understanding from a half century of software development and from his engagement with Agile methods from their very beginning. The book describes software development, starting from our natural desire to get something of value. Each topic is described with a picture and a few paragraphs. You're invited to think about each topic; to take it in. You'll think about how each step into the process leads to the next. You'll begin to see why Agile methods ask for what they do, and you'll learn why a shallow implementation of Agile can lead to only limited improvement. This is not a detailed map, nor a step-by-step set of instructions for building the perfect project. There is no map or instructions that will do that for you. You need to build your own project, making it a bit more perfect every day. To do that effectively, you need to build up an understanding of the whole process. This book points out the milestones on your journey of understanding the nature of software development done well. It takes you to a location, describes it briefly, and leaves you to explore and fill in your own understanding. What You Need: You'll need your Standard Issue Brain, a bit of curiosity, and a desire to build your own understanding rather than have someone else's detailed ideas poured into your head.

Seriously Good Software

Seriously Good Software PDF Author: Marco Faella
Publisher: Manning Publications
ISBN: 1617296295
Category : Computers
Languages : en
Pages : 325

Get Book Here

Book Description
Summary Serious developers know that code can always be improved. With each iteration, you make optimizations—small and large—that can have a huge impact on your application’s speed, size, resilience, and maintainability. In Seriously Good Software: Code that Works, Survives, and Wins, author, teacher, and Java expert Marco Faella teaches you techniques for writing better code. You’ll start with a simple application and follow it through seven careful refactorings, each designed to explore another dimension of quality. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Great code blends the skill of a programmer with the time-tested techniques and best practices embraced by the entire development community. Although each application has its own context and character, some dimensions of quality are always important. This book concentrates on eight pillars of seriously good software: speed, memory usage, reliability, readability, thread safety, generality, and elegance. The Java-based examples demonstrate techniques that apply to any OO language. About the book Seriously Good Software is a handbook for any professional developer serious about improving application quality. It explores fundamental dimensions of code quality by enhancing a simple implementation into a robust, professional-quality application. Questions, exercises, and Java-based examples ensure you’ll get a firm grasp of the concepts as you go. When you finish the last version of the book’s central project, you’ll be able to confidently choose the right optimizations for your code. What's inside Evaluating software qualities Assessing trade-offs and interactions Fulfilling different objectives in a single task Java-based exercises you can apply in any OO language About the reader For web developers comfortable with JavaScript and HTML. About the author Marco Faella teaches advanced programming at a major Italian university. His published work includes peer-reviewed research articles, a Java certification manual, and a video course. Table of Contents *Part 1: Preliminaries * 1 Software qualities and a problem to solve 2 Reference implementation *Part 2: Software Qualities* 3 Need for speed: Time efficiency 4 Precious memory: Space efficiency 5 Self-conscious code: Reliability through monitoring 6 Lie to me: Reliability through testing 7 Coding aloud: Readability 8 Many cooks in the kitchen: Thread safety 9 Please recycle: Reusability

Head First Software Development

Head First Software Development PDF Author: Dan Pilone
Publisher: "O'Reilly Media, Inc."
ISBN: 0596527357
Category : Computers
Languages : en
Pages : 495

Get Book Here

Book Description
Provides information on successful software development, covering such topics as customer requirements, task estimates, principles of good design, dealing with source code, system testing, and handling bugs.

Growing Object-Oriented Software, Guided by Tests

Growing Object-Oriented Software, Guided by Tests PDF Author: Steve Freeman
Publisher: Pearson Education
ISBN: 0321699769
Category : Computers
Languages : en
Pages : 762

Get Book Here

Book Description
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD—from integrating TDD into your processes to testing your most difficult features. Coverage includes Implementing TDD effectively: getting started, and maintaining your momentum throughout the project Creating cleaner, more expressive, more sustainable code Using tests to stay relentlessly focused on sustaining quality Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project Using Mock Objects to guide object-oriented designs Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency