406 karma · joined June 2, 2010
Any help?
Rather commit to working overtime if the company/team will miss a deadline that you committed to for a reason that you are responsible for. That closes temptation to create deadlines that you never committed to.
An example: Manager: Dev, we need you to stay extra because we've got to get Facebook Connect integrated by tomorrow!
Dev: I wish we'd talked about if that was a reasonable expectation given the other development priorities we have for this week. Next time we have a feature with a deadline, ask me in advance and I can tell you the earliest date I can guarantee it can be finished by.
Then be reasonable, with a good buffer, about future deadline commitments. If you make a commitment, keep it. If you have a deadline commitment, and a new "urgent" request comes in, you can then ask the manager if they'd rather you delay the new request to honor the first deadline, or if they'd like to push back the deadline of the original request.
Using this I never worked evenings or weekends when I was an employee
But its totally fine to learn new languages and try out new stuff without it. TDD only needs to be enforced on code going into production.
The question in my mind, that I believe is being addressed, is: Is Color a trojan horse big brother spying app looking like the next cool realworld-digital game?
If it is, that lines up with the review's experience of the app not understanding why they have to add their name and photo and why they can't find answers to their questions but feel pressured to just start taking pictures.
If it is, that also hints at the high startup valuation too.
People who can pass the tests can easily add no value (or negative value) to a project
People who've never bothered with the tests can quickly build great things, rescue projects, and fix the bad code/designs/patterns of test-passers.
If certifications/licensing/qualifications becomes and indicator of value in the future, I'm sure it will be adopted in the market then.
Why I think the people on Airbnb are 'cool' is that its a small population that has a lot in common (young or young-at-heart, singles and couples without kids, internet natives, own a macbook, would love to hitchhike Europe while submitting correspond reports for the NYTimes). As it grows, I'm worried that everyone's not going to find everyone else 'cool' on Airbnb.
I wasn't around for the early days of Craigslist, but I imagine it was easy to like people you found on Craigslist because they were probably very similar people to be on Craigslist so early. But now, after scale and popularity, that's gone.
I wonder if Airbnb might lose the 'cool' people edge after scaling.
Some differences we're doing from your situation:
We use Cucumber to cover the whole web app(but not flash or video processing), and only have some small rspec model specs on important methods involving billing.
Cucumber coverage is also very powerful per line of test code. We have 1000 lines of cucumber covering 5000 lines of code.
We aren't covering everything by tests. For example, I would have given up on the Facebook login test coverage, and just written some tests that mock a facebook-logged in user but not covered the actual login funtionality itself.
If we were not doing BDD, my time estimates for each ticket would have to double because the hair-pulling debugging time would skyrocket and kill productivity.
I would also hate working on a team that didn't have test-coverage because developer B might build something I don't understand or know about but I inadvertently break it and we find out 4 days later.
Another benefit: we can ruthlessly refactor and tear out code because the tests immediately identify if something broke.
There's also more payoff for your tests over time. The longer your project lasts, the more those tests pay dividends. Even they seem painful now, they are an investment towards maintainable code in the future.
My advice: keep going with TDD/BDD and consider Cucumber for everything but your most important business-logic methods.
I made similar personal app at http://fatgrapher.com and one of the key features for me is the that my graph is public.
We used the principles: weigh/graph everyday, skip dinner whenever more than 1 pound behind the 'pace line'. The 'pace line' graphs ideal progress towards weight loss goal.
I can't document this, but many software projects fail or are forced into rewrites and rescues. That never happens when you have high code coverage.
Has any rescue team ever come into a project and gone 'Well, the test suite is in excellent shape, so this shouldn't be that hard'?
That's what I believe, but many products won't have a huge payoff for unit-testing every method. Most of my code coverage is more like automated QA tests through Cucumber / Capybara / Selenium in Ruby.
In a sense, women are involved in startups when they choose to have kids.
Background info: In the past year, I've started my family (first baby) and worked on several startups as a Rails developer (FYI, I'm a man).
You might be able to get some money (I have no way of estimating how much) by just adding the same sponsors that railscasts.com has. That could be a short time investment up front for a passive income.
In that model, you don't need to redesign. The design is fine.
1) Everyone else is buying DS's for their kids. I almost feel like I'm judging people to not get one for our kids.
2) Parenting in America is playing defense, reacting to kids boredom, whining, and manipulating. Defense only lasts so long before surrender.
150 years ago, they were not that different from the surrounding culture. They became distinct as the pace of innovation took off.
As new innovations come, they allow a whole generation to consume it on the outside, then consider adopting it only after it's been out for decades.
They seem kinda weird to us, but its a very wise strategy. Just because its shiny doesn't mean its helpful for human living.
If you make $30/hr salary, you really make $40/hr with vacation/health/employer-paid taxes/use of office and equipment for free/reimbursed travel+conferences
+you don't get paid for slow times, and non-billable tasks
+you have to compensated for the increased risk you take on (consider the reverse--you would take less average pay to know that it's completely reliable and consistent)