or
Sign in to turn on 1-Click ordering.
 
 
Express Checkout with PayPhrase
What's this? | Create PayPhrase
More Buying Choices
42 used & new from $29.75

Have one to sell? Sell yours here
 
   
Emergent Design: The Evolutionary Nature of Professional Software Development
 
See larger image
 

Emergent Design: The Evolutionary Nature of Professional Software Development (Hardcover)

~ (Author)
4.1 out of 5 stars  See all reviews (9 customer reviews)

List Price: $54.99
Price: $42.89 & this item ships for FREE with Super Saver Shipping. Details
You Save: $12.10 (22%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Tuesday, November 17? Choose One-Day Shipping at checkout. Details
25 new from $33.74 17 used from $29.75

Formats

Amazon Price New from Used from
  Kindle Edition, February 27, 2008 $31.99 -- --
  Hardcover, March 7, 2008 $42.89 $33.74 $29.75

Frequently Bought Together

Customers buy this book with Clean Code: A Handbook of Agile Software Craftsmanship by Dean Wampler

Emergent Design: The Evolutionary Nature of Professional Software Development + Clean Code: A Handbook of Agile Software Craftsmanship
  • This item: Emergent Design: The Evolutionary Nature of Professional Software Development by Scott L. Bain

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Clean Code: A Handbook of Agile Software Craftsmanship by Dean Wampler

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought

Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition)

Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition)

