October 2013 Newsletter
If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea. –Antoine de Saint-Exupery
It’s a curious thing about our industry [software development]: not only do we not learn from our mistakes, we also don’t learn from our successes. –Keith Braithwaite
The effective programmer is keenly aware of the limited size of his own head. –Edsger W. Dijkstra
Development estimation for software projects is definitely more of an art
than a science (at least, at this point).
This article doesn’t claim to solve all of the intricacies involved in
estimate a development effort, but it gives some principles for how to do it
based on the premise that every new piece of software is a machine that has
never been built before
http://diegobasch.com/software-development-estimates-where-do-i-start
Scott Hanselman makes an excellent observation
about the myth of developers who are significantly better than the average
(sometimes called “10x
developers”). He emphasizes that
most projects are team efforts and organizations should focus on developing
high-performing teams, by looking at the particular skills of each team member. Of course, there are some who disagree
with this view.
http://www.hanselman.com/blog/TheMythOfTheRockstarProgrammer.aspx
Most of us have probably worked with someone who would give up trying to
solve a technical problem without going very deep (or someone who would spend days trying to figure it out on their own). This article suggests a good solution to
these conundrums where the person spends another 15 minutes, including
documenting what they’ve tried, and then must ask for help. This helps to strike a balance between giving
up too soon and spending inordinate amounts of time struggling for a solution.
https://blogs.akamai.com/2013/10/you-must-try-and-then-you-must-ask.html
Most managers operate primarily on metrics of some sort. This article makes the relevant point that using
metrics requires a certain level of maturity both on the part of the individuals/managers
and the organization as a whole.
http://blog.smartbear.com/project-management/effective-metrics-use-isnt-all-about-the-numbers/
Organizational culture is one of the
most important factors in determining productivity and success in
application development. This author
explains 10 factors that he believes are key to a
healthy, effective programming culture.
http://www.theeffectiveengineer.com/blog/what-makes-a-good-engineering-culture
If you think about “difficult” projects that you’ve worked on, you’ll
probably recognize that it wasn’t technological limitations, but interpersonal
problems (so-called “soft
skills”) that were the main pitfall.
This author suggests that the current “growing pains” with agile methodologies
are mostly rooted in the same fundamental problem.
http://blog.martinig.ch/quotes/software-development-is-more-about-people-than-technology/
This article emphasizes the agile principle of “people over processes” by
noting that user stories are intended to describe functionality and behavior
that adds value and not to waste time on formality and preparing stories for
non-value-added items.
http://gojko.net/2013/09/30/writing-as-a-user-does-not-make-it-a-user-story/
One of the interesting aspects of the agile development methodologies is
that most of them came about just about the time that our world became “highly
connected”. With the ubiquitous
connectivity, many development teams are now widely distributed, while quite a
few of the agile principles emphasize co-location (for example, “stand-up
meetings”). This author suggests that
the next wave in agile will be how to adapt it for distributed teams.
http://37signals.com/svn/posts/3641-rethinking-agile-in-an-office-less-world
Most developers are familiar with the concept of “flow”: the situation where you are totally focused
on the task at hand and code just seems to pour from your fingers. This article looks at how to achieve flow in programming on a
consistent basis by reducing distraction.
http://open.bekk.no/flow-in-agile-software-development-what-why-and-how
While most of us probably don’t work on applications or web sites with this high of a profile, the problems with the health exchange web sites certainly show the value and importance of good design and testing in most any endeavor.
http://online.wsj.com/article/SB10001424052702304441404579119740283413018.html
As humans, we use tools to give ourselves an advantage: be more productive, simplify processes, and more. This comprehensive report explains how develop tools and methodologies influence the quality and schedule of projects.
This excellent article gives some ideas about how the test planning process varies between manual testing efforts and automation projects. He emphasizes that automation efforts are typically application development projects themselves and, accordingly, need to be planned as such.
http://www.softwaretestinghelp.com/automation-test-palnning/
Are you wanting to learn development for Android platform, but aren’t sure where to start? This excellent 12-part video tutorial series takes you step-by-step through the process, including topics such as consuming external services over HTTP and local data storage. (The course is essentially a gateway to try to get you to purchase the IntelliJ IDEA tool, but you can do the entire course using the free community edition of the platform available here.)
http://blog.jetbrains.com/blog/2013/09/17/android-for-the-busy-developer-free-12-lesson-course/
Keeping your hands on the keyboard helps your productivity. Here are over 5 dozen keyboard shortcuts for Google Chrome browser to help speed your web browsing.
http://www.shortcutworld.com/en/linux/Chrome.html
Even if you haven’t used it, you’ve likely heard about (or, at least, seen sites developed with!) the Twitter Bootstrap framework. This excellent six-part video tutorial series teaches you how to build a responsive web design, including navigation bar and footer with the built-in grid system.
http://vidinterest.com/playlist/enbeeone3/bootstrap-3-video-tutorials
If you are looking for a new job (or even if you just want to keep your skills sharp!), chances are that you’ll do some sort of coding during your interviews. This opt-in newsletter will send you a weekly programming puzzle and solution which includes an explanation of the solution and possible alternatives.
http://interviewsolutionsmanual.com/
If you are interested in moving to functional programming, but aren’t sure where to start, this article suggests transitioning by refactoring existing code from imperative to functional form. The author gives great examples of the core functional programming principles using JavaScript.
http://linusnorton.github.io/posts/refactor-to-functional/
October 2013 marks the 40th anniversary of Ken Thompson and Dennis Ritchie presenting their paper about the new operating system they had created: Unix. Ken Thompson said, “The scariest thing I’ve ever done.”
http://blog.smartbear.com/open-source/40-years-of-unix-and-the-scariest-thing-ive-ever-done/
As a child, you may have heard the phrase: Idle hands are the devil’s workshop. The grown-up equivalent is probably the mantra that you need to be doing something all the time and don’t waste any valuable time. Contrary this conventional wisdom, brain researchers have found that “mental downtime” is important for solidifying memory from short-term into long-term memory.
http://www.sciencedaily.com/releases/2013/09/130920094627.htm
We all have those “rules” that we live and work by. One of the original creators of Adobe Shockwave shares her tips for maintaining sanity on development projects, as a technical leader, and just with life in general.
http://www.ultrasaurus.com/sarahblog/2013/09/little-rules-for-working-life/
Everyone wants to be productive at their work. However, many times productivity is diminished by factors beyond each worker’s control. Here are some tips for how managers and the entire organization can improve productivity.
http://quickbase.intuit.com/blog/2013/09/24/10-ways-youre-making-your-employees-less-productive/
With real earnings stagnant over the past several years and a recent survey showing that less than half of job candidates negotiate salary, you would do well to heed these tips for effectively trying to get a little more money in your pocket when taking a new position.
http://www.javacodegeeks.com/2013/10/salary-negotiation-for-geeks.html
In this opinion (rant?), the author says that the political climate in the US is mostly to blame for the lack of technological advancements in telecom services and that this is preventing adoption of cloud technologies by business.
Concord is a simple, web-based outlining text editor built with JavaScript. It works just like other browser text editors, except that pressing <Tab> or <Shift>+<Tab> indents or outdents text hierarchically.
http://scripting.com/2013/09/16/concordOurGplOutliner
Freelan is a free, open-source VPN application. It supports both peer-to-peer (direct) secure connections and traditional server-based VPN connections, as well as, hybrids of the two. The focus of the application is on performance and security, but usability improvements are in the works.
JetBrains has just released a new version of their excellent PyCharm IDE for Python and they now have a free, open-source community edition. It is limited to pure Python development and, therefore, doesn’t include all of the additional tooling of the commercial version, but it is still a competent and full-featured IDE. It includes code completion, integrated debugger, support for virtualenv, integration with Git, Subversion, and other popular version control tools, and much more.
http://www.jetbrains.com/pycharm/download/index.html
FlashFirebug is a Firefox add-on that allows debugging of ActionScript 3 Flash content in your browser with an interface similar to Firebug. By integrating with Firebug, Flash debugging can be done in a familiar and integrated manner along with CSS, HTML, and JavaScript.
http://www.o-minds.com/products/flashfirebug
Have you ever wondered if the Enterprise from Star Trek is bigger than the Galactica craft? Wonder no more! This amazing chart shows the relative sizes of hundreds of space craft from the world of sci-fi.
http://www.chartgeek.com/spaceship-size-comparison-chart/
Even after more than 35 years, the opening text crawl from Star Wars is still spine-tingling. This guy re-created the whole thing using HTML and CSS. And he even provides a detailed tutorial on how to build it.
http://codepen.io/TimPietrusky/pen/eHGfj
Many times it’s hard to understand why some video games captivate our imaginations and take on lives of their own. Even after 20 years, Super Mario Kart still inspires us. Here’s a browser-playable (and still being enhanced) clone of the game written in HTML5 Canvas and JavaScript.
http://www.mazeware.com/games/html5/m7/supercanvaskart.html