Book picks similar to
Agile Practice Guide by Project Management Institute
project-management
business
agile
non-fiction
Practical Object Oriented Design in Ruby
Sandi Metz - 2012
The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design,
Practical Object-Oriented Design in Ruby
will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code
Learning Java
Patrick Niemeyer - 1996
With Java 5.0, you'll not only find substantial changes in the platform, but to the language itself-something that developers of Java took five years to complete. The main goal of Java 5.0 is to make it easier for you to develop safe, powerful code, but none of these improvements makes Java any easier to learn, even if you've programmed with Java for years. And that means our bestselling hands-on tutorial takes on even greater significance."Learning Java" is the most widely sought introduction to the programming language that's changed the way we think about computing. Our updated third edition takes an objective, no-nonsense approach to the new features in Java 5.0, some of which are drastically different from the way things were done in any previous versions. The most essential change is the addition of "generics," a feature that allows developers to write, test, and deploy code once, and then reuse the code again and again for different data types. The beauty of generics is that more problems will be caught during development, and "Learning Java" will show you exactly how it's done.Java 5.0 also adds more than 1,000 new classes to the Java library. That means 1,000 new things you can do without having to program it in yourself. That's a huge change. With our book's practical examples, you'll come up to speed quickly on this and other new features such as loops and threads. The new edition also includes an introduction to Eclipse, the open source IDE that is growing in popularity. "Learning Java," 3rd Edition addresses all of the important uses of Java, such as web applications, servlets, and XML that are increasingly driving enterprise applications.
The Systems Bible: The Beginner's Guide to Systems Large and Small: Being the Third Edition of Systemantics
John Gall - 1977
Hardcover published by Quadragle/The New York Times Book Co., third printing, August 1977, copyright 1975.
The Scrum Field Guide: Practical Advice for Your First Year
Mitch Lacey - 2012
If you're one of them, The Scrum Field Guide will give you skills and confidence to adopt Scrum more rapidly, more successfully, and with far less pain and fear. Long-time Scrum practitioner Mitch Lacey identifies major challenges associated with early-stage Scrum adoption, as well as deeper issues that emerge after companies have adopted Scrum, and describes how other organizations have overcome them. You'll learn how to gain "quick wins" that build support, and then use the flexibility of Scrum to maximize value creation across the entire process. In 30 brief, engaging chapters, Lacey guides you through everything from defining roles to setting priorities to determining team velocity, choosing a sprint length, and conducting customer reviews. Along the way, he explains why Scrum can seem counterintuitive, offers a solid grounding in the core agile concepts that make it work, and shows where it can (and shouldn't) be modified. Coverage includes Getting teams on board, and bringing new team members aboard after you've started Creating a "definition of done" for the team and organization Implementing the strong technical practices that are indispensable for agile success Balancing predictability and adaptability in release planning Keeping defects in check Running productive daily standup meetings Keeping people engaged with pair programming Managing culture clashes on Scrum teams Performing "emergency procedures" to get sprints back on track Establishing a pace your team can truly sustain Accurately costing projects, and measuring the value they deliver Documenting Scrum projects effectively Prioritizing and estimating large backlogs Integrating outsourced and offshored components Packed with real-world examples from Lacey's own experience, this book is invaluable to everyone transitioning to agile: developers, architects, testers, managers, and project owners alike.
168 Hours: You Have More Time Than You Think
Laura Vanderkam - 2010
This is your guide to getting the most out of them. It's an unquestioned truth of modern life: we are starved for time. We tell ourselves we'd like to read more, get to the gym regularly, try new hobbies, and accomplish all kinds of goals. But then we give up because there just aren't enough hours to do it all. Or if we don't make excuses, we make sacrifices- taking time out from other things in order to fit it all in. There has to be a better way...and Laura Vanderkam has found one. After interviewing dozens of successful, happy people, she realized that they allocate their time differently than most of us. Instead of letting the daily grind crowd out the important stuff, they start by making sure there's time for the important stuff. When plans go wrong and they run out of time, only their lesser priorities suffer. Vanderkam shows that with a little examination and prioritizing, you'll find it is possible to sleep eight hours a night, exercise five days a week, take piano lessons, and write a novel without giving up quality time for work, family, and other things that really matter.
Toyota Production System: Beyond large-scale production
Taiichi Ohno - 1978
Combining his candid insights with a rigorous analysis of Toyota's attempts at Lean production, Ohno's book explains how Lean principles can improve any production endeavor. A historical and philosophical description of just-in-time and Lean manufacturing, this work is a must read for all students of human progress. On a more practical level, it continues to provide inspiration and instruction for those seeking to improve efficiency through the elimination of waste.
Fearless Change: Patterns for Introducing New Ideas
Mary Lynn Manns - 2004
It contains a collection of eye-openers that is a treasure chest for pioneers of new organizational ideas, A fantastic toolbox for use in future missions!"--Lise B. Hvatum, product development manager, Schlumberger"If you have need of changing your organization, and especially of introducing new techniques, then you want to understand what is in this book. It will help you avoid common pitfalls that doom many such projects and will show you a clear path to success. The techniques are derived from the experience of many individuals and organizations. Many are also fun to apply. This stuff is really cool--and really hot."--Joseph Bergin, professor of computer science, Pace University, New York"If change is the only guarantee in life, why is it so hard to do? As this book points out, people are not so much resistant to change itself as they are to being changed. Mary Lynn and Linda have successfully used the pattern form to capture and present the recurring lessons of successful change efforts and have placed a powerful knowledge resource in the hands of their readers."--Alan O'Callaghan, researcher, Software Technology Research Laboratory, De Montfort University, United Kingdom"The most difficult part of absorbing patterns, or any technology, into an organization is overcoming the people issues. The patterns in this book are the documentation of having gone through that experience, giving those that dare push the envelope a head start at success."--David E. DeLano, IBM Pervasive Computing"If you have ever wondered how you could possibly foster any cultural changes in your organization, in this book you will find a lot of concrete advice for doing so. I recommend that everyone read this book who has a vast interest in keeping his or her organization flexible and open for cultural change."--Jutta Eckstein, Independent Consultant, Objects In Action Author of "Agile Software Development in the Large"48 Patterns for Driving and Sustaining Change in Your OrganizationChange. It's brutally tough to initiate, even harder to sustain. It takes too long. People resist it.But without it, organizations lose their competitive edge. Fortunately, you can succeed at making change. In "Fearless Change, " Mary Lynn Manns and Linda Rising illuminate 48 proven techniques, or patterns, for implementing change in organizations or teams of all sizes, and show you exactly how to use them successfully.Find out how toUnderstand the forces in your organization that drive and retard changePlant the seeds of changeDrive participation and buy-in, from start to finishChoose an "official skeptic" to sharpen your thinkingMake your changes appear less threateningFind the right timing and the best teaching momentsSustain your momentumOvercome adversity and celebrate successInspired by the "pattern languages" that are transforming fields from software to architecture, the authors illuminate patterns for every stage of the change process: knowledge, persuasion, decision, implementation, and confirmation. These flexible patterns draw on the experiences of hundreds of leaders. They offer powerful insight into change-agent behavior, organizational culture, and the roles of every participant.Best of all, they're easy to use--"and they work!"
Elements of Programming
Alexander Stepanov - 2009
And then we wonder why software is notorious for being delivered late and full of bugs, while other engineers routinely deliver finished bridges, automobiles, electrical appliances, etc., on time and with only minor defects. This book sets out to redress this imbalance. Members of my advanced development team at Adobe who took the course based on the same material all benefited greatly from the time invested. It may appear as a highly technical text intended only for computer scientists, but it should be required reading for all practicing software engineers." --Martin Newell, Adobe Fellow"The book contains some of the most beautiful code I have ever seen." --Bjarne Stroustrup, Designer of C++"I am happy to see the content of Alex's course, the development and teaching of which I strongly supported as the CTO of Silicon Graphics, now available to all programmers in this elegant little book." --Forest Baskett, General Partner, New Enterprise Associates"Paul's patience and architectural experience helped to organize Alex's mathematical approach into a tightly-structured edifice--an impressive feat!" --Robert W. Taylor, Founder of Xerox PARC CSL and DEC Systems Research Center Elements of Programming provides a different understanding of programming than is presented elsewhere. Its major premise is that practical programming, like other areas of science and engineering, must be based on a solid mathematical foundation. The book shows that algorithms implemented in a real programming language, such as C++, can operate in the most general mathematical setting. For example, the fast exponentiation algorithm is defined to work with any associative operation. Using abstract algorithms leads to efficient, reliable, secure, and economical software.This is not an easy book. Nor is it a compilation of tips and tricks for incremental improvements in your programming skills. The book's value is more fundamental and, ultimately, more critical for insight into programming. To benefit fully, you will need to work through it from beginning to end, reading the code, proving the lemmas, and doing the exercises. When finished, you will see how the application of the deductive method to your programs assures that your system's software components will work together and behave as they must.The book presents a number of algorithms and requirements for types on which they are defined. The code for these descriptions--also available on the Web--is written in a small subset of C++ meant to be accessible to any experienced programmer. This subset is defined in a special language appendix coauthored by Sean Parent and Bjarne Stroustrup.Whether you are a software developer, or any other professional for whom programming is an important activity, or a committed student, you will come to understand what the book's experienced authors have been teaching and demonstrating for years--that mathematics is good for programming, and that theory is good for practice.
Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Rules
Jeff Johnson - 2010
But as the field evolves, designers enter the field from many disciplines. Practitioners today have enough experience in UI design that they have been exposed to design rules, but it is essential that they understand the psychology behind the rules in order to effectively apply them. In "Designing with the Mind in Mind," Jeff Johnson, author of the best selling "GUI Bloopers," provides designers with just enough background in perceptual and cognitive psychology that UI design guidelines make intuitive sense rather than being just a list of rules to follow. * The first practical, all-in-one source for practitioners on user interface design rules and why, when and how to apply them.* Provides just enough background into the reasoning behind interface design rules that practitioners can make informed decisions in every project.* Gives practitioners the insight they need to make educated design decisions when confronted with tradeoffs, including competing design rules, time constrictions, or limited resources.
Python Cookbook
David Beazley - 2002
Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms.Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution works.Topics include:Data Structures and AlgorithmsStrings and TextNumbers, Dates, and TimesIterators and GeneratorsFiles and I/OData Encoding and ProcessingFunctionsClasses and ObjectsMetaprogrammingModules and PackagesNetwork and Web ProgrammingConcurrencyUtility Scripting and System AdministrationTesting, Debugging, and ExceptionsC Extensions
Adventures of an IT Leader
Robert D. Austin - 2009
A good IT manager must also be a strong business leader.This book invites you to accompany new CIO Jim Barton to better understand the role of IT in your organization. You'll see Jim struggle through a challenging first year, handling (and fumbling) situations that, although fictional, are based on true events.You can read this book from beginning to end, or treat is as a series of cases. You can also skip around to address your most pressing needs. For example, need to learn about crisis management and security? Read chapters 10-12. You can formulate your own responses to a CIO's obstacles by reading the authors' regular "Reflection" questions.You'll turn to this book many times as you face IT-related issues in your own career.
The Linux Programming Interface: A Linux and Unix System Programming Handbook
Michael Kerrisk - 2010
You'll learn how to:Read and write files efficiently Use signals, clocks, and timers Create processes and execute programs Write secure programs Write multithreaded programs using POSIX threads Build and use shared libraries Perform interprocess communication using pipes, message queues, shared memory, and semaphores Write network applications with the sockets API While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.Praise for The Linux Programming Interface "If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it." —Martin Landers, Software Engineer, Google "This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book." —Mel Gorman, Author of Understanding the Linux Virtual Memory Manager "Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in The Linux Programming Interface . . . makes it a must-have reference for both new and experienced Linux programmers." —Andreas Jaeger, Program Manager, openSUSE, Novell "Michael's inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem." —David Butenhof, Author of Programming with POSIX Threads and Contributor to the POSIX and UNIX Standards ". . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It's certainly a book I'd recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know 'what's new' in the popular GNU/Linux system." —Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author ". . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for." —Anthony Robins, Associate Professor of Computer Science, The University of Otago "I've been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs." —Christophe Blaess, Author of Programmation systeme en C sous Linux ". . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1." —Andrew Josey, Director, Standards, The Open Group, and Chair of the POSIX 1003.1 Working Group "What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? The Linux Programming Interface is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf." —Bill Gallmeister, Author of POSIX.4 Programmer's Guide: Programming for the Real World ". . . the most complete and up-to-date book about Linux and UNIX system programming. If you're new to Linux system programming, if you're a UNIX veteran focused on portability while interested in learning the Linux way, or if you're simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk's book is definitely the companion you want on your bookshelf." —Loic Domaigne, Chief Software Architect (Embedded), Corpuls.com
An Introduction to Enterprise Architecture
Scott A. Bernard - 2005
I wrote this book for three major reasons: (1) to help move business and technology planning from a systems and process-level view to a more strategy-driven enterprise-level view, (2) to promote and explain the emerging profession of EA, and (3) to provide the first textbook on the subject of EA, which is suitable for graduate and undergraduate levels of study. To date, other books on EA have been practitioner books not specifically oriented toward a student who may be learning the subject with little to no previous exposure. Therefore, this book contains references to related academic research and industry best practices, as well as my own observations about potential future practices and the direction of this emerging profession.
Black Box Thinking: Why Some People Never Learn from Their Mistakes - But Some Do
Matthew Syed - 2015
Every aircraft is equipped with an almost indestructible black box. When there is an accident, the box is opened, the data is analyzed, and the reason for the accident excavated. This ensures that procedures are adapted so that the same mistake doesn’t happen again. With this method, the industry has created an astonishing safety record.For pilots working in a safety-critical industry, getting it wrong can have deadly consequences. But most of us have a relationship with failure that impedes progress, halts innovation, and damages our lives. We don’t acknowledge it or learn from it —though we often think we do.Moving from anthropology to psychology and from history to complexity theory, Matthew Syed explains why even when we think we have 20/20 hindsight, our vision’s still fuzzy. He offers a radical new idea: that the most important determinant of success in any field, whether sports, business, or life, is an acknowledgment of failure and a willingness to engage with it. This is how we learn, progress and excel. This approach explains everything from biological evolution and the efficiency of markets to the success of the Mercedes F1 team and the mindset of David Beckham.Using a cornucopia of interviews, gripping stories, and sharp-edged science, Syed explores the intimate relationship between failure and success, and shows why we need to transport black box thinking into our own lives. If we wish to unleash our potential, we must diagnose and break free of our failures. Part manifesto for change, part intellectual adventure, this groundbreaking book reveals how to do both.
Objects First with Java: A Practical Introduction Using BlueJ
David J. Barnes - 2002
It takes a truly objects first approach to teaching problem solving using Java. These are complicated concepts so the book uses the development environment BlueJ to help the student's understanding. BlueJ has a strong emphasis on visualization and interaction techniques, and allows the students to manipulate objects and call methods as a first exercise. BlueJ is free and freely available, and has been developed specifically for teaching. The book is loaded with projects so that the student can really get a grip on actually solving problems; and it takes a spiral approach , introducing a topic in a simple context early on, then revisiting it later in the book to deepen understanding. It also comes with a CD containing JDK, BlueJ, a BlueJ tutorial and code for all the projects. The website contains style guide for all examples, PowerPoints for lecturers and also a Solutions Manual.