Nowadays, it is a common practice to give software developers freedom in choosing the activities they want to do. No boundaries in the technology stack, ability to work on a personal project, absolute freedom in tool selection — these are common trends in software engineering. However, there are some areas where developers have to be controlled and controlled a lot. Can you guess these areas?
Read MoreEvery developer faced a situation when he wrote a piece of code that works inexplicably. It is magic! — he says. But why a developer think that this is magic and not a consequence of some internal processes execution? And what should he do with this magic?
Read MoreYou have to be proactive! Every newcomer hears this mantra from HR, manager, scrum master, and pretty much everybody from the organization layer. However, it is not always clear what it means and how to bring this proactivity into life. Let us see possible applications and best practices of proactivity in software engineering.
Read MoreAfter 15+ years of work in software development, I collected quite a lot of ineffective, pointless, terrible, stupid, awful, and dangerous practices of managing application requirements. So, here is my personal Top 5 of the worst practices you should avoid at all costs.
Read MoreSoftware Design Patterns are widespread in nowadays development process. Design patterns are in any application, people ask about them on technical interviews, and many books describe them as a silver bullet. However, there are different opinions on this topic — let us see what developers think about design patterns.
Read MoreSoftware engineering is an area that uses specifications a lot. They may come in different forms, but one of the most common ones is UML diagrams. However, do developers need to know it, or this is just a useless piece of knowledge?
Read MoreComponent Lead is a relatively rare role in software engineering. In short, this is a person with in-depth knowledge in some area and entirely responsible for interaction with it in a project. Let us look at this role and see how it can be beneficial for the software development process.
Read MoreDevelopers often complain about the complexity of the software they have to develop or support. They mention application architecture, amount of supported code, code complexity, business requirements, and the way customers use an application (user experience). Let us have a look at the most prevalent complaints, underlying issues, and ways to deal with them.
Read More