There are many articles regarding essential knowledge for software developers but with this one, you won’t need any other, here comes the ultimate list!
In my previous post Are developers like instrument players? I have posed a concluding question “Are developers paid only to write the code?”
Now I will go into lengthy details, joining discussion present on a couple of blogs.
HoM&M Concert thoughts
While waiting for the concert to begin, I was observing the preparations being made on the stage.
And thinking: how does it compare to software development?
Conquering concurrency one at a time
In this short article I will not be touching any asynchronous code or concepts. It will also be not about eventual consistency.
There are specific situations when we may have problems with the other type of concurrency, and the biggest problem is discovering the possibility that the system allows for data to be overwritten without end user’s intentions.
The solution is easy.
And not a feature
How can something not be a defect in the system, and still be an unquestionable bug from the business side?
It happens often, missing a key functionality not allowing a business process to be completed but a low priority from a developer’s perspective.
But how often a bugfix becomes a bug itself, while not introducing any issues with the fix?
Imagine one situation that is freely based on some past project…
(and how we broke the Gmail)
A simple assumption. An action is performed at a given time, so it can be a unique value used for sorting by date. Right?
Gmail developers thought that way, and it seems they were not entirely correct.
On one of the cold nights of the Autumn 2016…
System integration reviewed
The system integration tips presented here are to achieve data integrity, performance, quality, cooperation, and finally fewer support issues.
Tips are based on an integration with web service communication and data transfer between at least two parties.
If you prefer bullet-point version of best practices, scroll down this page.
In this technical article, I will present the full picture of web services, basing on WCF technology over HTTP using IIS when going into details. Both beginners and experienced developers may use this article as a checklist of things they already know or want to learn.
By the full picture I mean from a need to have a web service, choosing web service type, correct configuration (e.g. security), deployment environment, to testing tools. I assume you have already created your “Hello web service” application, or just want to have a closer look at the topic.
Legacy project – I have no idea what I am doing
Have you recently started a job at a new software company or changed a project? Maybe even after two years the legacy app you maintain still makes no sense to you? This article presents tips on how to get into complex projects quickly.
Just a small update – I have added a Resources page which I will update from time to time. That page contains the books and sites I recommend, so I am going give some time new “candidates” before I update my list.
I was thinking about adding tools and add-ons as well but they become outdated after a year or two, so I will most likely focus on main Resource categories and do not update Tools often.
Whenever there is something to be done in a production environment (like a quick UPDATE), or you wonder how you should organize environments – tips below may be useful.
Searching is a speed
All information about a programming language or a project can’t be stored in one’s head.
By searching, a developer can expand his virtual memory onto anything he can search well.
Quick finding is helpful when developing, and priceless when debugging a critical error from production.
Let’s get started to practices around searching.
Leaving a job
Even as developers, we can find ourselves in bad workplaces. Too much or not enough processes, spaghetti unmaintainable codebase, over-engineered solutions, lack of automated testing, poor planning, old technologies, long manual builds, to name a few.
The most popular solution to all these problems is a job change.
We want improved companies, but do we at least try to improve them? Why we do not change current jobs to be a new, better ones?
E-mail is unreliable
Having worked on various projects where e-mails were used I came to this exact conclusion. E-mail is unreliable, as a medium.
It is not obvious while coding it happily, but certainly gets painful after doing maintenance over an application for a prolonged period of time.
“I’ve sent an e-mail and now it’s not my problem” attitude, assumption that an external component always works, will bring trouble to the final product.
Let’s look at using e-mail in the app-wide, business-wide perspective.
Security in the web
Security in the web development offers some different challenges comparing to desktop application security.
The most important fact is, in the web development, we do not control the client – the web browser.
Always on-time, more at the same time, quicker, under control, planned, delivered. Productivity topics should be important not only for developers but for their bosses and clients as well. Being productive outside of a programming world won’t hurt either.
Below are general points about productivity explained from a developer’s standpoint.
One of the most embarrassing things for a professional developer happens when a closed issue for a bug is reported again, and it looks that the bug is still alive.
Is this blog for you?
The closer to software development the better. While some posts may be technology-specific (.NET world), most are not going to be. You will be exposed to architecture and productivity topics. Other than these two, software development in general will be the best description of other content.
Architecture – by architecture I mean how everything will work together in general, design and business considerations.
Productivity – by productivity I mean doing certain tasks faster (smarter), having workshop-improving practices, also achieving your goals. Shipping.
Software development in general – interesting stories from past projects, workplace and company organizational topics.