It has been surprisingly common to see critique towards agile lately. I find it a bit odd, having seen the waterfall world and how much more humane agile has been. It can be easy to overlook how fundamental agile principles remain for surviving fast-paced, complex software projects.
#dev
Consulting can be understood and done in many different ways. These are my thoughts on that.
Estimating software work is difficult, as we usually are in a complex, not complicated domain, and we know what the solution will look like and how long it took to create, after it has been validated with the end users. Days, weeks, months -scale should be enough for estimation, and if you need more detailed than that, you should probably stop and think why, and how to change that.
Remote work has different requirements and success factors than co-located work. Trying to mimic co-located work in a remote setting leads to inefficiencies and misses the potential benefits of working remotely. GitLab has published a Leading remote teams -course on Coursera and I went through it to get new ideas on how to improve my work, and they really do have some interesting ideas. Asynchronous workflows is one fundamental one.
Estimations made in the planning are forecasts and their reliability depends on both the experience and on the length of the time scale they cover. Using the word commitment can make planning more intimidating than it needs to be. The estimation itself is hard, and I don’t think I’ve ever seen it done too well, so it would be good to get all the stakeholders to understand that, and work towards better predictability together.
Creating software is complex, and we are all the time facing problems we are solving for the first time in our lives, possibly with the tools we haven't mastered yet. That can be a lot to bear and a source of anxiety. By being vulnerable and admitting you need help, you can start creating a safer environment.
An explanation of Java's four reference types — strong, soft, weak, and phantom — and how they interact with the garbage collector for caching and object lifecycle management.
A recap of participating in the first Hello World Open coding competition in 2012 — building a Pong AI client in Java and finishing 26th out of 200 teams.