CategorySoftware development

4 levels of programming for businesses

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

 

If you’re making software for businesses, there are four kinds of things you might be doing:

  1. Outsourcing. “Tell me what solution you need and I’ll make it for your”. Example: (often offshore) companies that are selling development for an hourly rate.
  2. Consulting. “Tell me what your problem is and we’ll figure out the solution together.”
  3. Productized service / customizable product. “Here is the problem, here’s the solution, let’s apply it to your business”.
  4. Products. “We know you are having this problem and here’s the exact solution you need”.

From my perspective, this is all about understanding the problem. The more you know about your customers, the more value you can provide and the more money you can charge.

If you’re doing outsourcing, you’re competing with thousands of other software providers. Your profit margins are probably not so high as you’re competing with thousands of other companies Continue reading

Are software developers becoming obsolete?

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

 

I’ve heard an opinion that one day programmers will become obsolete, as software development becomes more and more accessible. Because, as someone at Quora put it, development will become “just a matter of dragging, dropping and hooking up components/widgets”.

I don’t think that software development can become a matter of dragging and dropping. Therefore, it won’t be accessible to everyone. And here is why.

Software development can be divided into two main activities: “serving problems” and “serving computers” (code/networks/operating systems/browsers/etc.).

“Serving computers” is becoming easier with time for the most of us (of course, if you’re not working on low-level programming or anything like that).
Gone are the times when we we all had to worry about pointers and memory management. Programming languages and frameworks are becoming increasingly high-level.

But the “serving problems” part won’t become any easier. We will still need a way to define the logic of solving these problems. Hence, we will still need a language to define this logic. We might use even more high-level programming languages in the future, but we will still need someone to think about app details and code their logic using whatever the tool will be popular in 10 years.

In my opinion, most of us programmers are not really engineers, we are more of information architects who specify every little detail of the application behavior. Applications won’t become any simpler, so making them is not likely to become a lot easier too.

 

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

landing_facebook_social_image_2017_06_19_10_57_41

The code you never write will work forever

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

 

There’s very useful principle in software development that doesn’t seem to be used often enough:

The code you never write will work forever. (“Eloquent Ruby”)

There are often situations when there are alternative ways to solving the problem, without writing any code. For instance, you don’t need to implement billing or even registration until there are enough new registrations. In the ever-changing software world it’s not worth implementing features that are not proven by real customers.

 

If the problem is complexity, the solution might just be simplicity. (“Eloquent Ruby”)

Each line of code is a liability. Each feature, each fix is a liability. You’ll have to change it, update it, fix it. Sometimes less is more.

 

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

landing_facebook_social_image_2017_06_19_10_57_41

Never underestimate the complexity of custom development

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

 

Most of the apps we use daily shine with their simplicity. Google is just an input field with two buttons. Uber is just a few screens. iPhone has just a few buttons. And we all love it.

But don’t be mislead by a simple interface. The power of these products lies in the complexity unavailable to a naked eye. Take a look at this illustration:

iceberg

 

What you use is just a front-end interface (which, by the way, is not that cheap to make). It really is just a tip of the iceberg.

 

Here’s a gift for you – free access to my invite-only email community:
Performance Marketing – Weekly How-tos delivered to your inbox

landing_facebook_social_image_2017_06_19_10_57_41

© 2019 Zuev Software

Theme by Anders NorenUp ↑