Solving the Right Problem

Have you noticed how many books on software development have a chapter/section devoted to guide the reader on how to spot the right problem to solve and avoid wasting time and effort? They are many I would say, and they tackle the issue from different angles – when gathering requirements, when planning next sprint/iteration, before coding – and providing several techniques – using examples, polishing user stories, avoiding to polish user stories.

This makes you feel a little bit like for fifty+ years there have been many of us struggling with the same problems and several have succeeded in their quests and have documented their findings. Making a software bible out of the best titles doesn’t sound right. Just to propose choosing the “best titles” should unleash the Wrath of God. But we still need this one source where to concentrate knowledge and if there were someone to guide in the learning process… Dreamy.

These books you usually would read after you’re finished becoming an engineer. You know, after five years of preparing your brain to solve problems with Mathematics, Geometry and Physics, and, learning generalities on computing-related matters like networking, programming, IT auditing, etc, won’t get you too far on your first programming job when you discover you should not use JDBC but some JPA layer in the JEE architecture to make that query. Difficult.

Adding more years to school is not a solution. Actually everybody is trying to make it shorter and easier to become an engineer so more people want to be one, regardless of the sucky professionals they might spit out to the market. Plain irresponsible.

What if universities teach basics and generalities for three years and then you have to choose an specialization, let’s say on software development, so that you spend two years learning the many ways to point at and solve the right problem. This is not new, it’s what they do in Psychology. Mastering all about computers nowadays reaches far beyond the eyes can see and competitivity won’t forgive those who know a bit of everything. That’s knowing nothing.

Spending two years learning structural, object oriented, functional and more programming and how to test it will sure make a better programmer. Learn formal and agile methodologies to track your project growing will make you at least aware of the tools at your disposal. Learn TDD, BDD, specification by example and you will aim your effort to the right problem. Have a teacher assisting you in the learning process of something you chose to get good at and those two years will be a delightful journey.

What I mean is education on computing science at under degree level should rely on specialization during the last years.


One response to “Solving the Right Problem

  1. Patricio Proaño

    I totally agree with you, but the biggest and sickest problem around our culture, is that nowadays, more companies are looking for cheaper professionals to do the job but with degree titles, it’s true that what you learned in college, you will use, maybe a 30% of it… after all reading a tech book, or getting a degree will not assure you through the rough road of applied technology… some great examples are, jobs, gates, and zuckerberg… sometimes the less complex looks funny but works better…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s