rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780471789659

The Martian Principles for Successful Enterprise Systems: 20 Lessons Learned from NASA?s Mars Exploration Rover Mission

by
  • ISBN13:

    9780471789659

  • ISBN10:

    0471789658

  • Format: Paperback
  • Copyright: 2006-05-01
  • Publisher: Wiley
  • Purchase Benefits
List Price: $29.99 Save up to $6.00
  • Digital
    $23.99*
    Add to Cart

    DURATION
    PRICE
    *To support the delivery of the digital material to you, a digital delivery fee of $3.99 will be charged on each digital item.

Summary

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

Author Biography

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.

Table of Contents

About the Author iii
Preface xi
Acknowledgments xvii
Introduction xix
Part 1 The Martian Principles
2(106)
Principle 1 Don't reinvent the wheel.
5(6)
Someone Else Has Already Solved Your Problem
7(1)
Understand What Your Added Value Is
7(1)
Use Commercial Software Whenever Practicable
8(3)
Principle 2 You won't do better than what's already been done.
11(6)
Adhere to Industry Standards and Best Practices
12(1)
Seek User Groups, Chat Forums, Online Documentation, Books, and the Like
13(1)
Do Not Gum Up the Plumbing
14(3)
Principle 3 Your customers don't know what they want
17(6)
Do Not Push Too Hard on the Requirements
18(1)
Do Rapid Prototyping and Lots of User Testing
19(1)
Customers Are the Best Testers
20(3)
Principle 4 Get something working as soon as possible
23(6)
The First End-to-End Thread Is Critical
24(2)
Working Code Builds Confidence
26(1)
Always Build on Top of Working Code
26(3)
Principle 5 Use sound software engineering practices
29(6)
Use a Component-Based Architecture
30(1)
Use Design Patterns
31(2)
Get All the Development Team Members to Agree
33(2)
Principle 6 Don't trust the client applications
35(6)
Be Very Paranoid---They Are Out to Get You
36(1)
If You Do Not Break It, They Will
37(4)
Principle 7 Plan to make changes
41(6)
Do Not Hard-Code Values
42(1)
Use External Editable Parameter Files
42(1)
Implement a ``Read Parameters'' Method
43(1)
Maintain Client Parameter Files Centrally on the Server
44(1)
Identify the Parameter Values
45(2)
Principle 8 You can't predict the future.
47(8)
Make Each Service Dynamically Reconfigurable
48(1)
Create Field-Replaceable, Plug-and-Play Services
48(2)
Hot Redeployment Allows Reconfiguring without Rebooting
50(1)
Make Each Service Loosely Coupled
51(1)
Take a Peek into the Future
51(4)
Principle 9 Don't tie your services into knots.
55(4)
Keep Your Services Independent of Each Other
56(1)
Services Should Treat Other Services As Equals
56(3)
Principle 10 Build early, build often!
59(8)
The Major Challenge Is Not Code Development but Code Integration
60(2)
Use a Source Code Repository
62(1)
Maintain a Separate Environment in Which to Build and Deploy
63(4)
Principle 11 ``What middleware?'' should be your greatest compliment.
67(6)
The Middleware Should Be Invisible to Users
68(1)
Good Middleware Creates Ideal Virtual Worlds for the End Users
69(4)
Principle 12 Expose the invisible.
73(8)
Put Hooks in the Middleware
74(1)
Do Runtime, Real-Time Monitoring
75(6)
Principle 13 Log everything.
81(8)
Do Not Turn Off Logging in Your Production Code
82(2)
``Log Mining'' Reveals Usage Patterns
84(5)
Principle 14 Know the data.
89(8)
Learn the Data Usage Patterns
90(1)
Create Appropriate Application and Middleware Data Models
91(2)
Map to Practical Physical Data Models
93(1)
Adapt to Third-Party and Legacy Data
93(4)
Principle 15 Know when it will break.
97(6)
Do Lots of Stress Testing
98(3)
If You Do Not Find Out What the Limits Are, Your Users Surely Will
101(2)
Principle 16 Don't fail due to unexpected success.
103(5)
Missions May Last Longer Than Expected
104(1)
Data Repositories May Grow Larger Than Planned
105(3)
Part 2 Project Management and Software Engineering
108(26)
Principle 17 Strong leadership drives a project to success.
111(8)
A Good Architect Must Also Be a Good Leader
112(1)
Any Architecture Is Only As Good As Its Implementation
113(1)
Strong Project Management Is Necessary for Success
113(1)
Project Milestones Are Opportunities for Demos and Rebalancing
114(1)
The Project Milestones Near the End Allow You to Get Your Project Done on Schedule
115(4)
Principle 18 Don't ignore people issues.
119(6)
Software Projects Are Not Democracies
120(1)
Agree to Disagree, but Then Move On
120(1)
Scale the Project According to the Team Members' Abilities and Experience
121(1)
Do Not Be a Slave to the Latest Project Management Methodology
122(1)
Foster Good Communication Plus Teamwork, Teamwork, Teamwork
122(1)
Remove Team Members Who Cannot or Will Not Perform
123(2)
Principle 19 Software engineering is all about the D's.
125(6)
Discovery
126(1)
Diplomacy
126(1)
Definition
127(1)
Design
127(1)
Development
128(1)
Debugging
128(1)
Documentation
128(1)
Deployment
129(1)
Dmaintenance
129(2)
Principle 20 The formulas for success aren't complicated
131(3)
Successful Architect = Good Designer + Good Developer + Good Leader
132(1)
Successful System = Good Architecture + Good Software Engineering
132(1)
Keep It Simple!
133(1)
Index 134

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program