Ten Best Practices for Effective Software Development
Author: Joost Visser
Publisher: "O'Reilly Media, Inc."
Why does poor software quality continue to plague enterprises of all sizes in all industries? Part of the problem lies with the process, rather than individual developers. This practical guide provides ten best practices to help team leaders create an effective working environment through key adjustments to their process. As a follow-up to their popular book, Building Maintainable Software, consultants with the Software Improvement Group (SIG) offer critical lessons based on their assessment of development processes used by hundreds of software teams. Each practice includes examples of goalsetting to help you choose the right metrics for your team. Achieve development goals by determining meaningful metrics with the Goal-Question-Metric approach Translate those goals to a verifiable Definition of Done Manage code versions for consistent and predictable modification Control separate environments for each stage in the development pipeline Automate tests as much as possible and steer their guidelines and expectations Let the Continuous Integration server do much of the hard work for you Automate the process of pushing code through the pipeline Define development process standards to improve consistency and simplicity Manage dependencies on third party code to keep your software consistent and up to date Document only the most necessary and current knowledge
How can you help your software team improve? This concise book introduces codermetrics, a clear and objective way to identify, analyze, and discuss the successes and failures of software engineers—not as part of a performance review, but as a way to make the team a more cohesive and productive unit. Experienced team builder Jonathan Alexander explains how codermetrics helps teams understand exactly what occurred during a project, and enables each coder to focus on specific improvements. Alexander presents a variety of simple and complex codermetrics, and teaches you how to create your own. Learn how codermetrics changes long-held assumptions and improves team dynamics Get recommendations for integrating codermetrics into existing processes Ask the right questions to determine the type of data you need to collect Use metrics to measure individual coder skills and a team’s effectiveness over time Identify the contributions each coder makes to the team Analyze the response to your software and its features—and verify that you're meeting team and organizational goals Build better teams, using codermetrics to make personnel adjustments and additions
Have you ever felt frustrated working with someone else’s code? Difficult-to-maintain source code is a big problem in software development today, leading to costly delays and defects. Be part of the solution. With this practical book, you’ll learn 10 easy-to-follow guidelines for delivering C# software that’s easy to maintain and adapt. These guidelines have been derived from analyzing hundreds of real-world systems. Written by consultants from the Software Improvement Group (SIG), this book provides clear and concise explanations, with advice for turning the guidelines into practice. Examples for this edition are written in C#, while our companion Java book provides clear examples in that language. Write short units of code: limit the length of methods and constructors Write simple units of code: limit the number of branch points per method Write code once, rather than risk copying buggy code Keep unit interfaces small by extracting parameters into objects Separate concerns to avoid building large classes Couple architecture components loosely Balance the number and size of top-level components in your code Keep your codebase as small as possible Automate tests for your codebase Write clean code, avoiding "code smells" that indicate deeper problems
Recruiting, Hiring, and Managing Your Team from Startup to Success
Author: Joshua Tyler
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.
Learn best practices for software development project management—and lead your teams and projects to success. Dr. Lawrence Peters is an industry-recognized expert with decades of experience conducting research and leading real-world software projects. Beyond getting the best developers, equipment, budget, and timeline possible—Peters concludes that no factor is more critical to project success than the manager’s role. Drawing on proven practices from allied industries such as business, psychology, accounting, and law, he describes a broader project-management methodology—with principles that software managers can readily adapt to help increase their own effectiveness and the productivity of their teams. Unlike other books on the topic, this book focuses squarely on the manager—and shows how to get results without adopting philosophies from Genghis Khan or Machiavelli. (There is mention of Godzilla, however.) Packed with real-world examples and pragmatic advice, this book shows any software development manager—new or experienced—how to lead teams in delivering the right results for their business.
Adopting Agile Software Practices: From Backlog to Continuous Feedback
Author: Sam Guckenheimer
Use Visual Studio® Team Foundation Server 2012 and Agile Methods to Deliver Higher Value Software Faster This is the definitive guide to applying agile development and modern software engineering practices with Visual Studio Team Foundation Server 2012—Microsoft’s complementary Application Lifecycle Management (ALM) platform. Written by the Microsoft Visual Studio product owner and a long-time Team Foundation Server implementation specialist, it focuses on solving real development challenges, systematically eliminating waste, improving transparency, and delivering better software more quickly and painlessly. Coverage includes • Accelerating the “flow of value” to customers, with a transparent backlog, PowerPoint Storyboarding, VS 2012 feedback requests, and a “usability lab” right into your customers’ hands • Driving quality upstream to uncover hidden architectural patterns, ensure cleaner code, fix multiple recurring “cloned” bugs at once, ensure the definition of done with continuous integration and deployment in a reliable build process • Eliminating “no repro” bugs with VS 2012’s six powerful mechanisms for more accurate fault identification and use of virtualized test environments • Using Scrum or other Agile methods with Process Templates effectively across distributed teams in large organization by automating burndowns and dashboards to identify “early warning signals” of emerging problems with quality or maintainability • Staying in the groove by storing the state of your work and environment with shelvesets, to let you handle interruptions smoothly • Leveraging VS 2012’s new support for multiple Microsoft and open source unit testing frameworks in your IDE and continuous integration pipeline • Performing exploratory testing to uncover bugs in surprising places and testing immersive Windows 8 apps • Rapidly improving team development and collaboration with the hosted Team Foundation Service Whatever your development role, this book will help you apply modern software development practices using Visual Studio Team Foundation Server 2012 to focus on what really matters: building software that begins delivering exceptional value sooner and keeps delighting customers far into the future.
Rules, Tools, and Insights for Managing Software People and Teams
Author: Mickey W. Mantle
“Mantle and Lichty have assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike.” —Tom Conrad, CTO, Pandora “I wish I’d had this material available years ago. I see lots and lots of ‘meat’ in here that I’ll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes.” —Steve Johnson, VP, Custom Solutions, DigitalFish All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable? In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams , Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people—how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully. Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide.
How to build-and lead-a world-class software development team In this book, expert software development manager Frank P. Ginac brings together world-class techniques for building and leading high-performance software development teams. Ideal for the first-line manager - especially managers transitioning from developer roles - this book offers start-to-finish guidance for delivering superior products, on time and on budget. Ginac focuses on the two most important elements of successful team building - people and leadership. He demonstrates exactly how to: * Clearly outline your software projects business and technical goals * Choose the right people for your team - and avoid the wrong ones * Organize your software development team for success * Fill gaps in your teams skills and experience * Appraise individual and team performance * Incorporate todays software quality best practices Ginac shows you how to be a leader, not just a manager - and how to avoid the barriers to leadership, including politics, bureaucracy, and corporate popularity contests. Youll learn how to plan successfully - and how to build a team that executes your plans with passion.
The #1 guide to using Visual Studio 2010 in team development: insider coverage of this huge release, from the leader of the VSTS team * *Focuses on succeeding with new VS 2010 ALM products in real-world environments, with exclusive 'Lessons Learned at Microsoft'. *Thoroughly covers VS 2010's massive new capabilities for team development. *Contains extensive new coverage of implementing Scrum and related practices. *Covers the entire lifecycle: requirements, architecture, construction, build, test, and more This is the most practical, valuable guide for every member of the software team who intends to run or participate in software projects using Microsoft's Visual Studio 2010. Written by a top Microsoft Visual Studio development team leader and a leading Visual Studio implementation consultant, it focuses on the real challenges development organizations face. The authors identify powerful lessons and best practices learned at Microsoft, and cover the entire development lifecycle, from requirements gathering through testing and beyond. This edition adds extensive coverage of VS 2010's extensive new team features, as well as new coverage of using VS 2010 to actively support teams that practice Scrum. Throughout, the authors focus on showing how to use VS 2010 to reduce waste, increase transparency, and accelerate the flow of value to the end customer. Coverage includes: * *Requirements: vision, user stories, use cases, storyboards, satisfiers/dissatisfiers, and more *Running the project: self-managing teams, metrics, sprints, and dashboards *'Value-up' views of software architecture, construction, and testing. *Build and lab: check-in, team build, continuous integration, build verification tests, reporting, deployment, and lab automation/virtualization. *Troubleshooting the project: overcoming issues ranging from scope creep to build failures