By following these 7 basic guidelines, you can save a lot of time and money now and in the future.
Hunting for a CTO is a challenge for startups with non-tech founders. Failing which, founders often resort to hiring interns or even outsourcing development!
As a founder, you need to ensure that you’re up to speed and have control over what is going on in your startup. That includes the technical side of things too.
It’s crucial to produce high quality work in all aspects of the business because the reputation of the company is at stake.
Here are 7 knowledge nuggets to ease your way into the technology labyrinth:
You know your business best. It’s your duty to ascertain the right fit of technology and talent for addressing the business problem your company is solving.
Unless you have specific technological needs, keep the following in mind:
Before jumping in, check the technology options available in the market, which can solve your problem.
If you reinvent the wheel, you will end up wasting chunks of your time on something that has already been done before.
When it comes to development, you will need to scour the internet to find solutions to technical issues. This is where a good community can help in supporting your development projects.
Here’s a good summary of what tech stack top startups, such as Airbnb, Medium, and Shopify, are using: http://stackshare.io/stacks
Frameworks help to structure your code. Just like any spoken languages which has grammar rules, your code should follow a structure that is comprehensible to others.
This way, multiple developers can work on the same piece of code efficiently.
A lot of times there is a tradeoff between the `ideal technology` vs `people with the technical know-how`.
If you trust a person (who is also willing to work for you) to give you directions, pick the technology which he/she is comfortable with.
Knowledge is power. To deal with the internet, you should be armed with fundamental knowledge of the Internet and how it came to be today.
This will help you understand what the building blocks of any internet application are. Google it or ask a friend who’s a developer.
Some key questions you could google:
After the resolution of these questions, if you did not have an `OMG` moment, then my dear friend, you’d need to find another expert to answer these questions.
This discussion should not take more than 2 hours to serve its purpose.
As I’ve mentioned previously, do not reinvent the wheel but at the same time, you should know why not to reinvent.
Some questions which you should be able to answer are:
The basics that you have learnt will help you answer these questions in a better manner.
Consequently, the product discussions, which you will have with your tech team will be shorter, fruitful and well-scoped; and you will be able to iterate on your product faster!
Once you have covered all that is mentioned above, it’s time to build something beautiful.
A startup needs to work rapidly and have the capability to iterate over the product. Your users will give you feedback and you might want to change things drastically.
Instead of wasting your time doing things from scratch, time could be better spent creating a solid, technological foundation for your startup.
Here’s a list of characteristics a solid tech base should have:
This may be a hassle at the start, but once you have more people onboard, you would want them to enjoy their work and not just solve bugs from a pile of spaghetti code.
Ship Early & Ship Often
Expecting everything to work smoothly is to be an idealist. Instead, go Agile by using a feedback-based iteration that is user centric.
With a solid tech foundation, keep experimenting. Less crucial bugs can be resolved in the future as well. Set small “release-targets” and frequent “release-dates”.
Once you get your entire team to go Agile, it will be motivating and fun for all.
Typically, there are three levels of code – the database, the business logic and the presentation level (often involving the web interface).
Business logic, which describes a specific procedure, links the database and presentation levels together.
The key principle then is DRY (i.e. Do not Repeat Yourself), so that the business logic is well separated from the database and product’s interface.
If you keep to this principle, changing the business logic, such as implementing a new discount code on the backend, will take less development effort, and reduce chances of bugs.
“For changing a part of the machine, you should not need to dis-integrate the entire machine.”
In line with shipping early and shipping often, it’s important to stay on track when it comes to producing code.
When we start brainstorming about the business, we find ourselves peeking into the future, occasionally going off tangent, and building more features than needed.
However, it’s best to implement the code quickly and implement less of it instead of wasting time developing features you don’t need in the future.
As the founder of extreme programming, Ron Jeffries, said, “Always implement things when you actually need them, never when you just foresee that you need them”.
Dig into your network and find a person who will be able to help you out with these things.
10 hours of his time distributed over a week will give you a big leap in your entrepreneurial adventure. Have fun!