My code for @ReliScore is slowly falling for Greenspun's tenth trap, "Any sufficiently complicated program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp" as we implement automated eligibilty criteria for candidates
Customers want to make candidates appear for different tests based on various criteria (branch, percentage, score on first round test, etc). And of course, I don't want to hardcode that. So I've ended up with a mini expression language.

And now there's classic score creep.
Never imagined my eligibility specification language would end up with variable declarations and scopes

It has all arithmetic and Boolean operations and conditional branching. No loops yet

Looking forward to the day when a customer requirement forces me to implement recursion
It is funny how "Jo sochta hai, woh hota nahiN hai. Jo hota hai, woh sochne lagta hai" applies to software development when you're listening to customers

All this sophisticated machinery is required because customers ask for what they think of as "simple requirements"

but...
The converse is also true. There are features I'd envisioned on day 1 (ten years ago) that I still haven't implemented as no customer has really needed them.

As @dnene once told me, one of the most important principles of software design is YAGNI: martinfowler.com/bliki/Yagni.ht…
Notice how, in the context of customers, I carefully used the word "needed" instead of "wanted" or "asked for".

This is something I've learnt over the years. During initial pitches, customers ask for all sorts of features which they don't need (and will never use). Resist.
What customers ask for before they sign up (i.e. when they're thinking about the problem theoretically) is often quite different from what they want when actually using the software (when there is skin in the game)

So YAGNI applies to the customers too
This also ties in to the most common advice I give first-time startup founders: Don't implement any of the sophisticated features you're thinking until you've talked to 30 potential customers.

In fact, don't write any code until you have customers.
In fact, the first 6 months of many startups don't need any software implementation other than Excel and Whatsapp.

Far too many founders waste a lot of time and money building sophisticated software that YAGNI.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Navin Kabra

Navin Kabra Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @NGKabra

15 Jun
If a student in high-school is keen on a career in AI/ML, how should they prepare for it? What subjects should they learn, and what activities should they participate in?
What basic subjects should you be strong in if you're interested in a long-term career in AI/ML? The replies to the parent tweet show that there are many different opinions.

Here's a thread on the slow and steady method, which focuses on building foundations for the long term.
3. You should have done well in maths and statistics in school. Nothing fancy, no multivariate calculus. Just basic probability and statistics and basic calculus.

You don't have to be a star student in math, and you don't have to be a topper. Just enjoying the subject is enough
Read 27 tweets
20 May
1. Ransomware attacks are increasing. Even small companies in Pune/Bangalore have faced huge losses, in some cases coming to the brink of shutdown because of ransomware attacks

This danger is not really appreciated by people, so I wrote an article about this with @rohit11's help
2. There was a severe fuel shortage all along the US east coast last week. This was caused by a ransomware attack on the computer of the largest gas pipeline company in the US. The pipelines were shut for 5 days, and they ended paying $5 million in ransom

3. Soon after that, the Irish Health Service was shutdown by a ransomware attack.

But this is not just a problem affecting large infrastructure companies. In fact, @rohit11 believes that smaller companies are being attacked more.
Read 16 tweets
28 Apr
1. There are videos floating around on WhatsApp implying that Bhramari Pranayama (yogic breathing/humming) can protect you from Covid. I would like to poke holes in that theory and hope that a real expert (@bhalomanush?) will also chime in.
2. The claims start by talking about SaNOtize, a Canadian nasal spray that releases NO (nitric oxide) in your nose and claims to be a "prevention and early-treatment for Covid-19". Then they point out that bhramari increases NO naturally. Thus implying bhramari prevents Covid-19
3. Here is one of the better and more sensible videos in this category: facebook.com/Yogapoint/post…

An aunt sent this to me for validation before forwarding. Since I want to definitely positively encourage this behavior, I put in a bunch of effort at researching this.
Read 15 tweets
6 Apr
The Utah government paid $20 million for an AI software that scans social media posts and identifies criminal activity in real-time.

Due to some problems they had to start an investigation: is the AI racially biased?

What do you think they found?

I love this story, so a 🧵 /1
Before you read the rest of this thread, try to guess what the investigation found in response to the question: Is the AI algorithm racially biased?

I bet the answer will surprise you.

But let me tell the whole story first. /2
Banjo, was a software company that made Live Time, a software with the capability to "detect active shooter incidents, child abduction cases, and traffic accidents from video footage or social media activity".

Impressive, no? /3
Read 9 tweets
19 Mar
1. "There is too much variability in our hiring process," says the business leader. "Depending on which interviewer they get, people with very different skills get hired. Your tool will help us standardize."

Supposedly the customer is always right, but this is where I push back
2. I feel like wisecracking: if our software outperforms your employees, you need better employees

But I know that's not true. They are usually good employees who need to be given better training
3. So I dig into what is happening in the interviews.

Depending on availability, a candidate gets randomly assigned to one of 3 different interviewers. And each of those interviewers asks questions based on their experience, background, and what they're currently obsessed with.
Read 22 tweets
9 Mar
Did you know that all the nuclear bombs we exploded in the '40s-50s-60s have permanently contaminated all the steel the world has produced since then? All steel in the world is divided into two categories: pre-1945 non-contaminated steel, and post-1945 contaminated steel.

How?
Nuclear bombs (including the tests) create a lot of radioisotopes that are not found in nature. For example Cobalt-60 (a radioactive version of Cobalt-59). And since the 1945 Trinity test, these have all dispersed in the atmosphere.

What does this have to do with steel?
The process of manufacturing steel uses atmospheric air (or atmospheric oxygen). Some of the radioisotopes like Cobalt-60 get pulled in too, and as a result, any steel produced after 1945 has embedded in it some of these radioisotopes, sitting there emitting gamma rays.
Read 10 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(