# API Driven Development
## Introduction to API Driven Development
- **Presenter**: Kenneth Reitz
- **Overview**: The talk focuses on API-driven development, highlighting how it benefits developers and enhances productivity.
- **Heroku Introduction**: Heroku is introduced as a web platform that abstracts server management, making application deployment easier.
## Open Source Contributions
- **Request Library**: Kenneth discusses his contribution to the open-source community, specifically the "Requests" library in Python, which simplifies HTTP requests.
- **HTTPBin**: He also developed HTTPBin, a web service for testing HTTP clients.
## Service-Oriented Architecture (SOA)
- **Traditional Development Issues**: Kenneth explains common issues in traditional development where components are tightly coupled, making iterative changes difficult.
- **SOA as a Solution**: He advocates for Service-Oriented Architecture (SOA) where different components or services are decoupled, making them easier to manage and scale.
## Building for Developers
- **APIs as First-Class Citizens**: APIs should be designed with developers in mind, treating them as first-class citizens in the development process.
- **Readme-Driven Development**: Kenneth recommends starting development by writing a README file that outlines how the API will be used, allowing developers to think from a user’s perspective.
## Pragmatic Development
- **Problem-Driven Development**: The best way to solve problems is by experiencing them firsthand. Kenneth shares examples, such as GitHub and 37signals, where products were developed to solve the founders' own problems.
- **Simplicity Over Functionality**: Kenneth emphasizes that a simple, easy-to-use API is more valuable than one packed with complex features.
## Closing Thoughts
- **Simplicity in API Design**: Simplicity should be prioritized in API design, ensuring that it is accessible and usable for developers.
## Q&A Session
- **Service-Oriented Architecture**: Kenneth discusses the challenges of transitioning a codebase to a service-oriented architecture and the importance of doing so early if scalability is a concern.