Foundation of Software Development
When you learn cooking, there are a few basic skills that need to be in place before you can get started: cutting, measuring, stiring and understanding of temperature's impact on food items. These skills are independent from what you want to cook: western, Chinese, Indian, Korean or Space Food.
The same applies to software development. Interestingly we try to delegate these skills to ui designers, architects, project managers analyst or infrastructure owners. To be a good developer, you don't need to excel in all of those skills, but at least develop a sound understanding of the problem domain. There are a few resources that I consider absolute essential:
As usual YMMV
The same applies to software development. Interestingly we try to delegate these skills to ui designers, architects, project managers analyst or infrastructure owners. To be a good developer, you don't need to excel in all of those skills, but at least develop a sound understanding of the problem domain. There are a few resources that I consider absolute essential:
- You need a basic understanding of project management. While contemporary experts would suggest to read the agile manifesto, I recommend to start with more mundane literature. Start with The Mythical Man-Month and The Deadline (the later being as entertaining as instructional), to understand what this is all about
- What does it take to run a software organisation and programming topics are discussed on Joel on Software. Having created Stackoverflow, Joel is a recognized industry authority. A must read is the Joel Test that gives an indicator on your development prowness (others disagree). So I'll ask you about version control and build process soon. Also an interesting read is the rant about the API wars
- Success requires passion, so read Creating passionate users. While it doesn't get updated anymore, it is a treasure trove of insights, how users engage with software. The author Kathy Sierra, created the incredibly entertaining Head First book series from O'Reilly
- Thomas J Watson Jr. famously stated Good Design is Good Business. So you want to know about it. Start with The Design of Everyday Things by Don Norman and let your guide be Universal Principles of Design. There's enough ugly software around
- A little more leaning towards concrete ways of doing things are the writings of Alistair Cockburn. After all he signed the Agile Manifesto. On the mandatory reading list for you:
- Writing Effective Use Cases: Even if you call them stories, inputs, requirements or whatever. Getting them right - not necessarily all at the beginning - makes your success rate jump.
- Crystal Clear: A Human-Powered Methodology for Small Teams. I have written about it before and it covers all the bases required to be agile
- Know your Software Design Patterns (known working solutions to a specified problem) and their evil twin the Software Anti-Pattern (typical failures in the attempt to solve a specified problem). Pattern originated in architecture (real buildings, not software) and are commonly attributed to object oriented software, but are not limited to it. Anti-Pattern can be found in all walks of life. There is an entire catalog of do and don't at your fingertips. Or go and read a book
- Test your software before you write it! That's what Paper Prototyping is all about. Test it while you write it, you can choose between Test Driven Development and Behavior Driven Development (including a framework)
- When you (re)design web experiences, have a look at this: Web ReDesign 2.0: Workflow that Works and Don't Make Me Think
- Read Jacob Nielsen's newsletter on Usability (part of nngroup.com)
As usual YMMV
Posted by Stephan H Wissel on 12 September 2014 | Comments (1) | categories: Software