@kutija
Building stuff since 2006
I started my career about 11 years ago as a Linux system administrator. Six years ago I started a company called Mint Services - we provide cloud hosting, development and business consulting services. During that time I had a chance to work on numerous mid to large sized projects, specializing in damage control.
I see myself as someone who never knows enough and seeks to learn more and more about new technologies every day.
Nothing here yet.
No blogs yet.
Well... you know CMS as a acronym for Content Management System is, basically, a framework. Because framework is just a bunch of tools and you can use them by following some rules and guidelines. Of course, this is a very simplified version but it also is a truth. For example, WordPress is a perfect example - has a bunch of functions and classes that do a lot of things. You can build basically anything, it is made by PHP, just like Laravel - so it is a framework. Now, your problem is not CMS vs Framework, your problem is that you do not know what problem you have to solve. Security, efficiency, maintenance - wrong questions. What is the business requirement? That is the most important thing, and when you have that defined, you can choose a proper tool.
You estimate it by using past experience. For example, If I'm to tell you that I need a login process implemented, how would you estimate it? Because a login can be a lot of things, not just two fields that you need to validate against a database. First of all, you need to learn to ask questions. All kinds of questions in order to know what you're supposed to do. In this example above, you should ask me more about the login process itself - how the user is supposed to log in, what parameters is he going to use, what should happen if his account is disabled, should we allow log in using other accounts (like Google or Facebook). So - learn to ask as many question as you can. Now when you know everything (or think you know everything), what you need to always have in mind is that 99% of the people do not know what they want and that is important because that is also a part of equation. With that in mind, I always tell you the worst case scenario in days (where 1 day = 8h) accompanied with a sentence "20% more or less" which should give you enough room to really finish it even if you screwed up with your estimate. The third thing you need to know is that estimates change so it is not a big deal to tell a client that you are going to spend more time than you initially thought. But do not do it 24h before deadline, do it before you've spent 50% of the estimated time. If you communicate with your client, even if you miss a deadline and your original estimate, people won't mind. If you lie to them and then try to find some stupid reason why you're late (like - you had to fetch a medicine for your sick aunt) then you're done. The fourth thing is to count with change requests that will come in the middle of your work. That tends to screw up everything, so you need to learn to fight it. How? By asking questions (that was the first thing) and by making a specs. Write everything down, send it in mail (not Skype, Viber, Slack, iMessage or w/e you use for fast communication) and ask your client to approve it and sign it off as a final version. If he comes later and says he wants to add something, you should: Shrug and say ok, but that will prolong my implementation, hence my estimate is going to be wrong, Estimate a CR itself, then tell him you are going to do it but it is a low priority. And that is about it :)
Integration - I have an Android phone and use my Google accounts on a different computers and mobile devices at the same time. I really need them to be in sync at all times. Then there is a question of speed - Chrome, in my opinion, is faster than Firefox. And for a development, it has much better dev console.
I am currently CTO and co-founder of Mint Services . I am responsible for day-to-day operations of our hosting services as we support many businesses in my country. Along with that, I lead my tech team and like to do programming myself. I actually never decided which I like more - being ops or developer, so I spent a huge amount of time and energy to improve my knowledge and skills in both worlds. I had a chance to do many things - plan and implement a huge, functional cloud infrastructure based on OpenStack, lead developers or be a part of a team on mid to large scale projects, rescue some poorly executed business plans and fix some insanely bad code... I did a lot in the last 6 years. Today, I can say for myself that I am a full-stack web developer, coming from PHP backend world and leaning slowly toward more complex JavaScript madness. I actually never liked JavaScript but as I am growing older I somehow started to like it. So, these days I am trying to improve my knowledge of JavaScript as much as I can. In 2-3 years - who knows, I am thinking about starting a new company and move toward some other projects. I am never certain about technologies, because they come and go and I look at them as tools - a project is just a screw which requires a proper tool.
I do not think that PHP7 is poorly designed. Actually I think that PHP7 is the best PHP version so far in many aspects. PHP had a period of stagnation - after 5.6 was released we waited a long time to get something new. In a meantime, other languages took forward and from that perspective, PHP looked a little bit obsolete. But soon after first stable RC versions came out, the amount of work they put into is just amazing, and results speak for themselfs. Many new features were introduced in PHP7 (you can see a bit here: https://blog.feryn.eu/php-7-is-now-available-new-features-improvements/ ). And features are not the only thing - the speed of PHP7 is just amazing. Especially in crowded hosting environments you can see progress.
Just because something is gaining a huge popularity in media, does not mean that "old" technologies should be immediately replaced. Today it is JavaScript with a billion different frameworks and tomorrow - well who knows. But that does not mean that PHP, Ruby or Python are obsolete - they are not and there are many many serious projects written using these languages so, yes, it has a lot of sense to learn it.