Skip to content

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

ISBN-10: 0471789658

ISBN-13: 9780471789659

Edition: 2006

Authors: Ronald L. Mak

List price: $29.99
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

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…    
Customers also bought

Book details

List price: $29.99
Copyright year: 2006
Publisher: John Wiley & Sons, Incorporated
Publication date: 5/1/2006
Binding: Paperback
Pages: 138
Size: 6.00" wide x 8.75" long x 0.50" tall
Weight: 0.440
Language: English

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…    

About the Author
Preface
Acknowledgments
Introduction
The Martian Principles
Don't reinvent the wheel
Someone Else Has Already Solved Your Problem
Understand What Your Added Value Is
Use Commercial Software Whenever Practicable
You won't do better than what's already been done
Adhere to Industry Standards and Best Practices
Seek User Groups, Chat Forums, Online Documentation, Books, and the Like
Do Not Gum Up the Plumbing
Your customers don't know what they want
Do Not Push Too Hard on the Requirements
Do Rapid Prototyping and Lots of User Testing
Customers Are the Best Testers
Get something working as soon as possible
The First End-to-End Thread Is Critical
Working Code Builds Confidence
Always Build on Top of Working Code
Use sound software engineering practices
Use a Component-Based Architecture
Use Design Patterns
Get All the Development Team Members to Agree
Don't trust the client applications
Be Very Paranoid_They Are Out to Get You
If You Do Not Break It, They Will
Plan to make changes
Do Not Hard-Code Values
Use External Editable Parameter Files
Implement a "Read Parameters" Method
Maintain Client Parameter Files Centrally on the Server
Identify the Parameter Values
You can't predict the future
Make Each Service Dynamically Reconfigurable
Create Field-Replaceable, Plug-and-Play Services
Hot Redeployment Allows Reconfiguring without Rebooting
Make Each Service Loosely Coupled
Take a Peek into the Future
Don't tie your services into knots
Keep Your Services Independent of Each Other
Services Should Treat Other Services As Equals
Build early, build often!The Major Challenge Is Not Code Development but Code Integration
Use a Source Code Repository
Maintain a Separate Environment in Which to Build and Deploy
"What middleware?" should be your greatest compliment
The Middleware Should Be Invisible to Users
Good Middleware Creates Ideal Virtual Worlds for the End Users
Expose the invisible
Put Hooks in the Middleware
Do Runtime, Real-Time Monitoring
Log everything
Do Not Turn Off Logging in Your Production Code
"Log Mining" Reveals Usage Patterns
Know the data
Learn the Data Usage Patterns
Create Appropriate Application and Middleware Data Models
Map to Practical Physical Data Models
Adapt to Third-Party and Legacy Data
Know when it will break
Do Lots of Stress Testing
If You Do Not Find Out What the Limits Are, Your Users Surely Will
Don't fail due to unexpected success
Missions May Last Longer Than Expected
Data Repositories May Grow Larger Than Planned
Project Management and Software Engineering
Strong leadership drives a project to success
A Good Architect Must Also Be a Good Leader
Any Architecture Is Only As Good As Its Implementation
Strong Project Management Is Necessary for Success
Project Milestones Are Opportunities for Demos and Rebalancing
The Project Milestones Near the End Allow You to Get Your Project Done on Schedule
Don't ignore people issues
Software Projects Are Not Democracies
Agree to Disagree, but Then Move On
Scale the Project According to the Team Members' Abilities and Experience
Do Not Be a Slave to the Latest Project Management Methodology
Foster Good Communication Plus Teamwork, Teamwork, Teamwork
Remove Team Members Who Cannot or Will Not Perform
Software engineering is all about the D's
Discovery
Diplomacy
Definition
Design
Development
Debugging
Documentation
Deployment
Dmaintenance
Principle 20 The formulas for success aren't complicated
Successful Architect = Good Designer + Good Developer + Good Leader
Successful System = Good Architecture + Good Software Engineering
Keep It Simple
Index