Dev Journey #8
One of the crucial skills that a developer should have in my opinion is the skill to analyze where things went wrong and how. To dive in the depth of this ocean of reasons to why you should be capable of “analyzing” we should list the steps of the creative process of a developer.
Step 1 Innovate:
This is where we get the spark of the idea we want to bring to life.
For me the idea for the project that I want to talk about in this week’s article was born out of the womb of having a game development team. It’s as simple as this: A game-dev team → an official website for the team to publish games. I didn’t need the time that is needed most of the time when coming up with a new idea because the reason for this project is pretty generic.
Step 2 Scheme:
Scheming consists of designing the project’s skeleton, the demographic it’ll serve, the cost of creating the project both financially and time and effort cost, coming up with the sketch for interfaces and choosing the right tools.
The project skeleton was pretty predictable, an admin page for data entry, templates for interacting, a contact form and maybe a newsletter to keep the users informed of the latest products.
The demographic that we are targeting are the people who play indie games by underground game development teams, so, quirky young gamers from age 15 to 25. For this demographic we need to keep the usage simple due to their inclination to upfront processes and direct way of dealing with websites.
The cost financially was basically zero until the point we scale up the website for 100K+ monthly visitors which I don’t think will happen soon. But, when it came down to time and effort it was pretty costly, and that it because we still don’t have any official releases as a team and the website will have no use until we gain some traction, and this was one of the things that made me consider the decision to make this project a wrong one(more on that later).
The sketch for the interfaces took me about 2-5 hours due to the lack of need to complicate things. Personally, I think it was better than my latest design and I saw myself getting better at creating a front-end which was great!
The right tools were basically all I know in web development. Django Framework, raw HTML & CSS, render for deployment because it ease up the pain of hosting a Django project and has a pretty robust project management , Git and Github, Pipenv for virtualenv management, PostgreSQL database because it’s the most compatible with Django and it works pretty awesome when scaling up the project and Gmail SMTP service for contact forms and/or the newsletter.
Step 3 Build:
This is where we take the schemes and turn them into mini tasks and start completing them one after another and gather all the pieces at the end for one complete product. Take it to the production server (I would have said staging server before production but the project is way small to do all that work) and see how it will turn out.
Step 4 Refine:
Test performance in a live environment and try to boost it to the maximum. Test it on multiple devices, catch the bugs, tell others to give some feedback and use it to fix minimal bugs because major ones should be dealt with in the development server.
Step 5 Reflect :
- Did the project serve its purpose?, Where did it fall short ?,
- What was it lacking ?,
- Did you commit to the scheme you have laid?,
- Is this product ready to be consumed by users?,
- How would this project look on your C.V/Github?,
- What have you learned?,
- How is this project different from the last one ?,
- What to do with the project (if it was a personal project)?,
- Where to go from here on ?
And many more questions that’ll help you know your project and help you improve professionally…
Now, why analyze? As you might have noticed already every stage of the creative process has its own version of analyzing, when building you’ll analyze your code to assure that it is working, when scheming you’ll analyze the workflow you should follow, when you refine you should analyze your and others feedback and so on …
The project I spent the last two weeks working on saw the light of day for 3 days and tonight I will suspend it.
Although It helped me improve my set of skills, It lacked the most important thing a project should have, A NEED.
The team has no releases, and even if we had, we can serve them up on an itch.io page until we actually feel the need to isolate our works from the indie space. And I could have actually used the time I put in building this project to build a project while learning more about API’s and reading the third of the William S. Vincent trilogy for Django, “Django for APIs: Build web APIs with Python and Django” which I will start with tonight because as I have seen learning to work with API’s is crucial in the job market.
Wish me luck :) Thanks for reading
Top comments (0)