For the first time ever, the senior architect and lead developer for a key enterprise system on NASA's ongoing Mars Exploration Rover mission shares the secrets to one of the most difficult technology tasks of all-successful software development
Written in a conversational, brief, and to-the-point style, this book presents principles learned from the Mars Rover project that will help ensure the success of software developed for any enterprise system
Author Ronald Mak imparts anecdotes from his work on the Mars Rover and offers valuable lessons on software architecture, software engineering, design patterns, code development, and project management for any software, regardless of language or platform
作者简介:
Ronald Mak was a senior computer scientist and software architect at the NASA Ames Research Center. He was the architect and lead developer of the middleware for the Collaborative Information Portal, an important enterprise software system that is a part of NASA`s ongoing and highly successful Mars Exploration Rover mission. Mission managers, scientists, and engineers continue to use CIP—after over two years of continuous operation, it has an uptime record of better than 99.9 percent.
Working as a key member of the CIP development teamvalidated the principles that Ron describes in this book.Ron was also the architect and lead developer of an enterprise class information portal for NASA`s International Space Station and the future Crew Exploration Vehicle.
Prior to joining NASA, Ron had over 15 years of experience designing and developing enterprise systems using several programming languages and technologies on various platforms.
Most of these systems were highly successful, but therewere a few failures, too. The Martian principles are derivedfrom these experiences.
Ron held an academic appointment with the University of California at Santa Cruz, and he worked on contract to NASAAmes. He earned his B.S. degree with distinction in the Mathematical Sciences and his M.S. degree in Computer Science from Stanford University.
He has written three previous books on computer science, Java Number Cruncher, the Java Programmer`s Guide to Numerical Computing (Prentice Hall PTR, 2003), Writing Compilers and Interpreters, C++ Edition (Wiley, 1996), and Writing Compilers and Interpreters, a Practical Approach (Wiley, 1991). He recently wrote several papers about CIP for refereed journals. He continues to hone his exposition of the Martian principles by giving presentations to both industry and academic audiences.
Ron recently co-founded and is the CTO of Willard & Lowe Systems, Inc. (www.willardlowe.com) which develops enterprise systems for information management and collaboration.
About the Author
Preface
Acknowledgments
Introduction
Part 1 The Martian Principles
Principle 1 Don`t reinvent the wheel
Principle 2 You won`t do better than what`s already been done
Principle 3 Your customers don`t know what they want
Principle 4 Get something working as soon as possible
Principle 5 Use sound software engineering practices
Principle 6 Don`t trust the client applications
Principle 7 Plan to make changes
Principle 8 You can`t predict the future
Principle 9 Don`t tie your services into knots
Principle 10 Build early, build often!
Principle 11 "What middleware?" should be your greatest compliment
Principle 12 Expose the invisible
Principle 13 Log everything
Principle 14 Know the data
Principle 15 Know when it will break
Principle 16 Don`t fail due to unexpected success
Principle 17 Strong leadership drives a project to success
Principle 18 Don`t ignore people issues
Principle 19 Software engineering is all about the D`s
Principle 20 The formulas for success aren`t complicated
Index