Tools

Product Dev Stack

Joseph Moniz Software Engineer

April 17th, 2013

Hello hackers andentrepreneurs,

Working at various tech companies i've had the opportunity to work with various combinations of tools to support the product development process. One of the interesting take aways of this for me was that just knowing the product dev stack of a company i can relate past experiences to project what it would be like to work at that company. I've also developed an affinity for certain combinations of tools and a companies choice on them has in the past and continues to have a huge impact on my interest in them.

So i was just wondering what combinations of the product dev stack everyone is using and if anyone had feedback, praise or flame, on any specific tool, or even methodology and the overall impact they've had on your actual product dev cycle.

My personal sweet spot involves the following tools:
Product Management: Pivotal Tracker
Analytics: MixPanel
VCS: GitHub
Communication: HipChat

Tamas Kalman Consultant at Squidcode & Co-Founder at Tryp

April 17th, 2013

(FD Team: my previous message lost formatting when I just hit reply in Gmail - here is my formatted version using the web interface)

Joseph,

you already have a great stack - I've used pretty much the same,
what you also need is

a) tight integration between the stack components
b) precise development workflow

Additionally I'd recommend:
- New Relic (for profiling)
- Puppet (or similar)

Details:
- Recently I'm preferring JIRA over Pivotal Tracker (I moved even my personal projects to JIRA!)
- Github can be integrated with JIRA very well
- Once you are on Github, use the GitHub flow (not the git flow!)
- Automatize everything with Git Hooks (commits, validation)
- Standardize (coding standards)
- Use an automatized deployment / rollback system from the beginning
- Integrate your deployment system with New Relic
- Use Puppet or other tools to automatize infrastructure operations

Be prepared to grow not just the infrastructure but the team as well. A well designed development workflow could serve as a platform as your team grows.

And if you have the chance, embrace Open Allocation over Rank Culture - that could bring out the very best from each of your engineers.

Best,
-- Tamas Kalman

Joseph Moniz Software Engineer

April 17th, 2013

Yeah, i'm a huge fan of automation, I've used both Puppet and Chef in the past for that.

For APM i've used NewRelic in the past but i think i'm actually going to use Boundary for my next project instead.

If you want to go down the full dev stack, then i don't think you can leave out a healthy CI system. I'm somewhat of a testing junky and have used both Jenkins and TeamCity for that in the past, with TC being the slicker of the two ( it also managed our continuous delivery triggers ).

Gaurav Sharma

April 17th, 2013

To add to the tools already mentioned in the thread, we use 
- Fabric to deploy
- Asana for task/project management
- Google Analytics and KISSMetrics
- HipChat (with hooks into GitHub and our Fabric Deployer)
- AWS SES for sending emails out
- Redis
- Git flow (Just looked at GitHub Flow, looks something we can use.)
- With the reduced rates of SQS, we plan to use that. We used RabbitMQ in the past.

Gaurav Sharma

April 17th, 2013

Thanks, I'll check out iron.io. A couple of other products we used I forgot are https://papertrailapp.com/ (your logs in the cloud) and http://keepass.info for credentials management.

Joseph Moniz Software Engineer

April 17th, 2013

Oh, one cool little trick i learned was using Github OAuth2 for SSO. So it's common to have private administration pages that your engineering team built custom for your application. Leveraging Github's OAuth2 support, you can easily make github the SSO authentication service for all you're private properties and tools.

- Joseph Moniz

"Wake up early, Stay up late, Change the world"

Wynn Wu Product Design, Development and Marketing

April 17th, 2013

At our game company we're kinda settling in on

Project tracking - Trello Board
Mockups - Balsamiq / Photoshop / Invisionapp - great for interactive experiences
Analytics - Kontagent / Google analytics
Communications - Lync (yea, we're a MS shop, I've learned to love Lync)
Emailing - Sendgrid
Continuous integration dev env - Jenkins

Alexander Ross Head of Business Development at Verifide

April 17th, 2013

Personally, I've replaced Pivotal with Trello for card wall stuff. Though I find Asana generally more powerful and, though not card wall style visually, I can replicate the functionality with "Priority Headings". Hard to go wrong with GitHub these days. For analytics, I use Goog Analytics for basic web stuff but I find myself dumping custom events into my own SQL DB so I can analyze later and/or tie to individual users and cohorts. Am curious if anyone else is doing the same, I just don't find the power I need in MixPanel or others. Piwik is an open source GA alternative. Not as powerful but does allow you to hack into the code and DB.

Joseph Moniz Software Engineer

April 17th, 2013

@Alexander, Yeah there aren't any good off the shelve analytic tools for performing cohort analysis. They tend to focus on segmentation and funnel analysis instead. When i used to work at @Tagged we would push millions upon millions of events to our data warehouse everyday and the Data Science team would work their magic on it.

I actually went the other way with pivotal/trello, which is to say i've moved from Trello to Pivotal instead. I'd be curious to here you're reasoning on the switch.

- Joseph Moniz

"Wake up early, Stay up late, Change the world"

Michael Sattler President, Splitzee

April 18th, 2013

Starting from scratch, I'd use

Task Tracking: Pivotal Tracker
Analytics: Google Analytics, Optimize.ly and CrazyEgg
VCS: GitHub / Bitbucket
Communication: Basecamp/Google Chat (esp with outside stakeholders)
Email: Sendgrid

But I frequently inherit other peoples' infrastructures and then it's always a business tradeoff: the costs of switching vs the costs of making do. I tend to take a gradualist's approach to moving to ideal structures (doing everything all at once is risky, especially for early-stage companies). You also have to weigh changes against the preferences and habits of the team. There's a "latest is best" thought mistake that engineers are subject to, and it's often not that simple.

Tamas Kalman Consultant at Squidcode & Co-Founder at Tryp

April 17th, 2013

Joseph, you already have a great stack - I've used pretty much the same, what you also need is *a) tight integration between the stack components * *b) precise development workflow* *Additionally I'd recommend:* - New Relic (for profiling) - Puppet (or similar) *Details:* - Recently I'm preferring JIRA over Pivotal Tracker (I moved even my personal projects to JIRA!) - Github can be integrated with JIRA very well - Once you are on Github, use the GitHub flow (not the git flow!) - Automatize everything with Git Hooks (commits, validation) - Standardize (coding standards) - Use an automatized deployment / rollback system from the beginning - Integrate your deployment system with New Relic - Use Puppet or other tools to automatize infrastructure operations Be prepared to grow not just the infrastructure but the team as well. A well designed development workflow could serve as a platform as your team grows. And if you have the chance, embrace Open Allocation over Rank Culture - that could bring out the very best from each of your engineers. Best, -- Tamas Kalman 4153359822 ktamas77@gmail.com