Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
About This Book
The Journey
1. Using Prototypes to Explore Project Ideas
Start by understanding the needs behind the project
Use wireframes to set expectations about functionality
Set up a live test system as soon as you start coding
Discuss all defects, but be pragmatic about repairs
Check your assumptions early and often
Limit the scope of your work as much as possible
Remember that prototypes are not production systems
Design features that make collecting feedback easy
2. Spotting Hidden Dependencies in Incremental Changes
There’s no such thing as a standalone feature
If two features share a screen, they depend on each other
Avoid non-essential real-time data synchronization
Look for problems when code is reused in a new context
3. Identifying the Pain Points of Service Integrations
Plan for trouble when your needs are off the beaten path
Remember that external services might change or die
Look for outdated mocks in tests when services change
Expect maintenance headaches from poorly coded robots
Remember that there are no purely internal concerns
4. Developing a Rigorous Approach Toward Problem Solving
Begin by gathering the facts and stating them plainly
Work part of the problem by hand before writing code
Validate your input data before attempting to process it
Make use of deductive reasoning to check your work
Solve simple problems to understand more difficult ones
5. Designing Software from the Bottom Up
Identify the nouns and verbs of your problem space
Begin by implementing a minimal slice of functionality
Avoid unnecessary temporal coupling between objects
Gradually extract reusable parts and protocols
Experiment freely to discover hidden abstractions
Know where the bottom-up approach breaks down
6. Data Modeling in an Imperfect World
Decouple conceptual modeling from physical modeling
Design an explicit model for tracking data changes
Understand how Conway’s Law influences data management practices
Remember that workflow design and data modeling go hand in hand
7. Gradual Process Improvement as an Antidote for Overcommitment
Respond to unexpected failures with swiftness and safety
Identify and analyze operational bottlenecks
Pay attention to the economic tradeoffs of your work
Reduce waste by limiting work in progress
Make the whole greater than the sum of its parts
8. The Future of Software Development
Acknowledgments
O’Reilly Media, Inc.
Safari® Books Online
How to Contact Us
Index
← Prev
Back
Next →
← Prev
Back
Next →