The following text describes the possible evolution of the skills and awareness level of a software developer through his career. Instead of thinking in a linear fashion and taking into consideration only years of experience and past roles, I prefer to focus the level of awareness gained and see each step as a little quantum leap forward. First your awareness only reaches to the end of your limbs, then jumps to concepts, then to business, and eventually it jumps entirely outside of you to reality, and then.. I can’t describe the last step you’ll have to read it for yourself.
The steps are
- Tool Oriented
- Conceptual Mind
- The big picture
- The realist
- The visionary
I encourage everybody to read this text till they reach the level they idenfity with most and read the step after that to get an idea of where they could go next. But don’t read many steps beyond, it would be a waste of time really. Not that you can’t reach it, just that trying to go too fast will sabotage your evolution as a developer. Each step has to be lived through thoroughly so that you are RIPE to move to the next one.
Continue reading “5 types of software developers”
I’m sure you have seen yourself, or at least heard of a handful of software development projects that have run into cost and time overruns. They are so common, it’s not even funny anymore. They blame it on the waterfall model; they also blame mis-alignment between business needs and final project specifications on the waterfall model. So they went to the other extreme, to AGILE. (for the record.. I am so fed up with agile all I can think of is puke when I hear that word).
In between these two extremes there is; somewhere, some kind of equilibrium. A space where software specifications still have importance, and when; by the same token, user stories also make sense. I mean ideally you have both; you care for the user AND the system. It’s not exactly rocket science. Some elements of the system need to be thought through thoroughly; beyond the consideration for the user experience. Lets call them server experience? who the fuck cares. Epics? lol. They are SYSTEM REQUIREMENTS.
The main reason why projects end up costing so much more than planned and taking so much longer than planned goes far beyond development methodology. It has to do with the inherent inability of human beings to care about what they call problems. In fact a problem doesn’t exist, they are all just situations; some situations you want and are ok with, some others are obstacles for you to reach your goal. You label them problems. But they aren’t problems. They are situations; they exist, you don’t want them to, but they do.
Continue reading “Anatomy of a project with cost & time overrun”