My team has always been small so I've had experience working on every step in our development process, on everything from small in-house developed applications to custom third-party systems.
It's not always easy, but I advocate for integrating user-centered design, rapid prototyping, incremental development, and open source tools in our development process.
Here's a list of some tools that I've used over the years: