Painless Project Management with FogBugz, Second Edition, written with the guidance of the whole FogBugz team, completely describes the ins and outs of version 6 of FogBugz.
Unrealistic schedules, unstable releases, continual overtime, and skyrocketing stress levels are legendary in the software development industry. Unlike traditional occupations such as accounting or administration, the software business is populated by programmers who are as creative and passionate about their work as musicians or artists. For most, it is a complete surprise when they enter the business world and find that internal politics, inept management, and unrealistic marketing drive the process rather than a structured and orderly approach based on technical issues and quality.
The Career Programmer explains how the individual programmer or project manager can work within the existing system to solve deadline problems and regain control of the development process. Care is taken to offer proven, practical, and hands-on solutions that are designed to work when confronted with the political and chaotic realities of the business environment. Issues are addressed from the points of view of both the programmer and project manager, and steps are shown in all perspectives, from large-scale teams down to projects with a single developer. For the individual programmer or project manager, the end results are less overtime, less stress, higher-quality software, and a more satisfying career.
In this collection of over 80 columns, Eric Brechner's alter ego pulls no punches with his candid commentary and best practice solutions to the issues that irk him the most. He dissects the development process, examines tough team issues, and critiques how the software business is run, with the added touch of clever humor and sardonic wit. His ideas aren't always popular (not that he cares), but they do stimulate discussion and imagination needed to drive software excellence.
Get the unvarnished truth on how to:Improve software quality and value—from design to security Realistically manage project schedules, risks, and specs Trim the fat from common development inefficiencies Apply process improvement methods—without being an inflexible fanatic Drive your own successful, satisfying career Don't be a dictator—develop and manage a thriving team!
Companion Web site includes:Agile process documents Checklists, templates, and other resources
Each case study in Lessons in Project Management contains accessible, easy-to-read case studies in real-world project management challenges. Each presentation of the problem is followed by an examination of the solution, written in easy-to-understand language.
The format allows you to relate better to the book since it brings into play a project scenario with practical project management lessons to be learned. You'll also recognize recurring characters that appear in multiple stories and you'll start to develop some empathy and interest for their struggle.Table of Contents Understand the Characteristics of a Project Make Sure You Always Have an Identified and Committed Sponsor and Client Organization Report Status on All Projects (There Are Many Alternatives to the Format and Delivery) Focus on Deadline Dates First When Managing a Project Apply Some Level of Project Management Discipline— Even on Small Projects Define and Plan the Work First to Ensure Better Project Execution Don’t “Microbuild” or Micromanage the Workplan Manage Documents Properly to Avoid Confusion and Mix-Ups Define the Many Aspects of What Is in Scope and out of Scope Use the “Big Three” Documents—Project Definition, Project Workplan, and Requirements—As the Foundation for Your Project Use Scope Change Management to Allow the Sponsor to Make the Final Decision (Many Times the Sponsor Will Say “No”) Collect Metrics to Evaluate How Well You (and Your Project) Are Performing Save Knowledge for Future Projects, Leverage Knowledge from Prior Projects Ensure Issues Management Is Everyone’s Responsibility Shorten Long Meetings to Sharpen the Focus Identify the Root Cause of Problems, Especially If They Are Reoccurring Use Quality Assurance Techniques to Validate the Status of a Project Cancel Projects That Lose Business Support, Relevance, and Focus Use Risk Management to Respond to Problems Before They Occur Focus Your Quality Management on Processes, Not People Don’t Use Your Estimating Contingency for Scope Changes Develop a Communication Plan to Address Complex Communication Requirements Scale Your Project Management Processes Based on the Size of the Project Define and Plan the Project, Even If You Have to Start the Work at the Same Time Understand the Critical Path on Your Project and How This Path Drives the Deadline Date Change the Underlying Assumptions to Revise a Well-Prepared Estimate Don’t Shortchange Face-to-Face Communication on Your Project Make Sure Quality Is a Mindset and an Ongoing Process on Your Project Batch Small Scope Change Requests Together for Sponsor Approval Define the Overall Project Approach Before Building the Detailed Workplan Look for Risks Inherent to Your Project Before You Begin Get Sponsor Approval Before Investigating Large Scope Change Requests Make Sure the Cost of Collecting Metrics Does Not Exceed Their Value Use One or More Formal Techniques to Estimate Project Work Effort Keep Your Workplan Up to Date Throughout the Project Use Issues Management to Help Choose the Best of Bad Alternatives Collect Metrics That Can Lead to Fundamental Improvements Evaluate All Risk Response Options in the Risk Plan Gain a Common Understanding First to Effectively Manage Client Expectations Use Milestones in the Workplan to Track Overall Progress Establish Processes to Catch Errors As Early in the Project As Possible Gain Sponsor Approval for Scope Changes Requiring Budget and Deadline Changes Be Proactive in Applying Techniques to Accelerate the Project Schedule Use the Work Breakdown Structure Technique to Identify All the Work Required for a Project Write Your Status Reports with the Readers’ Interest in Mind Update Your Risk Plan Periodically Throughout the Project Don’t Practice Goldplating—Delivering More Than the Client Requested Make Sure One Person Is Responsible for Each Activity in the Workplan Focus on Your Deadline Date to Keep Your Project from Wandering Collect Metrics, but Gain Agreement on Their Significance Ahead of Time
“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.
You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.
Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face–the ones that will make or break your projects.Learn what software architects need to achieve–and core disciplines and practices for achieving it Master essential software design principles for addressing function, component separation, and data management See how programming paradigms impose discipline by restricting what developers can do Understand what’s critically important and what’s merely a “detail” Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications Define appropriate boundaries and layers, and organize components and services See why designs and architectures go wrong, and how to prevent (or fix) these failures
Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager–and for every programmer who must execute someone else’s designs.
Register your product for convenient access to downloads, updates, and/or corrections as they become available.