Pitfalls of writing software alone

I’ve published a new story on the Coding with Empathy blog. Here’s an intro.

The power of one

There’s nothing like being able to work on a project by yourself and having complete control of every single aspect of the solution. Everything from the front-end stack to the storage. Using the latest and greatest frameworks and libraries. This is heaven for any software developer. But regardless of any of the above technology-focused aspects, there is one major advantage being that single developer, namely: speed! But there are pitfalls when writing software alone.

When a developer knows every aspect of a system, they have a mental map of the code and the problem domain. They know how the code flows, how business rules are implemented, the architecture and sometimes even the line-numbers of specific functions! Having this mental map is a tremendous advantage, but is only possible because there is no need to communicate with other developers.

Being socially unacceptable

Being the only developer that delivers and end-to-end solution also leads to a feeling of great pride. It’s like being superman. The feeling that people can throw anything at you and you can get it done. Bring on any challenge and you will be up for it. Confidence in your solutions and decisions.

Everything isn’t really shiny in solo-town, though. For many, this ever-growing feeling of confidence can spill over to overconfidence which leads to a larger ego. Egos require constant feeding, and may lead to many interactions that don’t end up going your way in the long run. When challenged you have so much confidence in your approach or opinion that you completely ignore others perspectives. You enter tunnel-vision mode and may end up discussing or even arguing to get your point across. This could be with other developers, leaders, users or even clients. Just because you believe you know what’s right in a given circumstance, doesn’t mean you can force the solution on others. Doing so will alienate everyone else in the process then you’ve started digging a hole in which you’re going to find hard to climb out of.

Some leaders adore these people. They come in, say harsh words that force change then move to the next project. This may be a very efficient way of getting ones point across, but it’s definitely not the most effective in the long run considering all the people who are forced into a decision. Being right doesn’t give you the right to be inconsiderate.

Continue reading on the Coding with Empathy blog.

 

Starting an empathic journey

As part of my quest to be exceptional, I’ve been searching to discover what I’m passionate about as a software developer. I feel a pull in so many directions, but I guess that’s natural given our profession and the diversity we’re exposed to.

Some people have found their calling and are producing wonderful content that provides tremendous value to others. What I’ve been wanting to do is figure out what my special sauce is. What is that I can bring to the table that can provide some value to others and at the same time not drown out in all the noise?

Well, you’re here and you’ve read the title, so you may have guessed it already: Empathy

I am no sort of expert on this, but I find myself fascinated and attracted to the concept of infusing empathy into all aspects of software development. I care about my craft, and I care about boosting my career. But even more I care about doing so with a softer approach than what is out there already. I hope to create a site with an empathic view to the challenges new and experienced software developers face.

Please feel free to reach out if you have any ideas / thoughts / recommendations on this topic. I would also like to hear from any of you that don’t see value in a site like this.

So I’d like to welcome you to an empathic journey: http://codingwithempathy.com

Moving the blog

I’ve just moved the blog from the free wordpress.com site to a hosted vps-variant on pavsaund.com. I see there are some visual differences in the theme, but I think most of the content has been moved as expected.

Please do let me know if there’s anything that doesn’t seem to be working. 

Need to figure out if there’s a way to set up a permanent redirect 301 from the old blog. I see that there’s a paid service, but I don’t really have a lot of traffic. Please do shout out if you have any tips on this.

Making the right thing work before making it work right

plane - CC https://www.flickr.com/photos/deanhochman/20769348728

I’ve been a SOLID1 fan of TDD over many years and have spent a lot of time drilling myself in writing tests first to drive applications forward. I truly believe I have been at a place where my BIT has been FLIPPED. There are occasions though when attempting to write tests first have just been hard and completing a feature with test-first has been a record in will power and what felt like an eternity to deliver a feature. But if it was easy then everyone would be doing it.

Continue reading

Long live Code Reviews! Code Reviews are dead!

code.close() CC: https://www.flickr.com/photos/ruiwen/3260095534

Let me introduce you to Skybert (pronounced Sheeburt, for those of that haven’t grown up in Norway). He’s my imaginary developer-friend currently working at Mega Enterprise Inc Ltd Corp. He’s been butting heads with the lead developer, Jack,  for a while now. They don’t seem to be seeing eye to eye on a feature that Skybert implemented. You see, Jack doesn’t like how Skybert writes his code. Formatting is wrong and he uses way too long variable names, and he doesn’t write a single comment and…(list goes on)! Jack hates reviewing Skyberts code. Skybert usually gets his code back from Jack, with a long list of TODOs. So Skybert goes off to re-do most of his work just to give it back to Jack…When Jack’s finally happy with the code; It adheres to his preferred coding style and uses the correct enterprise patterns that have been decided upon. He allows it through the magic gates to master. Continue reading

Sticking with the change

Nasty Habit

I have been open and committed to my desire to change. Or rather push myself to professional excellence in my areas of interest. Through this I’m creating tangible goals… so this should get me all set up, right? RIGHT!? …

How to go about change though? Given the desire to push myself to new heights and at the same time change several aspects I’ve embraced the blogosphere again. But have I started out on the wrong foot?

Continue reading