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
The Mom Test: How to talk to customers & learn if your business is a good idea when everyone is lying to you
Rob Fitzpatrick - 2013
They say you shouldn't ask your mom whether your business is a good idea, because she loves you and will lie to you. This is technically true, but it misses the point. You shouldn't ask anyone if your business is a good idea. It's a bad question and everyone will lie to you at least a little . As a matter of fact, it's not their responsibility to tell you the truth. It's your responsibility to find it and it's worth doing right .Talking to customers is one of the foundational skills of both Customer Development and Lean Startup. We all know we're supposed to do it, but nobody seems willing to admit that it's easy to screw up and hard to do right. This book is going to show you how customer conversations go wrong and how you can do better.
Tapworthy: Designing Great iPhone Apps
Josh Clark - 2010
Set your app apart with elegant design, efficient usability, and a healthy dose of personality. This accessible, well-written guide shows you how to design exceptional user experiences for the iPhone and iPod Touch through practical principles and a rich collection of visual examples.Whether you're a designer, programmer, manager, or marketer, Tapworthy teaches you to "think iPhone" and helps you ask the right questions -- and get the right answers -- throughout the design process. You'll explore how considerations of design, psychology, culture, ergonomics, and usability combine to create a tapworthy app. Along the way, you'll get behind-the-scenes insights from the designers of apps like Facebook, USA Today, Twitterrific, and many others.Develop your ideas from initial concept to finished designBuild an effortless user experience that rewards every tapExplore the secrets of designing for touchDiscover how and why people really use iPhone appsLearn to use iPhone controls the Apple wayCreate your own personality-packed visuals
Think First: My No-Nonsense Approach to Creating Successful Products, Memorable User Experiences + Very Happy Customers
Joe Natoli - 2015
Designing anything for people is tough, because we’re inherently complex and...well...messy. Which means that things like market share and ROI don’t come easy. But time and effort spent finding the right problems to solve allows designers, developers and product teams to take quantum leaps forward in exceeding the expectations of everyone involved. In Think First, Joe Natoli shows you exactly how to do this, using lessons learned from his 26 years as a UX consultant to Fortune 100 and 500 organizations. You’ll find proven principles, step-by-step methods and straightforward, jargon-free advice that can be applied to any kind of digital product. Think First proves that while people are indeed messy and complex, designing for them doesn’t have to be. Here’s what a few well-respected UX practitioners and authors had to say about Think First: “A very practical guide to success in business.” – Dr. Don Norman, Director of the DesignLab, UC San Diego and Author of The Design of Everyday Things “Think First is a practical guide to UX that makes sense of strategy and structure. Highly recommended!” – Peter Morville, Bestselling Author of Intertwingled “For designers and developers, understanding strategy and UX is an increasingly necessary skill. Joe Natoli’s Think First demystifies these foundational ideas in a very conversational, easy to read style.” – Ilise Benun, Founder of Marketing-Mentor.com and Author of 7+ Books Author Joe Natoli explains why he believes Think First is unlike any other book on the subject of UX strategy and design: "I didn’t want to write yet another book that covers the narrow, tactical pieces of the design process," he says, "because great design and great UX are the result of multiple activities across multiple people, roles and disciplines. It’s everybody’s business. Think First walks you through everything that must be considered to create great UX — and gives you a roadmap to make it happen." Think First details Joe's no-nonsense approach to creating successful products, powerful user experiences and very happy customers. He share countless lessons learned from more than 26 years as a UX consultant to Fortune 500 and 100 organizations — including a few he's learned the hard way :-) Think First serves as a roadmap to building a solid foundation for UX that’s strong enough to withstand any weather as projects move into design and coding. Here are just some of the things you’ll learn: - Simple user research methods that anyone can perform — even if you’ve never done research of any kind. - The right questions to ask stakeholders and users at the outset of any (and every) project. - The 3 crucial questions you must ask of every client, every time. - How to tell the difference between what people say they need vs. what they really need. - A better, simpler way to generate meaningful UX requirements at the outset of the project. - How to figure out what features and functions will result in great UX and deliver value to both users and the business. - How to avoid scope creep and the never-ending project scenario.
Team Topologies: Organizing Business and Technology Teams for Fast Flow
Matthew Skelton - 2019
But how do you build the best team organization for your specific goals, culture, and needs? Team Topologies is a practical, step-by-step, adaptive model for organizational design and team interaction based on four fundamental team types and three team interaction patterns. It is a model that treats teams as the fundamental means of delivery, where team structures and communication pathways are able to evolve with technological and organizational maturity.In Team Topologies, IT consultants Matthew Skelton and Manuel Pais share secrets of successful team patterns and interactions to help readers choose and evolve the right team patterns for their organization, making sure to keep the software healthy and optimize value streams.Team Topologies is a major step forward in organizational design for software, presenting a well-defined way for teams to interact and interrelate that helps make the resulting software architecture clearer and more sustainable, turning inter-team problems into valuable signals for the self-steering organization.
Product Leadership: How Top Product Managers Launch Awesome Products and Build Successful Teams
Richard Banfield - 2017
Yet, managing human beings and navigating complex product roadmaps is no easy task, and it's rare to find a product leader who can steward a digital product from concept to launch without a couple of major hiccups. Why do some product leaders succeed while others don't?This insightful book presents interviews with nearly 100 leading product managers from all over the world. Authors Richard Banfield, Martin Eriksson, and Nate Walkingshaw draw on decades of experience in product design and development to capture the approaches, styles, insights, and techniques of successful product managers. If you want to understand what drives good product leaders, this book is an irreplaceable resource.In three parts, Product Leadership helps you explore:Themes and patterns of successful teams and their leaders, and ways to attain those characteristicsThe best approaches for guiding your product team through the startup, emerging, and enterprise stages of a company's evolutionStrategies and tactics for working with customers, agencies, partners, and external stakeholders
Implementing Responsive Design: Building Sites for an Anywhere, Everywhere Web
Tim Kadlec - 2012
Browsers iterate at a remarkable pace. Faced with this volatile landscape we can either struggle for control or we can embrace the inherent flexibility of the web.Responsive design is not just another technique—it is the beginning of the maturation of a medium and a fundamental shift in the way we think about the web.Implementing Responsive Design is a discussion about how this affects the way we design, build, and think about our sites. Readers will learn how to:- Build responsive sites using a combination of fluid layouts, media queries and fluid media- Adopt a responsive workflow from the very start of a project- Enhance content for different devices- Use feature-detection and server-side enhancement to provide a richer experience
Why Software Sucks...and What You Can Do about It
David S. Platt - 2006
. . . Put this one on your must-have list if you have software, love software, hate programmers, or even ARE a programmer, because Mr. Platt (who teaches programming) has set out to puncture the bloated egos of all those who think that just because they can write a program, they can make it easy to use. . . . This book is funny, but it is also an important wake-up call for software companies that want to reduce the size of their customer support bills. If you were ever stuck for an answer to the question, 'Why do good programmers make such awful software?' this book holds the answer."--John McCormick, Locksmith columnist, TechRepublic.com "I must say first, I don't get many computing manuscripts that make me laugh out loud. Between the laughs, Dave Platt delivers some very interesting insight and perspective, all in a lucid and engaging style. I don't get much of that either!"--Henry Leitner, assistant dean for information technology andsenior lecturer on computer science, Harvard University "A riotous book for all of us downtrodden computer users, written in language that we understand."--Stacy Baratelli, author's barber "David's unique take on the problems that bedevil software creation made me think about the process in new ways. If you care about the quality of the software you create or use, read this book."--Dave Chappell, principal, Chappell & Associates "I began to read it in my office but stopped before I reached the bottom of the first page. I couldn't keep a grin off my face! I'll enjoy it after I go back home and find a safe place to read."--Tsukasa Makino, IT manager "David explains, in terms that my mother-in-law can understand, why the software we use today can be so frustrating, even dangerous at times, and gives us some real ideas on what we can do about it."--Jim Brosseau, Clarrus Consulting Group, Inc. A Book for Anyone Who Uses a Computer Today...and Just Wants to Scream! Today's software sucks. There's no other good way to say it. It's unsafe, allowing criminal programs to creep through the Internet wires into our very bedrooms. It's unreliable, crashing when we need it most, wiping out hours or days of work with no way to get it back. And it's hard to use, requiring large amounts of head-banging to figure out the simplest operations.It's no secret that software sucks. You know that from personal experience, whether you use computers for work or personal tasks. In this book, programming insider David Platt explains why that's the case and, more importantly, why it doesn't have to be that way. And he explains it in plain, jargon-free English that's a joy to read, using real-world examples with which you're already familiar. In the end, he suggests what you, as a typical user, without a technical background, can do about this sad state of our software--how you, as an informed consumer, don't have to take the abuse that bad software dishes out.As you might expect from the book's title, Dave's expose is laced with humor--sometimes outrageous, but always dead on. You'll laugh out loud as you recall incidents with your own software that made you cry. You'll slap your thigh with the same hand that so often pounded your computer desk and wished it was a bad programmer's face. But Dave hasn't written this book just for laughs. He's written it to give long-overdue voice to your own discovery--that software does, indeed, suck, but it shouldn't.
The Web Designer's Idea Book: The Ultimate Guide To Themes, Trends Styles In Website Design
Patrick McNeil - 2008
Author Patrick McNeil has cataloged more than 5,000 sites on his website, and showcased in this book are the very best examples.Sites are organized by type, design style, theme, color, element and structure. Each chapter is easy to use and reference again and again, whether you're talking with a coworker or discussing website design options with a client. As a handy desk reference for design layout, color and style, this book is a must-have for starting new projects.
Building Microservices: Designing Fine-Grained Systems
Sam Newman - 2014
But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures.Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You'll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.Discover how microservices allow you to align your system design with your organization's goalsLearn options for integrating a service with the rest of your systemTake an incremental approach when splitting monolithic codebasesDeploy individual microservices through continuous integrationExamine the complexities of testing and monitoring distributed servicesManage security with user-to-service and service-to-service modelsUnderstand the challenges of scaling microservice architectures
Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
Scott Rosenberg - 2007
Along the way, we encounter black holes, turtles, snakes, dragons, axe-sharpening, and yak-shaving—and take a guided tour through the theories and methods, both brilliant and misguided, that litter the history of software development, from the famous ‘mythical man-month’ to Extreme Programming. Not just for technophiles but for anyone captivated by the drama of invention, Dreaming in Code offers a window into both the information age and the workings of the human mind.
Digging Into WordPress
Jeff Starr - 2009
From your first steps of learning about WordPress all the way through maintaining a site throughout the years, this book is packed with truly practical information.
Think Like a Programmer: An Introduction to Creative Problem Solving
V. Anton Spraul - 2012
In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to:Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.
Lean Enterprise: How High Performance Organizations Innovate at Scale
Jez Humble - 2014
Adopting Lean will take time and commitment, but it’s vital for harnessing the cultural and technical forces that are accelerating the rate of innovation.* Discover how Lean focuses on people and teamwork at every level, in contrast to traditional management practices* Approach problem-solving experimentally, by exploring solutions, testing assumptions, and getting feedback from real users* Lead and manage large-scale programs in a way that empowers employees, increases the speed and quality of delivery, and lowers costs* Learn how to implement ideas from the DevOps and Lean Startup movements even in complex, regulated environments
Test-Driven Web Development with Python
Harry Percival - 2010
You’ll learn everything from the basics of database integration and the use of JavaScript to browser-automation tools like Selenium, and advanced topics such as NoSQL, Web Sockets, and async programming.Ideal for beginners, this book teaches a development methodology that leads to peace of mind, cleaner code, and better web apps.