5 Things Programmers Don’t Want You To Know

Some programmers are really nice people but other programmers are like car mechanics.

That feeling when you take your car for an oil change and the mechanic says it has 10 problems you have no knowledge about and your bill will be $900+

These are 5 things programmers don’t want you to know.

1. Waterfall is dead

beer-creative

Some programmers don’t want you to know that waterfall is dead.

Agile and waterfall are software development processes.

Waterfall is taking a set of features, building all features and launching the project when all features are completed.

Waterfall takes months to complete.

Agile is taking a set of features, building a feature and launching the project when the feature is completed. Then continue with the next feature.

Agile can take at least hours.

Some programmers say that they will build all features and launch the project in X months.

This is waterfall.

Some programmers will say that waterfall is not dead.

This is a lie.

Waterfall is dead.

In agile you might not launch when a single feature is completed. The goal is to launch a prototype with the most critical features in the least amount of time. Then test the prototype with a small set of beta users to get feedback. Iterate on the feedback. Change, update and continue with the next feature. Or deploy to a larger audience.

2. Your code is available from day 1

walle-automation

Some programmers don’t want you to know that your code is available from day 1.

Some programmers will say they will deliver the code when the project is completed or will deliver when a feature is completed because the code is not available.

This is a lie.

The first line of code should be available within an hour of starting the project.

Good programmers use a repository to “backup the code”. This repository is also use to maintain the code when there is more than 1 developer working on the pr0ject.

Imagine working on an excel file with more than 1 person. How do you know who changed what? This is what a repository (aka repo) is for.

git is the technology used for this source control.

Github is a website to keep the repository in the cloud.

If you are a Project Manager or a customer hiring programmers. The first thing you should ask is to get access to the repository.

While it is industry standard to get access to your repo. It is a very bad sign when programmers don’t want to give you access.

From day 1 you should be able to see progress on the project.

3. The application can be tested from day 1

simple

Some programmers don’t want you to know that the application can be tested from day 1.

Some programmers will say that you cannot test the application until the project is completed.

This is a lie.

Waterfall is dead. Remember?

Since most programmers should be using agile. The application should be available in a cloud test server as soon as the first feature is completed.

Some programmers will also try to sell you on expensive cloud hosting that you might not need.

Good programmers will have a truthful and honest conversation with you about the amount of hosting you will need depending on your plans for testing the application and deploying to larger audiences.

You should also have a plan in place with your marketing team about the amount of traffic that might convert to users.

With these plans in place. Good programmers should become great advisors on how to properly scale and maintain your application. Not so good programmers will try to hide a lot of stuff with technical terms that they don’t want to explain.

4. TDD is not dead

Some programmers don’t want you to know that TDD is not dead.

TDD aka Test Driven Development is a software development process where programmers test the feature before they build it.

(sort of) recently. The main developer of Ruby on Rails published an article saying that TDD was dead. And that he didn’t use this methodology to build software. Although his thesis was based on programmers that used good practices.

The problem is that some programmers don’t use good practices.

If the feature is to build a form that captures an email such as homer@simpson.com

A good developer will have something in place to validate that the email has the correct email format.

Otherwise a user could enter anything such as “blabla”.

If you ask some programmers if they will use TDD and they say no because TDD is dead.

Then you should worry.

While the cost of the project could increase with TDD. At least you are not jumping out of the airplane without a parachute.

Since you cannot evaluate if the programmers use good practices. Then TDD should be required.

5. We don’t need to build everything from scratch

Some programmers don’t want you to know that they don’t need to build everything from scratch.

“We have to start again” is one of the most famous line by some programmers.

Or.

“We have to build X from scratch”.

Remember that some programmers are like mechanics. They don’t want you to know things that you cannot understand.

If you understand less. Then better for them. They can charge more. Your oil change ends up becoming a change of engine.

Most sofware has been built in some shape. Twitter is similar to Facebook and similar to Instagram.

They all have a login. A profile page. A timeline. A “post something”. A follow someone.

Thanks to open source. A lot of features have been built.

Some programmers might say that a login will take a day to complete. 8 hours of work $100/hr. $800.

$800 to build a login is a lie.

Ruby has a login “module”. Python has one too. Every other language has some sort of login code that you can use.

Beware of some programmers that say that they need to build everthing from scratch.

If you know other things that programmers don’t want you to know. Please add them to the comments.

Related Post

Go to the Previous Directory in Vim I use Vim.Vim is the most productive text editor if you know some vim commandsWhen I open a file and I am done with it. I often want to go...
Export Data From Firebird Database to CSV File Background Some software applications use a database called Firebird. This is an open source database. If the software application is compiled you ca...
Installing Ruby on Ubuntu Installing Ruby on UbuntuAs seen on RVM...Go to the terminal in Ubuntu.Add the public key from RVM$ gpg --keyserver hkp://keys.gnupg.n...
Installing Hipchat on Ubuntu Tested on:Ubuntu 12.04 LTS Thinkpad T400, 2GB RAM Intel Core 2 Duo CPU P8600, 32bitSources:Official hipchat linux instructions Ask U...

2 thoughts on “5 Things Programmers Don’t Want You To Know

  1. irenkai Reply

    “Most sofware has been built in some shape. Twitter is similar to Facebook and similar to Instagram.”

    Yeah … no. They have different APIs, different implementation of Oauth, one login is not the same as another, so yeah “$800 to build a login is a lie” might be right, it should be here if what you are seeking is the standard that Twitter & Facebook has (multiple cache layers, with replication, with multiple services beign notified, with sms verification).

  2. Non-Valley Programmer Reply

    Scientific instrumentation and data analysis software, which is what I’ve spent most of my career doing, is an entirely different animal. There is no cloud deployment. The minimal number of features needed to run a multi-photon laser scanning microscope (data acquisition/hardware interface, GUI, online data reduction and image formation, online display, file encoding, geometric calculations, scanner-oscillation model, scanner control, stage motor control, etc) is enough that you might as well consider the project complete before you start user testing. Embedded software often requires near feature-completeness before user-level testing can begin. The same goes for telecommunications/energy infrastructure and many vehicular, space program, or weapon system software packages.

Leave a Reply