Ship it. Ship it real good.

I learned a great deal the last year at Prosper Marketplace. Despite the difficulties we faced as a team, there are definitely some good takeaways.

  • Organizing end-to-end teams allows full autonomy and to ship quickly.
  • Using metrics allows team members to focus on the right things.
  • Align how we work, but you don’t need to align the technologies used.
  • Agile works. Make an intentional effort to improve it.

Project launch: Prosper Marketplace’s retail investor experience

I’m very glad to share that the project I’ve been working on for months finally launched. Even in turmoil, the team overcame all obstacles and launched this projects. Credit to everyone who worked on this together (past or present). You know who you are.

Significance of this project:

When I first joined Prosper Marketplace, they had a low-volume consumer product. The old site consisted of a series of incoherent pages, cluttered with an overflow of information and functionalities designed for sophisticated investors – desktop only.

The new experience is simplified, visually appealing, mobile friendly and allows investors to invest in only a few clicks.

The Dashboard:
Prosper Account Overview

The Auto Invest page:

Prosper Select Criteria

Prosper Marketplace Investor Dashboard in mobile

Prosper Marketplace Investor Dashboard in mobile

Leading the engineering effort was no mean feat. I’ll write more on what we did well in the next post.

To learn more about this project officially, click here.

Fake agile: Get out of the rituals

You were told in your job interview they practice agile development. You ask a follow-up question to learn more. Then, they clarified they used their custom “brand” of agile – a hybrid of sort. You signed the offer anyway. Soon after your start you realized they had all the rituals of agile but everything felt wrong and pointless. Sound familiar?

I’ve been there. It’s easy to become a stagnant agile organization. Here are some pointers to get better at agile.

1. Be agilists

The most successful agile organization is one where everyone is on the same page about what agile is. Build an on-boarding of their agile practices before employees start. Form an agile forums to advance the organizations’ agile practices.

2. Listen

Feedback can come from anywhere – customers, retrospectives, sprint reviews, demos, stand-ups, day-to-day conversations. Collect them and address them in your sprints. There is constant self-improvement in agile – as an individual, as a team, and as an organization.

3. Ship it. Implement it.

You should always ship code at the end of every sprint. Keep the momentum. Break down big projects into smaller shippable chunks. Improve the technology to support it – e.g. release beta versions, use feature flag, improve continuous delivery and automation. Address process improvements with the same “ship it” mindset. This is important because shipping things enable customers and users to give you more feedback to further improve.

4. No jerks. No turf wars.

Treat each other equally and with respect. Everyone can suggest and make changes – regardless of how big or small the changes are. All responsibilities are task-based, not role-based. Everyone can lead, prioritize, design or code. This way, everyone is equally accountable for the output of the team.

5. Focused Meetings

Minimize the number of meetings. Understand why you need any of them, including scrum meetings. If the meetings do not help your team achieve your sprint or team goals, you should cancel them. This is why some companies (like Spotify) suggest all scrum meetings are optional.

6. Build team identity

Your team should have a team goal. It is an internal compass for the team members and helps them understand how to prioritize feedback by themselves. Name your team according to the team goal. Pick a name that anyone outside the company would understand.  With an identity, your team members will be more likely to work together as a team.

7. Measure it

Use various metrics to measure your team’s success. Estimate all known work and plan for the unknown using capacity allocation. Besides measuring team velocity, pick business metrics to measure how your team is achieving the team goal. Make these metrics accessible to the team.

Updates for “less-watch-compiler” – A utility that watches and auto-compiles LESS CSS files

I wrote a small nodejs utility 2 years ago. It basically watches a folder of LESS files and auto-compiles them into CSS files when changes are made. Since I posted this, usage of this utility picked up. Many users have sent some feedback to me on github but I hadn’t have time to resolve them until now So yesterday, I worked this and made some major improvements.

Here is a list of updates:

  • Fixed the bug where subfolder changes are not detected
  • Externalized configurations in json
  • Introduced project-based JSON configuation files
  • Refactored the code
  • Added Mocha unit tests
  • Added pcakage information for npm
  • Posted project to npm

If you’d like to check it out, here are links to my project:

Please feel free to contribute to this project.