Categories
Code Software Projects Start Up

Technical Debt

Addressing Technical Debt

Agile is the modern methodology of developing software. The Agile methodology is more popular in startups and small companies than large organizations, although that trend is changing. A sprint represents a time period where a collection of features, taken from a backlog are planned for development. Sprints can be 2 weeks to 30 days. Each company’s mileage may vary.

Speed to market is critical when developing software in a startup. Keeping users engaged with new features and improving existing features quickly is a good recipe for successful retention. You have a need to build your product quickly to gain traction to attract investors. Unless you are a successful serial entrepreneur with just an idea. I find that many startups use outsourced development teams to build their MVPs or their first customer facing projects, because they don’t have enough money yet for an in-house engineering team.
Categories
Uncategorized

Technical Debt

Technical Debt

Agile is the modern methodology of developing software. The Agile methodology is more popular in startups and small companies than large organizations, although that trend is changing. A sprint represents a time period where a collection of features, taken from a backlog are planned for development. Sprints can be 2 weeks to 30 days. Each company’s mileage may vary.

Speed to market is critical when developing software in a startup. Keeping users engaged with new features and improving existing features quickly is a good recipe for successful retention. You have a need to build your product quickly to gain traction to attract investors. Unless you are a successful serial entrepreneur with just an idea. I find that many startups use outsourced development teams to build their MVPs or their first customer facing projects, because they don’t have enough money yet for an in-house engineering team. If you have to optimize for speed of delivery, you are trading off for well-engineered and maintainable code. A well-engineered code base is modular, object oriented and extensible. Automated tests, where possible are developed to run tests and the time savings is used to add more code coverage. Unit tests are developed in tandem with developing code. The code is well documented so other developers that get to work on the code in the future can fix issues or enhance it quicker.In the race to develop features and get to market faster, a number of short cuts are taken. Some examples are:-

  1. Error messages and UI text are not centralized into one file. Instead, they are in-line in the source file and not given proper IDs. This would result in a longer product localization cycle and make it difficult and error prone for a user experience person to enhance messages.
  2. Each developer writes their own private modules for functionality that should really be common and collected in a library.
  3. Code is not documented well, making future ownership and maintenance difficult and possibly error prone due to incorrect assumptions.
  4. Configuration settings are scattered and hard coded instead of residing in a central repository. These could be passwords, paths to files, timeout values etc.
  5. Security is usually under engineered in MVP level projects and ad-hoc implementations are made as a result.
  6. Conscious choice to ship a product with a known bug that customers encounter and complain about.

There are more involved examples, but this gives you a picture of technical debt. If you don’t pay it down often, it could eventually foreclose you from advancing your product engineering.

You may have heard of the term “re-factoring”. As features get added, software grows in complexity. At some point, it is cheaper to discard the initial code and re-write it. This is termed re-factoring. You don’t want to be surprised when developers use that term.

In a sprint based methodology and where speed to market is important, what are some best practices? How do you avoid surprises and avoid conflicts further down the road? Here is one approach:-

  1. In the sprint planning meeting, have the developer identify and add tasks for technical debt, as necessary. This will usually start happening in the 3rdor 4thAsking this question at every sprint planning team shows you care for long term sustainability of the code base, even if your company has money left only for 3 months J
  2. Add such tasks to the backlog or to current sprint, based on business realities. Most development managers should be fans of addressing technical debt immediately.
  3. Set aside one regular or mini sprint to address one or more technical debts. If feature development needs to happen, be creative and develop features that are not close to the technical debt area being addressed.

Rinse and repeat the above.

Of course, you don’t want to see a big technical debt reduction task in the final sprint before you launch your product, That’s a recipe for delay and angst.

If you are using an external development team, it is important to add a clause for technical debt clearance in the agreement before final hand off. Any debt clearance work must be followed by robust and comprehensive testing and special attention paid to regressions.

If you have followed best practices for addressing technical debt, kindly share

Originally published at www.carabiner.io on September 26, 2015.

Categories
Uncategorized

What’s up with that diet?

A few weeks ago, I wrote about starting a diet to quiet inflammation.

