New Year, New Look

The IT.Wox site has been dormant for a while & the site had gone stale.

Just in time for the New Year 2016, time to refresh & reboot!

So, here’s presenting the new look site: www.itwox.com

The Goals

  • Highlight what IT.Wox stands for (aka. motto/USP/theme)
  • Highlight the services/products of IT.Wox (aka. what we do)
  • Highlight some interesting aspects of the site (via Blog, News, Social etc.)
  • Support mobile & desktop browsers (gracefully degrade, where possible)

The Subtle Text

Being that we are a start-up (of 2 people, part-time!), the design had to be done in-house or rather by your’s truly. With $50.00/year (or less!) operating budget, the site has to deliver a message on a budget!

However, we need to support latest “web presence” requirements:

  • A mobile-first website
  • Branding & messaging
  • Social media presence
  • Site Analytics
  • Communications & interactions with web visitors
  • Modern web development standards (build – test – deploy)
  • Source control, Issue Tracker & Build Management
  • Scalable Infrastructure
  • Legal needs like privacy policy, disclaimers etc.

The Subtle-er Text

This site is an expression.
Of what we can do, of how we can do it & our whole philosophy/approach to the business of IT as it applies to consulting & development. It is an expression of our vision of a company & what we hope to achieve.

This site is an experiment.
Of technology, design & integration of various components which are needed for modern web development. In that sense, this site is not finished (& might never be!), we hope to keep it going forward each cycle to the next version with better improvements to reflect our current understanding & thinking about this business.

This site is an experience & instruction.
Of the details needed for running & maintaining a simple web site. While the scale is small/micro, the complexity & approach is still the same as any of the large site/applications out there. We will surely learn – from our experience, feedback from this site & other channels, to make it better. However, we could also be a source of knowledge for other developers out there & starting out on similar endeavors.

The Next…

In the following few weeks, we hope to post some of the interesting aspects of this site, few implementation details & hope you will read along and/or provide comments where due.

Happy New Year!

Read the Series:

Code Craftsmanship, is dying

A gloomy title, no doubt, but reality is Code Craftsmanship is indeed dying.

The Lament

Gone are the days when a developer would come in to work & not worry about going home till the code works, code comments meant something, the unit tests were written & passed.

Gone are the days when developers knew what code they had written & could recite it backwards if needed.

Gone are the days when the developer read other developer’s code like you would read the latest thriller novel.

Gone are the days when there were these “Coding Oracles” who knew everything about how to code & you stood in awe in front of them eager to learn & see how the genius went about doing his magic.

The Commercialization of Coding

Coding is now a commercial activity. Developers are the “machines” which are expected to churn out code faster & faster to meet the every demanding & insatiable appetite of the new “digital world”. Where is the time for deeper thought, reflection & impact analysis?

Commercial (a.k.a $$) interests is the name of the song & coding purity is just a wrong note which needs to be avoided for the symphony to be complete.

How many times have you heard a developer say: “I could not finish unit testing/review/documentation/commenting as I had to do (blah blah)”.

Sure, we can blame the developer for being lazy/late or the $$ being more important or the market timing being the more important factor etc. etc. for missing out one of the core components of any development activity.

Sure, we will also feel GREAT for the arguments we present for NOT doing something.

But, have you ever gone back to the original project plan & saw the contents of the plan?

In my recollection, I have NEVER seen a project plan without time being allocated for analysis, unit tests, reviews, documentation – all the fine things which make code complete.

Then why is it that the usual end product of the the effort is lacking these aspects? Where is the time, promised in the plan,  lost?

This is what I term as the “commercialization of coding” where developers & their leads, project managers, product owners – tend to think software (especially modern software) as having reached a level of maturity where these basic items can be missed & yet you will end up with a stable finished product.

No – it cannot be & it will not be, at least not till we define “Professionalism” in coding.

Professionalism in Coding

Traditional crafts like: plumbing, carpentry, masonry, architecture & construction, the auto industry have had a huge head start over IT.

While these industries are mature in the sense of their basic guidelines & principles, IT & consequently coding is still an evolving field where we are still learning new ways of doing things. Better processors, dual/multi-core processors are forcing us to think of new ways of writing our code to harness the powers unleashed.

But, unlike the traditional crafts where the apprentice has time to gain experience & expertise before he is given the immense responsibility of moving up the ranks, it is relatively easy in the Coding world to move up – especially if you are one of the so called: “knows the latest technologies”.

Unlike traditional industries where an building Architect will get sued for even a small design flaw in the construction of a building, Software Architects file everything under the guise of a “bug” & set priorities & release dates of when the bug will be fixed.

Don’t get me wrong – software development is an extremely “intellectual” activity with perceived easy of fixing issues and/or changing designs as compared to a physical building, but if we really look at the vast majority of implementations, it is painfully obvious that “Professionalism” is missing.

Professionalism – is the ability to be true to your craft & take all the steps necessary to know it to the best of your abilities & nurture, practice & hone your techniques over & over again before doing it on a real project.

Come to think of it – how many of you would feel confident if you were the very first patient of a dentist who passed out of college recently? Apply that to software – how many of the software architects today are designing highly complex systems on a completely new technology for the very first time as a “new & challenging opportunity”?

Footnotes

Commercial interests will continue to rule (& fund) projects, make no mistake.

But, what can you do so that even if you are part of that mill – you are being true to the business? Practice, practice & more practice is the only way IMO. Make your mistakes when you practice & reserve your flawless performances when you code in real life – the commercial interests expect it.

Before I sign off, please browse the following which echo some of the same sentiments:

Software Craftsmanship & Code Retreats with Corey Haines
http://www.hanselminutes.com/308/software-craftsmanship-and-code-retreats-with-corey-haines

Software Craftsmanship
http://www.alexbolboaca.ro/wordpress/my-take-on/software-craftsmanship

Jeff Atwood in his indomitable style:
http://www.codinghorror.com/blog/2004/10/we-make-shitty-software-with-bugs.html