Making Software

Making Software
Author: Andy Oram
Publisher: "O'Reilly Media, Inc."
Total Pages: 624
Release: 2010-10-14
Genre: Computers
ISBN: 9781449397760

Download Making Software Book in PDF, Epub and Kindle

Many claims are made about how certain tools, technologies, and practices improve software development. But which claims are verifiable, and which are merely wishful thinking? In this book, leading thinkers such as Steve McConnell, Barry Boehm, and Barbara Kitchenham offer essays that uncover the truth and unmask myths commonly held among the software development community. Their insights may surprise you. Are some programmers really ten times more productive than others? Does writing tests first help you develop better code faster? Can code metrics predict the number of bugs in a piece of software? Do design patterns actually make better software? What effect does personality have on pair programming? What matters more: how far apart people are geographically, or how far apart they are in the org chart? Contributors include: Jorge Aranda Tom Ball Victor R. Basili Andrew Begel Christian Bird Barry Boehm Marcelo Cataldo Steven Clarke Jason Cohen Robert DeLine Madeline Diep Hakan Erdogmus Michael Godfrey Mark Guzdial Jo E. Hannay Ahmed E. Hassan Israel Herraiz Kim Sebastian Herzig Cory Kapser Barbara Kitchenham Andrew Ko Lucas Layman Steve McConnell Tim Menzies Gail Murphy Nachi Nagappan Thomas J. Ostrand Dewayne Perry Marian Petre Lutz Prechelt Rahul Premraj Forrest Shull Beth Simon Diomidis Spinellis Neil Thomas Walter Tichy Burak Turhan Elaine J. Weyuker Michele A. Whitecraft Laurie Williams Wendy M. Williams Andreas Zeller Thomas Zimmermann

Making it Big in Software

Making it Big in Software
Author: Sam Lightstone
Publisher: Pearson Education
Total Pages: 723
Release: 2010-03-10
Genre: Business & Economics
ISBN: 0137065477

Download Making it Big in Software Book in PDF, Epub and Kindle

The Software Insider’s Guide to Getting Hired and Getting to the Top! Here’s all the information you need to jumpstart your software career: the best ways to get hired, move up, and blaze your way to the top! The software business has radically changed, and this book reveals today’s realities–everything your professors and corporate managers never told you. In his 20 years at IBM as a software architect, senior manager, and lead programmer, Sam Lightstone has briefed dozens of leading companies and universities on careers, new technology, and emerging areas of research. He currently works on one of the world’s largest software development teams and spends a good part of his time recruiting and mentoring software engineers. This book shares all the lessons for success Sam has learned…plus powerful insights from 17 of the industry’s biggest stars. Want to make it big in software? Start right here! Discover how to • Get your next job in software development • Master the nontechnical skills crucial to your success • “Work the org” to move up rapidly • Successfully manage your time, projects, and life • Avoid “killer” mistakes that could destroy your career • Move up to “medium-shot,” “big-shot,” and finally, “visionary” • Launch your own winning software company Exclusive interviews with Steve Wozniak, Inventor, Apple computer John Schwarz, CEO, Business Objects James Gosling, Inventor, Java programming language Marissa Mayer, Google VP, Search Products and User Experience Jon Bentley, Author, Programming Pearls Marc Benioff, CEO and founder, Salesforce.com Grady Booch, IBM Fellow and co-founder Rational Software Bjarne Stroustrup, Inventor, C++ programming language David Vaskevitch, Microsoft CTO Linus Torvalds, Creator, Linux operating system kernel Richard Stallman, Founder, Free software movement Peter Norvig, Google’s Director of Research Mark Russinovich, Microsoft Fellow and Windows Architect Tom Malloy, Adobe Chief Software Architect Diane Greene, Co-founder and past CEO of VMware Robert Kahn, Co-inventor, the Internet Ray Tomlinson, Inventor, email

Making the Software Business Case

Making the Software Business Case
Author: Donald J. Reifer
Publisher: Pearson Education
Total Pages: 364
Release: 2001-09-05
Genre: Computers
ISBN: 0768685087

Download Making the Software Business Case Book in PDF, Epub and Kindle

"Just the understanding and insights you will pick up about how people encounter and cope with combinations of technical, social, political, and economic opportunities and challenges make the book a joy to read and worth much more than the price of it alone." --Barry Boehm, from the Foreword This practical handbook shows you how to build an effective business case when you need to justify--and persuade management to accept--software change or improvement. Based on real-world scenarios, the book covers the most common situations in which business case analyses are required and explains specific techniques that have proved successful in practice. Drawing on years of experience in winning the "battle of the budget," the author shows you how to use commonly accepted engineering economic arguments to make your numbers "sing" to management. The book provides examples of successful business cases; along the way, tables, tools, facts, figures, and metrics guide you through the entire analytic process. Writing in a concise and witty style, the author makes this valuable guidance accessible to every software engineer, manager, and IT professional. Highlights include: How and where business case analyses fit into the software and IT life cycle process Explanations of the most common tools for business case analysis, such as present-value, return-on-investment, break-even, and cost/benefit calculation Tying the business process to the software development life cycle Packaging the business case for management consumption Frameworks and guidelines for justifying IT productivity, quality, and delivery cycle improvement strategies Case studies for applying appropriate decision situations to software process improvement Strategic guidelines for various business case analyses With this book in hand, you will find the facts, examples, hard data, and case studies needed for preparing your own winning business cases in today's complex software environment.

