The Outpost Store
Search Advanced SearchView Cart   Checkout   
 Location:  Home » Textbooks » Software Development » Emergent Design: The Evolutionary Nature of Professional Software Development (Net Objectives Product Development Series)  
Categories
Apparel & Accessories
Audio, TV & Home Theater
Automotive Parts & Accessories
Baby Clothes & Products
Beauty
Bedding & Bath
Books
Camera & Photo
Cell Phones & Service
Computers & PC Hardware
DVD
Electronics
Exercise & Fitness
Food
Fresh Flowers & Plants
Furniture & Décor
Gourmet Food
Grocery Products
Hardware
Health & Personal Care
Home Improvement
Industrial & Scientific
Jewelry & Watches
Kids & Baby Clothes
Kitchen
Kitchen & Dining
Magazines
Movie & TV Downloads
MP3 Downloads
Music
Musical Instruments
Office Products
Outdoor Living
Patio, Lawn & Garden
Personal Care
Pet Supplies
Power & Hand Tools
Shoes
Software
Sports & Outdoors
Textbooks
Toys & Games
Vacuums, Cleaning & Storage
VHS
Video Games
Wireless

Emergent Design: The Evolutionary Nature of Professional Software Development (Net Objectives Product Development Series)

Emergent Design: The Evolutionary Nature of Professional Software Development (Net Objectives Product Development Series)

zoom enlarge 
Author: Scott L. Bain
Publisher: Addison-Wesley Professional
Category: Book

List Price: $49.99
Buy New: $26.95
You Save: $23.04 (46%)



New (38) Used (9) from $26.95

Rating: 4.5 out of 5 stars 6 reviews
Sales Rank: 517836

Media: Hardcover
Edition: 1
Number Of Items: 1
Pages: 448
Shipping Weight (lbs): 1.7
Dimensions (in): 9.2 x 6.9 x 1

ISBN: 0321509366
Dewey Decimal Number: 005.1
EAN: 9780321509369
ASIN: 0321509366

Publication Date: March 8, 2008
Availability: Usually ships in 1-2 business days
Shipping: Expedited shipping available
Shipping: International shipping available
Condition: Brand new. I ship promptly. Expedited or international shipping options availalbe.

Also Available In:

  • Kindle Edition - Emergent Design

Similar Items:

  • Effective Java (2nd Edition) (Java Series)
  • Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series)
  • Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))
  • The Art of Agile Development
  • Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)

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.




Customer Reviews:   Read 1 more reviews...

5 out of 5 stars THE Book to read for developers whose code changes   July 30, 2008
 1 out of 2 found this review helpful

I think of this book as answering three questions:
* what do developers need to know to work as professionals?
* how does quality coding and design play into unfolding designs?
* what is the proper way to integrate refactoring, test-driven development and design patterns in the real world?

All too long this industry has allowed individuals to do what they like instead of what their teams and businesses need. Programming is not just about individual people's opinion of approach and quality, but about real issues that have been long identified.

This book weaves the tale of what is known and how to use it in a real environment. I didn't react to this book the way Mr. Vodde did as an advertisement for Net Objectives. I like the anecdotal story telling of how this knowledge is conveyed to realy people in real situations.

Developers often talk about their problems in getting others convinced of better approaches. What better way than to hear how Mr. Bain has done this himself - something good to learn.

While this book is probably thought of as being for agile developers (those who write code in iterations) it'd be highly useful for anyone. Everybody's code needs to morph over time - even if the first release is done in a classic waterfall.



3 out of 5 stars Good practices but does not live up to its title   July 17, 2008
 9 out of 12 found this review helpful


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.



5 out of 5 stars A fine choice for software engineers who would streamline their efforts   June 20, 2008
 0 out of 1 found this review helpful

EMERGENT DESIGN: THE EVOLUTIONARY NATURE OF PROFESSIONAL SOFTWARE DEVELOPMENT is for college-level libraries strong in software engineering, and discusses the foundations of systems development, helping developers work with the flow of ideas inherent in emergent design principles. From tips on how to produce more professional software designs to testing designs throughout the process and learning when to stop, EMERGENT DESIGN is a fine choice for software engineers who would streamline their efforts to produce quality designs early in the process.

Diane C. Donovan
California Bookwatch



5 out of 5 stars The Dawning of a New Era   June 15, 2008
 1 out of 1 found this review helpful

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. I believe this book to be distinguished from other technical books in the way that great works of fiction are different from genre books. It defines a category rather than just being a part of one.

It is a call to arms for all of us who consider ourselves professionals to band together into a true profession. Simultaneously, it is a tour of all those things that we as a proto-profession have identified as important and valuable. Practices, patterns, principles, disciplines, tools... Bain shows how all of these things work together. He goes one step further, though: he shows how they can coalesce into the basis for our occupation's transcendence into a profession.

If you have not been introduced to these concepts - if you work in a heavily waterfall environment with brittle code and death-marches at the end of long release cycles - this book is your way out. Read it. The most you will have lost is the time it takes you to read a three hundred page book and you have everything to gain. Emergent Design will show you that there is a better way. A way to make software that gets easier to maintain over time, not the other way around.

If you are familiar with these concepts, as I believed myself to be, then you will enjoy seeing everything come together in one book. You will probably gain some valuable insights along the way. I certainly did. You will also find that it is powerful recommended reading for those around you. Scott Bain's writing is clear, concise, friendly, funny... oh yeah: and very persuasive. Having read this book will give you and those whom you coach, teach, or work-with a common frame of reference; even more-so than Design Patterns.

I truly believe that this book is going to be at the center of a series of discussions, debates, and decisions which will ultimately lead to the formalization of software development as a real profession. It would be easy to characterize your choice as "buy it or don't buy it" but that would not be accurate. The real choice before you is this one:

You can either be an informed participant in the formation of our profession or you can just be governed by it.

I trust you to do the math from there.



5 out of 5 stars A Gold Mine of Wisdom   April 2, 2008
 12 out of 14 found this review helpful

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.


The Outpost Network
Related Categories
• Software Development
Software Design, Testing & Engineering
Programming
Computers & Internet
Subjects
• General
Languages & Tools
Programming
Computers & Internet
Subjects
• Software Engineering
Computer Science
Computers & Internet
Subjects
Books
• General
Software
Computers & Internet
Subjects
Books
• Software Design & Engineering
Computer Science
New & Used Textbooks
Custom Stores
Specialty Stores
• General AAS
Computer Science
New & Used Textbooks
Custom Stores
Specialty Stores
• General AAS
New & Used Textbooks
Custom Stores
Specialty Stores
Books
• General AAS
Qualifying Textbooks
Custom Stores
Specialty Stores
Books
• Hardcover
Binding (binding)
Refinements
Books
• Printed Books
Format (feature_browse-bin)
Refinements
Books
Subcategories
Design Tools & Techniques
General
Information Systems
Methodology
Multimedia Information Systems