Book description
By recognizing that software development is not a mechanical task, you can create better applications.
Today’s software development projects are often based on the traditional software engineering model, which was created to develop large-scale defense projects. Projects that use this antiquated industrial model tend to take longer, promise more, and deliver less.
As the demand for software has exploded, the software engineering establishment has attempted to adapt to the changing times with short training programs that teach the syntax of coding languages. But writing code is no longer the hard part of development; the hard part is figuring out what to write. This kind of know-how demands a skilled craftsman, not someone who knows only how to pass a certification course.
Software Craftsmanship presents an alternative—a craft model that focuses on the people involved in commercial software development. This book illustrates that it is imperative to turn from the technology-for-its-own-sake model to one that is grounded in delivering value to customers. The author, Pete McBreen, presents a method to nurture mastery in the programmer, develop creative collaboration in small developer teams, and enhance communications with the customer. The end result—skilled developers who can create, extend, and enhance robust applications.
This book addresses the following topics, among others:
Understanding customer requirements
Identifying when a project may go off track
Selecting software craftsmen for a particular project
Designing goals for application development
Managing software craftsmen
Software Craftsmanship is written for programmers who want to become exceptional at their craft and for the project manager who wants to hire them.
0201733862B07242001
Table of contents
- Copyright
- Foreword
- Preface
-
1. Questioning Software Engineering
- 1. Understanding Software Engineering
- 2. The Problems with Software Engineering
- 3. Understanding Software Development
- 4. Finding a Better Metaphor Than Software Engineering
- 2. Software Craftsmanship
-
3. Implications of Software Craftsmanship
- 7. How Craftsmanship Affects the Users of Systems
-
8. Customers Have a Different Relationship with Craftsmen
- Setting Realistic Delivery Dates
- Exposing the Fallacy of Good Enough Software
- Allowing Software Craftsmen to Take Credit for Their Work
- Start Exploiting the Difference in Productivity Between Developers
- But How Do We Know How Good a Developer Really Is?
- Customers Make a Cost/Quality Trade-off When Choosing Craftsmen
- Customers Have Long Term Relationships with Software Craftsmen
- Customer Interests Are Aligned with the Interests of Software Craftsmen
-
9. Managing Craftsmen
- Software Craftsmen Are Not Hired Hands
- Good Developers Are More Valuable Than Their Managers
- Software Craftsmen Have a Different Relationship with Their Managers
- Managing Great Developers Is a Pleasure and a Privilege
- Software Craftsmen Like Creating Applications
- Managing Software Craftsmen Is Different
- Software Craftsmen Push for What They Need
- 10. Becoming a Software Craftsman
- 11. Mastering the Craft
- 12. Apprentice Developers
- 13. Journeymen Developers
-
4. Repositioning Software Engineering
- 14. Software Engineering Projects
-
15. Hazards of the Software Engineering Metaphor
- You Cannot Do Software Engineering on a Low Budget
- Software Engineering Encourages Scientific Management
- Software Factories: The Production Line for Software
- Reuse over Time Is Hazardous
- The Myth of the Standardized Software Development Process
- Software Engineering Forces Us to Forget the Individual
- We Need More Variety in Our Development Processes, Not Less
- 16. Learning from Software Engineering
-
5. What to Do on Monday Morning
-
17. Experience—The Best Indicator of Project Success
- Choose Software Craftsmen Based on Their Reputations
- Evaluate Craftsmen Based on Their Reputations and Portfolio
- Auditioning a Software Craftsman
- Let Your Software Craftsman Pick the Rest of the Development Team
- Collaborative Development
- Avoid Bleeding-Edge Technology If At All Possible
- Paying for Experience
- Be Prepared to Be Amazed
-
18. Design for Testing and Maintenance
- Think Applications, Not Projects
- Maintenance Teams Should Refuse to Accept Bad Applications
- Design for Maintenance
- Software Craftsmen Prefer Nonproprietary, Open Source Tools
- Great Software Is Global
- Software Craftsmen Need to Fight Back Against Planned Obsolescence
- Great Software Needs to Be Given a Great User Interface
- Maintainable Software Is Easy to Diagnose
- The Hazards of Outsourcing
- You Can Still Use Outside Craftsmen to Create Your Application
- Maintenance Is the Most Important Part of the Life of Any Application
- Not All Software Has to Be Maintainable
- Design for Testing and Maintenance Is Not Rocket Science
- 19. Perpetual Learning
-
17. Experience—The Best Indicator of Project Success
Product information
- Title: Software Craftsmanship: The New Imperative
- Author(s):
- Release date: August 2001
- Publisher(s): Addison-Wesley Professional
- ISBN: 0201733862
You might also like
book
Refactoring for Software Design Smells
Awareness of design smells – indicators of common design problems – helps developers or software engineers …
book
Software Essentials
Winner of a 2015 Alpha Sigma Nu Book Award, Software Essentials: Design and Construction explicitly defines …
book
Software Architecture and Design Illuminated
The SE 2004 of the ACM/IEEE computing curriculum project recommends software design and architecture as one …
book
Semantic Software Design
With this practical book, architects, CTOs, and CIOs will learn a set of patterns for the …