3 Core Principles from 1998
Core Principles (as I wrote them many years ago):
1. Smaller is better than larger
2. Understood is better than unknown
3. Progress is better than promises
Smaller is better than larger
There was nothing else written and I left nothing by way of context... regardless of what it meant then, it is clear that this is a great principle when it comes to code. Less code that does the same amount of work is better. The paradox is that it may take a little more time to develop a smaller code solution, but it pays off. The skill is in not being so abstract and so small as to not be readable or maintainable. It is this balance that makes a true software craftsman.
Understood is better than unknown
If there is one word that we would use to describe the issues of software development... it is the the "unknown". Estimating the known is easy. Estimating the unknown, is unknowable. The skill in software development is to separate the unknowns from the knows. Estimate the knows and provide a SWAG estimate for the unknowns... these are estimate that you need to keep in check. It is best to delay the estimates / work on the unknown until ( what Kevlin Henney brilliantly describes as) the last responsible moment.
Progress is better than promises
This is why I have been a practitioner and trainer for XP and agile practices for many years. It is all about developing business value on a regular and iterative basis. Promises are meaningless... progress is all that matters.
Happy New Year!!
About Ken Sipe
Ken Sipe is a Technology Director with Perficient, Inc. (PRFT), IBM's largest service partner, where he leads multiple teams in the development of solutions in the SOA, Web 2.0 and portal domains, on both the Java and .Net platforms.
Ken was the founder of CodeMentor, where he was the Chief Architect and Mentor, leading clients in the execution of RUP and Agile methodologies in the delivery of software solutions.
Ken has a deep need to be highly diversified. Ken often works with IT executives on high-level strategic roadmaps, currently geared around service oriented architectures (SOA). Ken also likes to keep his hands "dirty" in the code, which has him on a regular basis, pairing or otherwise producing code. Ken is regularly requested by clients that know him to "rescue" projects, either through the streamlining of processes or the rapid production of code.
Why Attend the NFJS Tour?
- » Cutting-Edge Technologies
- » Agile Practices
- » Peer Exchange
Current Topics:
- Core Java, JEE
- Groovy, JRuby, Scala, Clojure
- Hibernate, Grails, Spring, JSF, GWT
- Ajax, Flex, RIA
- more...
NFJS, the Magazine
December Issue Now Available- Hibernate Performance Tuning, Part 2
by Scott Leberknight - Virtualization for Development
by Pratik Patel - Emergent Design & Evolutionary Architecture
by Neal Ford - Writing Secure Code with ESAPI
by Ken Sipe