by Alan Shalloway
4.2 out of 5 stars (43)  $45.20
The Productive Programmer (Theory in Practice (O'Reilly))

The Productive Programmer (Theory in Practice (O'Reilly))

by Neal Ford
4.4 out of 5 stars (22)  $26.40
Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)

Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)

by Andrew Hunt
4.6 out of 5 stars (44)  $23.07
Working Effectively with Legacy Code

Working Effectively with Legacy Code

by Michael C. Feathers
4.9 out of 5 stars (30)  $38.70
The Art of Agile Development

The Art of Agile Development

by James Shore
4.6 out of 5 stars (34)  $33.99
Explore similar items

Editorial Reviews

Product Description

For software to consistently deliver promised results, software development must mature into a true profession. Emergent Design points the way. As software continues to evolve and mature, software development processes become more complicated, relying on a variety of methodologies and approaches. This book illuminates the path to building the next generation of software. Author Scott L. Bain integrates the best of today’s most important development disciplines into a unified, streamlined, realistic, and fully actionable approach to developing software. Drawing on patterns, refactoring, and test-driven development, Bain offers a blueprint for moving efficiently through the entire software lifecycle, smoothly managing change, and consistently delivering systems that are robust, reliable, and cost-effective.

 

Reflecting a deep understanding of the natural flow of system development, Emergent Design helps developers work with the flow, instead of against it. Bain introduces the principles and practices of emergent design one step at a time, showing how to promote the natural evolution of software systems over time, making systems work better and provide greater value. To illuminate his approach, Bain presents code examples wherever necessary and concludes with a complete project case study.

 

This book provides developers, project leads, and testers powerful new ways to collaborate, achieve immediate goals, and build systems that improve in quality with each iteration.

 

Coverage includes 

  • How to design software in a more natural, evolutionary, and professional way
  • How to use the “open-closed” principle to mitigate risks and eliminate waste
  • How and when to test your design throughout the development process
  • How to translate design principles into practices that actually lead to better code
  • How to determine how much design is enough
  • How refactoring can help you reduce over-design and manage change more effectively

The book’s companion Web site, www.netobjectives.com/resources, provides updates, links to related materials, and support for discussions of the book’s content.



About the Author

Scott L. Bain is a thirty-year veteran in computer technology, with a background in development, engineering, and design. He has also designed, delivered, and managed training programs for certification and end-user skills, both in traditional classrooms and via distance learning. For the past eight years, Scott has been working for Net Objectives in Puget Sound, teaching courses and consulting on design patterns, refactoring, unit testing, and test-driven development. Along with Net Objectives CEO Alan Shalloway, he has contributed significantly to the integration of design patterns in Agile environments. Scott is a frequent speaker at developer conferences such as JavaOne and SDWest.


Product Details

  • Hardcover: 448 pages
  • Publisher: Addison-Wesley Professional; 1 edition (March 8, 2008)
  • Language: English
  • ISBN-10: 0321509366
  • ISBN-13: 978-0321509369
  • Product Dimensions: 9.2 x 6.9 x 1 inches
  • Shipping Weight: 1.7 pounds (View shipping rates and policies)
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (9 customer reviews)
  • Amazon.com Sales Rank: #46,004 in Books (See Bestsellers in Books)

    Popular in this category: (What's this?)

    #11 in  Books > Computers & Internet > Computer Science > Software Engineering > Design Tools & Techniques

More About the Author

Scott L. Bain
Discover books, learn about writers, read author blogs, and more.

Visit Amazon's Scott L. Bain Page

What Do Customers Ultimately Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(1)

Your tags: Add your first tag
 

 

Customer Reviews

9 Reviews
5 star:
 (6)
4 star:    (0)
3 star:
 (1)
2 star:
 (2)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.1 out of 5 stars (9 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
23 of 25 people found the following review helpful:
3.0 out of 5 stars Good practices but does not live up to its title, July 16, 2008
By Bas Vodde (Singapore) - See all my reviews

Emergent Design by Scott Bain is a interesting book. The title is very promising, when I first heard about it, I got very excited! Finally a book about how designs emerge, how designs emerge from multiple people and how designs evolve over time compared to specifying. After reading the book, I felt the book was good, but disappointing. It did not cover the topics I would like to have seen.

The general idea of the book is that software should grow better over time instead of decay over time and that the optimal design will emerge. An idea I strongly agree with. The author links this to software development needing to change to become a profession. If SW development is a profession, then people will use proper practices and design will emerge. The practices (in a broad sense) are principles of design, patterns and disciplines. After the first couple of chapters the book was having a good start, though I started wondering if the author didn't bite of more than he could chew. Those are huge topics by themselves!

From chapter 7 to chapter 14 the author just describes good practices. He starts with qualities of code and qualities of designs. He moves to unit-testing, refactoring and then Test-Driven-Development. He ends with the pattern chapter. The last chapter puts all things together in a case study. Scott does a reasonable job in describing all practices. There are a couple of weird things, like the recommendation that every class has exactly one test class. The TDD chapter also seems to have very little TDD in it :)

As a catalog of best practices, this book perhaps does the best of all the current agile related books. Great job by the author.

However, there are some things that personally bothered me. The book seems to be very pattern focused. Scott seems to be of the opinion that patterns is what hold everything together (probably everything in the world). Though, I agree that patterns are an important concept in modern software development, I wouldn't put so much pattern focus in e.g. a chapter on test-driven development. Maybe the title of the book would better be "Scott on SW design and patterns".

That brings me to another issue with the book, the title. Emergent design is an immensely important topic. How does a design start with the first requirement. How does it evolve. How do multiple people work with the design. How can the overall architecture evolve. What about items that evolve difficult, like different programming language usage etc. So much to talk about and the book doesn't do this. It misses a huge opportunity to talk about emergent design & architecture and instead (although important) decides to talk about design principles, patterns and practices. (in that sense, the book is similar to Bob Martin's "Agile Software Development: Principles, Patterns and Practices", which I would recommend over this book).

But again, the content of the book is good and useful and normally I would go for a 4 star rating, but I decided to go for 3 stars. This is because the book IMHO contains things that really turned me off.
One of the examples is the talk about professionalism. Don't get me wrong, I do agree with the author on this subject. The point is, we are not alone. In fact, IEEE has been working on certification for many years. In 1999, Steven McConnell wrote a book called "After the Gold Rush" with the subtitle "Creating a True Profession of Software Engineering". Scott talks about finally making a profession out of SW development, but he seems to have not done any research on this topic and seems to not be involved in other attempts to make it a profession. It would have increased his credibility a lot if he would have said "the earlier attempts are different because ..." or something similar.

Another item that was a huge turn-off was the constant promotion of Net Objectives. The book, at times, almost felt like a commercial. Personally, I didn't need to know about what courses Net Objectives teaches, I want to know about Emergent Design!

Anyhow, all these negative points aside, Emergent Design is a good introduction to modern agile development practices. Especially if you are not yet familiar with topics like Refactoring, TDD and patterns, this book is certainly worth reading. Next to that, Scott's writing style is funny and easy to read. So, if you belong to that group of people, recommended! Otherwise, skip it.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
18 of 21 people found the following review helpful:
5.0 out of 5 stars lots of commonsense advice, March 6, 2008
By W Boudville (Terra, Sol 3) - See all my reviews
(TOP 10 REVIEWER)    (REAL NAME)      
Bain's book is a graceful read. At least compared to some texts on "heavy" methodologies like CMMI. He addresses the professional programmer. At some level, there is an introspective feel to parts of it. Can the profession be more professional, in reducing bugs and bad coding practices? More pertinently, can you do this? In expanding on the possible answers, he takes us on a recap of decades of progress in programming.

One big innovation was the rise of object oriented programming, compared to earlier procedural efforts. Hence C++, Java and other OO languages. Another key idea to remember is that of patterns. Even if you can't remember all the patterns he discusses, at least being aware that such exist is a good step forward in your abilities.

There is also lots of advice about littler details. Like having names for classes, methods and variables that are as descriptive as possible. Doesn't matter what language you're using. You should always strive here, so that the code is as self documenting as possible. Though Bain is careful not to go to the extreme of suggesting that no comments are possible. Another key note is that automated unit testing is a great thing. Sure, it takes time to run the unit tests. The payoff in code maintenance makes it all worthwhile.

Much, if not all of what is written has appeared in other texts. But Bain provides an easy to read and unified treatment. Well suited for a junior programmer.
Comment Comments (3) | Permalink | Was this review helpful to you? Yes No (Report this)



 
13 of 15 people found the following review helpful:
5.0 out of 5 stars A Gold Mine of Wisdom, April 1, 2008
Amazon Verified Purchase(What's this?)
This book is a gold mine of wisdom.

This book contains a ton of wisdom that has come out of the software engineering field over the years. It brings together a lot of software development best practices that can be found in other resources and puts them together under the umbrella of Emergent Design.

He covers patterns, principles, processes, and practices by presenting the best of each that has been proven to work again and again. The common sense communicated out of this book is priceless.

The author has a presentation that touches on a lot of the content found in the book. It can be viewed by Googling for "EmergentDesign_12_11_2007".

Forward thinking is something that I find lacking in a lot of the environments I am exposed too, especially development environments. This book nails how to do forward thinking when it comes to software design and development. You will end up making your solutions more valuable with each change, instead of degrading them with each change if you follow the advice in this book.

If you do development, this is a must read. I would advise all team leads to get rid of anyone who has not read this book by the end of the year.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

2.0 out of 5 stars Emergent Design -- nothing new here other than title
I've just completed reading "Emergent Design: The Evolutionary Nature of Professional Software Development" by Scott L. Read more
Published 6 months ago by D. Raymer

5.0 out of 5 stars Software Engineering
This is a very good book specially for those that are interested in learning about design patterns and applying them in your own codes.
Published 10 months ago by Alberto Ciarvi

2.0 out of 5 stars Nothing new
This book rehashes the Gang of Four's design patterns and standard recommendations about XP/test-driven development. There is a lot of filler and nothing new. Read more
Published 13 months ago by Chris

5.0 out of 5 stars THE Book to read for developers whose code changes
I think of this book as answering three questions:
* what do developers need to know to work as professionals? Read more
Published 15 months ago by a reader

5.0 out of 5 stars A fine choice for software engineers who would streamline their efforts
EMERGENT DESIGN: THE EVOLUTIONARY NATURE OF PROFESSIONAL SOFTWARE DEVELOPMENT is for college-level libraries strong in software engineering, and discusses the foundations of... Read more
Published 17 months ago by Midwest Book Review

5.0 out of 5 stars The Dawning of a New Era
As the cover implies, this book is the basis of a revolution. It is a tour of everything required to become a professional software developer. Read more
Published 17 months ago by Max Guernsey III

Only search this product's reviews



Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   




Product Information from the Amapedia Community

Beta (What's this?)


Look for Similar Items by Category


Look for Similar Items by Subject

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Your Recent History

 (What's this?)

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.