3 weeks have passed. The elimination phase is over. It was successful. I made very few exceptions. Working from home definitely helped out, as I did not have to do much planning for snacks and meals. I was also helped by lack of parties or social events. In hindsight, going cold turkey was the right thing to do.

I have lost just a couple of lbs, but I do feel a difference in my chronic ankle pain level. The diet has made an impact on my overall health in a short time. Sleep was especially improved, despite not eating anything for 3-4 hours prior to bed. I had imagined getting up in the middle of the night with hunger pangs.

Now comes the testing phase. I will re-introduce one food type at a time for 2 days, observing the effects and moving to the next. So it will be Dairy, Wheat, Dried Corn and then Peanuts.

I have learnt a lot about the chemistry of food and how our body processes food. Omega-6 vs Omega-3, Oxidative Stress, antioxidants found in various fruits and vegetables, the role of liver in managing sugar levels, the insulin/glucagon interactions are such topics. The weekly lectures from Kathy Abascal, who has pioneered this diet have been illuminating. I think this type of information should be introduced in Middle and High Schools as part of the Biology curriculum to influence kids at a young age. Finance and Nutrition are two grossly neglected topics in school curricula.

More to come in 2 weeks.

Categories
Business Start Up

How about those podcasts?

I am a regular podcast listener. Commutes, walks, waiting, long drives happen often and with the smartphone in one’s pocket, it’s easy to tap into a variety of interests instead of just interacting with a bunch of apps.

The quality and variety of podcasts has enhanced over the years. Here is what’s on my podcast shelf.

podcasts

​For news, my go to podcast is the BBC. No one covers global events like BBC does. It provides a unique perspective into lives of people everywhere.

Serial was initially a must-have, but after 4 episodes, it turned out too long and I realized there was no actual end in sight. It is dormant now, but not yet gone.

Pitch is a recent addition. Every week or so, a startup pitches. A investor panel evaluates and votes on a follow-on meeting. I like the format, as it is not all drama like Shark Tank.

TED Radio Hour is just brilliant. With a disarming nature, Guy Ross does a wonderful job. I have sounded so wise since I started listening to this.

Economist is better on the written side than the podcast. Time for it to go, soon!

podcasts

I enjoy Tim Ferriss’s podcast. He is a great interviewer and is able to attract an eclectic mix of guests. Sometimes he turns the podcast entirely over to a guest, who answers questions submitted to a Google sheet by listeners of the show.

The Dog podcast is a nod to needing to devote both mind and body to the duty of dog walking. I did get some useful tips on how to deal with July 4 fireworks.

I like RadioLabs long form podcasts. Frontline is a perennial classic, although their frequency of podcasts is not too good.

podcasts

HBR ideacast is definitively awesome. Their recent series on what it means for digital transformation of businesses shows their ability to go deep, analyze an important trend and provide useful insights for the listener.

So many things are happening in the IoT space. This weekly podcast is a good way to keep abreast.

NPR Planet money is a delight. They do short 10-15 segments on finance, economy, business, companies. I have always taken something useful out of every episode.

I like startups for the rest of us. They deal with some useful topics on sales and marketing that one can refresh upon and attempt implementing in one’s own startup.

I haven’t played much of Golf recently and this podcast is to remind me of good old days, where even snow could not stop a round.

podcasts

Kara Swisher is a dynamite. Her ability to skewer Silicon Valley while in the midst of the action is refreshing. She is great to listen to more than her writing.

Freakonomics should be in everyone’s shelf. I wish I can say they are great. I’ve had more misses than hits.

Happy listening!

Categories
Catalyst

Effecting change

For the last year or so, I have had chronic ankle pain. I have tried various ways to fix or mitigate it. Recently, I started looking at inflammation and foods causing inflammation. While I did not do any specific tests to measure inflammation in my body (don’t know if there are any), I decided to try out the TQI Diet. It is practiced and taught by Kathy Abascal from Vashon Island. My wife had heard about it and asked me to give it a try.

The core theory is that our body’s inflammation response is usually not balanced or measured. By toning it down, it is possible to get relief from chronic conditions.

Here is how it works

  1. Elimination Phase for 3 weeks
  2. Balanced Phase for 2 weeks, with reintroduction