Today's Question:  What does your personal desk look like?        GIVE A SHOUT

 SOFTWARE DESIGN


  One interesting story about Chinese software development

I have once seen an interesting complaint written by one foreigner about Beijing South Railway Station (China) on foursquare. It says: "There is simply no way to buy a ticket at the machine unless you have a Chinese ID. What the hell they have English interface for then?"Apparently,the foreigner cannot buy ticket because he doesn’t have Chinese ID but there still presents an English interface for foreigners on the vending machine. Because of my profession, I find this awkward situation worth discussion. The complaint from foreign friends poses a typical question for Chinese software deve...

4,433 0       SOFTWARE DESIGN USER EXPERIENCE IMPORTANCE


  #46 – Why software sucks

No one makes bad software on purpose. No benevolent programmer has ever sat down, planning out weeks of work, with the intention of frustrating people and making them cry. Bad software, or bad anything, happens because making things is hard, making good things doubly so.The three things that make it difficult are:Possessing the diverse skills needed not to suck.Understanding who you’re making the thing for.Orchestrating the interplay of skills, egos and constraints over the course of the time required to make the thing.Individually these challenges are significant, but combined they cre...

1,932 0       SOFTWARE DESIGN SUCKS SOFTWARE INDUSTRY


  How to write good requirements

Requirements are pretty ubiquitous in the embedded world. They are used to define tasks, help coordinate large development efforts, and to communicate the behavior of the desired end product between the developers and the customer. When done right, requirements can be very useful. Unfortunately, if you spend much time working in the embedded world you quickly discover that there are a lot of bad requirements. And then when you try to go fix them, you quickly discover that writing good requirements is hard. Here are some tips that will hopefully make the process more clear:At a high level, the ...

2,937 0       REQUIREMENT GATHERING GOOD REQUIREMENT


  Pair Programming: The disadvantages of 100% pairing

I’ve written a lot of blog posts in the past about pair programming and the advantages that I’ve seen from using this technique but lately I find myself increasingly frustrated at the need to pair 100% of the time which happens on most teams I work on.From my experience it’s certainly useful as a coaching tool, as I’ve mentioned before I think it’s a very useful for increasing the amount of collaboration between team members and an excellent way for ensuring that knowledge of the code base is spread across the team.On the other hand I no longer see it as the...

2,378 0       SOFTWARE DEVELOPMENT PARING DISADVANTAGE


  The Value of the Designer Who Codes

"Well, it's a start, but basically it stinks," said Steve Jobs, telling early Apple engineer Chris Espinosa exactly how he felt about the company's first calculator application. Iteration after iteration, Jobs continued to be dissatisfied with the calculator. Espinosa continued to code, slowly inching his way to perfection. But nothing was quite right. In a flash of both brilliance and perhaps frustration, Espinosa put together a visual builder that let Jobs design the calculator himself by changing the thickness of the lines, the size of the buttons, the shading, and the background, without ...

3,233 1       DESIGNER CODER VALUE DESIGNER KNOWS CODE


  Reducing Code Nesting

"This guy’s code sucks!" It’s something we’ve all said or thought when we runinto code we don’t like. Sometimes it’s because it’s buggy, sometimes it’sbecause it conforms to a style we don’t like, and sometimes it’s because itjust feels wrong. Recently I found myself thinking this, and automaticallyjumping to the conclusion that the developer who wrote it was a novice. Thecode had a distinct property that I dislike: lots of nesting. But the more Ithink about it, the more I realized that it’s not really something Iâ€...

3,167 0       MAINTAINABILITY CODE NESTING READABILITY REDUCTION


  10 Things Beginner Developers Should Know

If you are a novice developer, it might be confusing about where you should start, because the field is broad and provides many options for you. There are so many questions you might ask yourself, such as “What programming language should I learn?” or “Should I also know front-end, or only back-end?” And I am sure there are much more than that. Well, in order for you to be able to start with an advantage against the others, I’ve decided to help you start your career as a developer with the following list of tips.1. Decide upon the skills you wantWhen starting out...

3,700 0       ADVICE SOFTWARE DEVELOPER BEGINNER


  Why developer-friendliness is central to API design

Today, APIs play a bigger role in software development than ever before. The evolution of computing has been dominated by ever-increasing levels of abstraction; the use of higher-level languages, of course, but also the development of platforms, libraries, and frameworks. Professor Douglass C. Smith claims the progression of this second category far outpaced the development of programming languages.  Developers are also noticing that difficulty has shifted from designing algorithms and data structures to choosing, learning, and using an ever-growing set of APIs. Yet, many developers may b...

1,873 0       API USER FRIENDLY SIGNIFICANCE IMPROVE QUALITY