Making Embedded Systems

Making Embedded Systems
Author: Elecia White
Publisher: "O'Reilly Media, Inc."
Total Pages: 329
Release: 2011-10-25
Genre: Computers
ISBN: 1449320589

Download Making Embedded Systems Book in PDF, Epub and Kindle

Interested in developing embedded systems? Since they donâ??t tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements. Written by an expert whoâ??s created embedded systems ranging from urban surveillance and DNA scanners to childrenâ??s toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use. Optimize your system to reduce cost and increase performance Develop an architecture that makes your software robust in resource-constrained environments Explore sensors, motors, and other I/O devices Do more with less: reduce RAM consumption, code space, processor cycles, and power consumption Learn how to update embedded code directly in the processor Discover how to implement complex mathematics on small processors Understand what interviewers look for when you apply for an embedded systems job "Making Embedded Systems is the book for a C programmer who wants to enter the fun (and lucrative) world of embedded systems. Itâ??s very well writtenâ??entertaining, evenâ??and filled with clear illustrations." â??Jack Ganssle, author and embedded system expert.

Software Design for Flexibility

Software Design for Flexibility
Author: Chris Hanson
Publisher: MIT Press
Total Pages: 449
Release: 2021-03-09
Genre: Computers
ISBN: 0262362473

Download Software Design for Flexibility Book in PDF, Epub and Kindle

Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications. Time pressures encourage programmers to write code that works well for a narrow purpose, with no room to grow. But the best systems are evolvable; they can be adapted for new situations by adding code, rather than changing the existing code. The authors describe techniques they have found effective--over their combined 100-plus years of programming experience--that will help programmers avoid programming themselves into corners. The authors explore ways to enhance flexibility by: Organizing systems using combinators to compose mix-and-match parts, ranging from small functions to whole arithmetics, with standardized interfaces Augmenting data with independent annotation layers, such as units of measurement or provenance Combining independent pieces of partial information using unification or propagation Separating control structure from problem domain with domain models, rule systems and pattern matching, propagation, and dependency-directed backtracking Extending the programming language, using dynamically extensible evaluators

Software Design X-Rays

Software Design X-Rays
Author: Adam Tornhill
Publisher: Pragmatic Bookshelf
Total Pages: 362
Release: 2018-03-08
Genre: Computers
ISBN: 1680505807

Download Software Design X-Rays Book in PDF, Epub and Kindle

Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.

Domain-driven Design

Domain-driven Design
Author: Eric Evans
Publisher: Addison-Wesley Professional
Total Pages: 563
Release: 2004
Genre: Computers
ISBN: 0321125215

Download Domain-driven Design Book in PDF, Epub and Kindle

"Domain-Driven Design" incorporates numerous examples in Java-case studies taken from actual projects that illustrate the application of domain-driven design to real-world software development.

The Nature of Software Development

The Nature of Software Development
Author: Ron Jeffries
Publisher: Pragmatic Bookshelf
Total Pages: 264
Release: 2015-02-19
Genre: Computers
ISBN: 1680505084

Download The Nature of Software Development Book in PDF, Epub and Kindle

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.

Software Engineering at Google

Software Engineering at Google
Author: Titus Winters
Publisher: O'Reilly Media
Total Pages: 602
Release: 2020-02-28
Genre: Computers
ISBN: 1492082767

Download Software Engineering at Google Book in PDF, Epub and Kindle

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

Making Software Teams Effective

Making Software Teams Effective
Author: Chaehan So
Publisher: Peter Lang
Total Pages: 216
Release: 2010
Genre: Agile software development
ISBN: 9783631603376

Download Making Software Teams Effective Book in PDF, Epub and Kindle

How does good teamwork emerge? Can we control mechanisms of teamwork? The author has analyzed these questions in a study involving 227 participants of 55 software development teams. First, he empirically confirmed his teamwork model based on innovation research, goal setting and control theory. Second, he measured the impact of a wide selection of agile practices on these teamwork mechanisms. Third, he explained these impacts based on a thorough review of current psychological research. This book is intended for people working in agile contexts as they will gain insight into the complexity of how «good teamwork» emerges. This insight on team dynamics may also prove valuable for upper management for calibrating agile practices and «soft factors», thus increasing the effectiveness of software teams.