Title: Oh Grow Up!!
1Oh Grow Up!! Going From Kiddie Scripter to
Software Architect Simon Horwith CTO, eTRILOGY ltd
2Overview
- Introduction
- Who am I?
- Who are you?
- Us and Them
- The us and them attitude developers have
towards - So called gurus and themselves
- ColdFusion and other programming languages
- Additional Factors
- Control your environment!
- Office rules and processes
- Bridging the gap between Us and Them
- Change your thinking
- Communicate with your team
- Control your environment
- Practical coding techniques/suggestions
- The Bottom Line
- Summary some simple rules to remember
3Introduction
- Who am I?
- Member of Team Macromedia
- Macromedia Certified Instructor
- Architect
- Developer (ColdFusion, Flash, Flex, etc.)
- Who are you?
- ColdFusion Developer
- Project Manager interested in raising the skill
level of the developers who you manage
4Us and Them
- Many ColdFusion Developers
- Have a preconceived notion that certain other
developers are gurus and that there are
mysterious differences between themselves and
these people - Develop their skills based on exposure to new
techniques as-needed - Develop their existing skills to a certain point
and no further - Believe that ColdFusion is not in the same league
as other programming languages - WHY?
5Us and Them Demystified
- The notion that there are mysterious differences
between so-called gurus and everyone else is
due largely in part to the assumptions that it is
either their natural code-writing ability or
their vast experience that makes them so good - What really makes the experts different
- Patience
- Research
- Experimentation
- Passion
- Experience
- Experience is the least important difference
6Us and Them Demystified Patience
- Top-quality developers
- Appreciate taking time to think and plan before
they write a single line of code - Assess the situation before action when an error
occurs - Know that immediate results are not the first
priority. Flexibility and ease of maintenance
are the best qualities of any code base - Know when to stop banging their head against the
wall and walk away from a bad situation
7Us and Them Demystified - Research
- Top-quality developers
- Try to solve problems themselves by doing
research - Know where to look for answers to problems
(Macromedia.com, Google, list servers, etc.) - Arent afraid to learn new technologies and/or
skills - Question everything, including their own code.
They look for ways to improve their own code.
8Us and Them Demystified - Experimentation
- Top-quality developers
- Recognize that it is often quicker to write a
quick test case using simple data than it is to
ponder, research, etc. - Experiment with
- different methods of organizing code
- different methods of passing and storing data
- new functionality as soon as it becomes available
- alternatives (sometimes including other
technologies)
9Us and Them Demystified - Passion
- Top-quality developers
- are passionate about what they do
- strive to do better
- It is this passion that drives them, more than
anything, to patiently look for solutions,
research solutions, and experiment.
10Us and Them Demystified Experience
- Top-quality developers do generally have a lot of
experience. - This is not a prerequisite!
- Though its not a prerequisite, top-quality
developers learn from their mistakes and from the
mistakes of others. Theyve seen and made a lot
of mistakes along the way, which is why they
appear to know so much now.
11Us and Them Demystified ColdFusion is not
just for kiddie scripters
- Top-quality developers
- Have respect for themselves as professionals and
for the power of their platform (ColdFusion) - Approach developing applications with ColdFusion
the same way that a Java, C, or any other
developer would approach developing software in
their respective environment. - Use the terms ColdFusion Development and
Software Development interchangeably - Appreciate that though ColdFusion makes it easier
to achieve results, it also makes it easier to
write bad code. There is no excuse for writing
bad code. They also appreciate that because
common tasks are made trivial in CFML, they can
spend more time concentrating on more complex
tasks and business requirements. After all
this is where the true power of ColdFusion rests.
12Us and Them Revisited
- We said before that many to most ColdFusion
Developers - Have a preconceived notion that certain other
developers are gurus and that there are
mysterious differences between themselves and
these people - Develop their skills based on exposure to new
techniques as-needed - Develop their existing skills to a certain point
and no further - Believe that ColdFusion is not in the league of
other programming languages - How do the traits frequently displayed by gurus
(patience, research, experimentation, passion,
and experience) and the respect they have for the
platform make them different?
13Additional Factors
- The environment in which you work has a huge
impact on your performance - Many top developers find that listening to
certain music or styles of music aids them in
their code-writing - Top developers often work in an environment that
has well-defined business and development
processes (specification writing, data and
application modelling, code reviews,
documentation, Q/A, etc.). These processes not
only keep things within a company consistent, but
help developers to learn and perform better and
more deliberately and consistently - In addition to music, the rest of a developers
surroundings also impact on performance. - Community activities encourage learning and
interest. Most top developers attend and/or
present at CFUGs, conferences, etc.
14Bridging the gap between Us and Them
- So where do you go from here to begin down the
path of becoming one of them? - Change your thinking
- Communicate with your team
- Control your environment
- Remember some practical coding techniques/suggesti
ons
15Bridging the gap between Us and Them - thought
- The first step in changing the way you think
about and approach development is to meditate on
the US and Them characteristics already
described and to begin taking more time before
you code - Take time to research what other people are
doing/have done with ColdFusion and learn to
fully appreciate its potential
16Bridging the gap between Us and Them -
communicate
- If your company doesnt have formal processes for
documentation, specification writing, code
reviews, and/or data and application modelling
(ER Diagrams and/or UML), talk with your project
managers, boss(es), and/or employees about
putting processes in place - If you arent already doing so, begin holding
regular internal training seminars and/or attend
formal training, CFUG meetings, and other
conferences. Get your company involved in these
activities.
17Bridging the gap between Us and Them -
environment
- Experiment with listening to different styles of
music while you work see what, if anything,
works for you - Make your work environment ideal for doing work
and play. - Hint if you had an unlimited budget to purchase
one piece of office equipment, what high-price
item would you buy? Most developers immediately
say theyd buy a PC or laptop. Id buy a chair
the most fantastic, comfortable chair that money
can buy. Thats the one piece of office
equipment you shouldnt try to save money on.
18Bridging the gap between Us and Them - code
- While there are no 100 guaranteed rules for
development that apply to every situation, there
are a few coding rules that you should keep in
mind - Never connect with an external resource,
especially for the same data, more than is
absolutely necessary - Avoid looping when you can
- Do some design pattern research MVC, façade,
etc. and think about how you might use them - Write code in as reusable and flexible a manner
as possible 80 of your code should be inside
of CFCs and Custom Tags - Comment, comment, indent, and comment
- Practice writing recursive code its extremely
powerful. - Recognize that recursion is not only extremely
powerful but extremely dangerous - Remember that sometimes its faster to run two
small blocks of code rather than one big one
(this is true for SQL as well). - Think about performance optimisation last
achieve it through server configuration, code
reuse, and taking advantage of server memory - Look for ways to rewrite your code and others in
a more optimal way
19Bottom Line(s) a few Golden Rules to remember
- Never spend more than 10 or 15 minutes on
anything! - Dont be afraid to step away from a problem or,
God forbid, ask for help. - Never be afraid to make mistakes learn by
doing. - There are two traits that ALL top developers have
in common and that you must also develop - they use common sense when assessing problems and
devising solutions! - They are confident!
- Question all things. This not only includes your
own code and other peoples code, but best
practices in general. Youd be surprised how
many best practices are actually poor practices
under the right conditions. - If youre not having fun, why are you doing it?
- Make work fun!
20End
- Thank You
- Questions/comments may be sent to
simon_at_horwith.com