Friday, October 14, 2016

Lean Programming - Reduce Complexity and Speed of Development


Hello World!. The most popular line in our profession, right next to "It works! ..but I don't know why..". I haven't been writing for a while, actually ever since I started/created this blog, but I have learned a lot lately and I tought it would be nice if I shared my toughts with my fellas programmers, cheers. So to get started, I'm going to talk today about the concept of Bare-Programming, I'm not sure if something like this exists yet as a concept but let me try and getting you familiar with I mean by Lean Programming.


Lean Programming in nutshell


Lean Programming is a proces through which you first plan out the pages you need and all the stuff you need to do on the back-end and how the website will work (this will save you a lot of time, trust me!) and then go about and build the back-end of your website or web app and get it all to work as you want it and then you focus on front-end and styling this way you reduce the amount of sh*t in your code base and the amount of complexity due to having a lot of files and folder in your root folder, not to mention if you use any kind of preprocessors or transpilers.


Lean Programming in depth


I would describe Lean Programming in couple of steps which I will explain later

  1. Connecting the dots
  2. "Hello from the other side"
  3. 144p

I bet that list didnt make any sense, so lets dive into this. :D

1. Connecting the dots

This is the part where you would take your time to think deeply for a while about the whole website or webapp and what its going to do and what functionalities you need to add and what you may need to add in the future. You take the big picture create a blueprint put it on the paper(recommanded) or just keep it in your head. Think about the pages you will need, how they will inter connect and how they will look roughly. Create your "tree", for example you need a home page, home page will have sign up and register buttons that will leave to two pages one for sign up one for register then you need a setup page for setting up info after registering and so on... then go about what APIs would you need for those pages, think about how you are going to design the database and APIs based on the information that you have at this point. Now that you have the idea, the roadmap and understanding of what you are building lets move on to the next step

2. "Hello from the other side"

Now that we have idea what we need to implement we can start from the root of our "tree" first build an API for signing in or for getting the text based on location from the server for example. build APIs and test them one by one, make sure all of your APIs work and do this for each page, now we have come to final step the interface part, as you could of noticed we didnt write a single line of HTML and CSS so far, and we wont until 3rd part is over

3. 144p

Why 144p? thats the worst resolution you can use on YouTube and the video looks like sh*t on it, anyways, back to programming :D. In this step we build basic UI without any of the CSS, HTML Only, all the inputs checkboxes and stuff just to make sure everything is working well and we spit out information as pure text our divs or just in the body if we get all the data and all the APIs to work properly then adding styles will be the fun and easy part and we will avoid ever having some bigger complications and waisting our cognitive resources, because we programmers need those the most.

After this you just go about and style the sh*t out of your website or webapp.
I hope this article helped you, I know it helped me to work this way and I have cut my development time almost in half just by going logic first looks later, just like people build cars, houses and everything else, I enjoy programming now more then ever, thanks for reading.
If you have any questions hit me up on knox97js@gmail.com I will answer to those gladly, let me know in the comments what you think about this method and if you have any idea how can it be improved I would really appreciate those and dont worry about hurting my feelings lol :D

Email: knox97js@gmail.com

1 comment:

  1. Really liked this article, thanks for sharing! gonna look into this ideology now

    ReplyDelete