This is fantastic stuff. As I started reading, I almost fell out of my seat because the project I’m on right now is going through exactly the hurt you describe and would beneﬁt greatly from material just like this. Matthew Bass Software Engineer A great book! The authors have done a great job in presenting the subject in a neutral way and avoiding any methodology-oriented traps. Roberto Gianassi IT Consultant What The Pragmatic Programmer brought to the individual skills and crafts of software developers, Ship It! is to the software development team. ...
At parties, people no longer give me a blank stare when I tell them I write free software. "Oh, yes, open
source—like Linux?" they say. I nod eagerly in agreement. "Yes, exactly! That's what I do." It's nice not
to be completely fringe anymore.
The Quality Frame can either be applied with or
without the use of a rating scale for each of the key
criteria and standards. Use of a rating scale is a valuable
tool if one wishes to make comparisons between
projects, or if the intention is to gain an overview of
the quality of a large portfolio of projects over time.
With the rise of the internet and the growing concern over intellectual property, this study provides an open, constructive platform for a wide range of lawyers, artists, journalists, and activists to discuss their views on the future of free and open-source software. By exchanging both complementary and conflicting opinions, the contributors look ahead to the evolution, prospects, and issues of sharing knowledge and ideas through technology.
Chapter summary: Agile software engineering represents a reasonable compromise between to conventional software engineering for certain classes of software and certain types of software projects; agile development processes can deliver successful systems quickly; agile development stresses continuous communication and collaboration among developers and customers;...
The software engineer’s job is to solve problems economically by developing high-quality software. In this first chapter we will present important issues that all software engineers should understand to do their jobs well. In this chapter you will learn about the following: How does software differ from other products? How does software change over time? What do we mean when we talk about high-quality software? What types of software are there and what are their main differences? How are software projects organized? How successful are typical projects?...
Risks are potential problems that might affect the successful completion of a software project. Risks involve uncertainty and potential losses. Risk analysis and management is intended to help a software team understand and manage uncertainty during the development process. The important thing is to remember that things can go wrong and to make plans to minimize their impact when they do. The work product is called a Risk Mitigation, Monitoring, and Management Plan.
Many of you reading this book are about to embark on the journey of implementing
customer relationship management (CRM) software within your organization; some
of you are completely new to CRM, while others have been through a CRM
implementation with varied success. This book was written to provide business
leaders and stakeholders with a practical playbook that spells out an approach for a
successful CRM project and program.
If the customer’s unhappy, everyone’s unhappy!
Every great piece of software starts with a customer’s big idea. It’s your job as a
professional software developer to bring those ideas to life. But taking a vague
idea and turning it into working code—code that satisfies your customer—isn’t
so easy. In this chapter you’ll learn how to avoid being a software development
casualty by delivering software that is needed, on-time, and on-budget. Grab
your laptop and let’s set out on the road to shipping great software...
This book is for the career developer who wants to take his or her skill set and/or project to the next level. If you are a professional software developer with 3–4 years of experience looking to bring a higher level of discipline to your project, or to learn the skills that will help you transition from software engineer to technical lead, then this book is for you. The topics covered in this book will help you focus on delivering software at a higher quality and lower cost. The book is about practical techniques and practices that will help you and...
Because of this projects often stay at the pre-implementation stage; of course,
this may be because the initial idea wasn’t a good one in the first place, or that
it has proved not to be feasible. Finding out that a proposal is impracticable or
unworkable is actually a useful result of a project as it eliminates mistakes
which could prove costly if implemented without experimentation. On the other
hand it’s very wasteful to lose successful innovations through unsuccessful
In the enterprise-level software development business, there are formal processes
for estimating projects with multi-million dollar values. Each part of the project
is divided into tasks, and each role and responsibility is identified. Each individual
element of the project undergoes a detailed hourly estimation in order to create
a comprehensive schedule. Major risks to the project’s success are identified in
a risk assessment process. Additional labor hours are added to the price estimate
to compensate for these risks by adding labor hours to the price estimate.
TheDebiansystem owes muchofits power to numerous free software projects
andmovements,mostnotably GNUand Linux.Debianusesthe Linux kernel,so
anything that is possible withLinux itself is possible withDebianGNU as well.Over
15 000 Debianpackagesare available for straightforward installation,offering a
greatdealoffunctionalitywithout theburdenofmanually satisfyingdependencies,
compilingsourcecode,settingupinitial conﬁgurations, andkeepingprogrammes
up to date.
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.
By their very nature, every book that seeks to describe how technology
works face challenges during its creation. Dealing with beta software and
attempting to resolve the difference between how the software works and
how the developers say it will work in the final version is a problem faced by
any author, which is one reason why it is often best to wait to finalize text
after you have a chance to work with released software. Looking back at this
project, in some ways, this has been the hardest book of the seven that I
have written about Exchange.
In this thesis we explore how knowledge management is performed in
open source projects. Open source projects are often perceived as informal,
even unmanaged. Still, they appear to manage knowledge acquisition
and sharing sufficiently well to successfully develop software in such
a distributed environment as the Internet. This thesis aims to explore
that apparent contradiction, and thus complement the currently limited
research in this field.
Oracle Primavera P6 is the most sophisticated and widely-used project portfolio
management software in the world today. Some people think of P6 as simply a
tool for scheduling projects, such as Microsoft Project, but on steroids. But while
P6 can be used to plan a project a simple as writing one book, it can also be used
to plan and manage a multi-year, globally-distributed set of engineering projects
involving tens of thousands of workers, machines, and materials.
Every project an organization undertakes has requirements. It doesn’t matter if it’s building hardware solutions,
developing software solutions, installing networks, protecting data, or training users - for the project to
be a success, knowing what the requirements are is an absolute must.
Requirements exist for virtually any components of a project or task. For example, a project may require specific
methods, expertise levels of personnel, or the format of deliverables.
While these methodologies may have worked for some organizations in the past and may still work in some
circumstances, for many companies these methodologies only added cost and complexity while providing a
false sense of security that management was “doing something” by exhaustively planning, measuring, and
controlling. Huge costs were sunk in premature planning, without the rapid iterative development and
continuous feedback from customers that we have come to realize are prerequisites for success today.