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
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
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
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
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 email@example.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.
“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.