Showing posts with label Personal Development. Show all posts
Showing posts with label Personal Development. Show all posts

Tuesday, June 23, 2015

How to Be an Organised Developer (and spend more time coding!)

As a developer your main focus is to write code. But over time, you'll find that there is a lot more to development than this. If you're not aware of this, you might one day wake up and realise that the notepad file you used for passwords and connection strings has gotten out of hand.

Being more organised from the start can help keep you focussed on coding and help you stay more efficient. If you move jobs you'll pick up a lot of information in the first few weeks, you'll want to organise it well from the start. If you stay in the same job for years, the 'other stuff' you accumulate can get messy and cumbersome.

Like good code, making an effort to organise yourself well from the start can pay dividends later on, when it comes to navigating and maintaining all your stuff. Here's a list of some of the "stuff" you'll find yourself accumulating as a developer, and how to keep it well organised.

OneNote (or Equivalent)

An essential tool for all developers.

The main thing this is useful for is storing essential information such as test data, database names, licence numbers for tools such as Resharper and Linqpad, and lists.

You can also use it for debugging information, screen grabs, functional specs, checklists and pretty much anything you can think of. OneNote allows you to organise all this quite effectively with its use of tabs and pages.

Note that by "equivalent", I don't mean Notepad++. You need your notes in one well organised and secure location (save your notebooks remotely), you don't want to have to worry about hitting "Save", and you also need to be able to paste in screen grabs, tables and other rich content. Evernote might come close but OneNote is trusted in enterprise environments which can give it the edge.

Logging Access

Pretty soon you're going to need to access logs for auditing, testing or debugging purposes. Remember to record all details in your note software.

Product Documentation/Wikis

As a developer you will probably be responsible for writing a lot of documentation. Make sure it's in an easily discoverable place and well maintained. Good code should be self-documenting, yes, but other stakeholders need to know what the code is doing from a non-technical perspective.

Bookmarks

You'll always have a selection of really important links. This might include:

  • Product documentation/wikis
  • Test Harnesses
  • ALM tools (TFS, Git)
  • Communication tools (Sharepoint, Trello)
  • Administration tools (Timesheets, financial, personnel software)
  • Development learning materials, tutorials, blog posts, communities etc. 
Figure out the best way to organise these based on your needs and make sure they're backed up and accessible everywhere (use Chrome/Firefox Sync or a bookmarks manager).

SQL Files

Most developers will probably have a collection of SQL files of common, useful queries, for logging, basic CRUD, etc. Make sure these are in an easy to access, secure, backed up and preferably remote location.

Macros

Specifically in Web Development, tools such as iMacros can be invaluable for automating frequent tasks such as logging in to test sites or running common actions on test harnesses. Remember, keep them well organised and backed up remotely using Dropbox/OneDrive etc.

Powershell Scripts and batch files

You might also have some PC management tasks that need to be automated. Powershell is fantastic for these kind of tasks, and is becoming even more useful with the advent of DSC.

Linqpad Scripts

Similarly, Linqpad allows for frequently used code to be stored and used in a lightweight manner without all the project overhead.

Code Toolbox

Finally, all developers should have a code toolbox, or a collection of libraries and code snippets they use regularly in their projects. This is a lot to go into so I will create a new blog on it, but basically it could consist of
  • Project templates 
  • Emailing library 
  • Cloud storage library 
  • Logging classes 
  • MVC Html helpers etc
The idea is to allow for Rapid Development by having everything you frequently need at your fingertips and not having to worry about finding code for frequently performed tasks such as input forms or membership features. As I said, I'll give this topic a blog of its own soon.

Conclusion

Hopefully this has inspired you to ditch that pile of text files and get your administrative stuff in order. Doing so will make you more efficient and help you focus on what's really important - writing code.

How do you organise yourself? Is there anything I've missed? Leave a comment!

Monday, November 03, 2014

Creating Value: The Key to Innovation


Creating is to bring about something new. The act of creating involves integrating two or more concepts together to create a new idea.

Value is typically that which adds value to one’s life, whether that be an individual, a group, or the whole of society. Values are benefits, improvements, they alleviate suffering, reduce cost, increase availability.

So how do we go about Creating Values?

You don’t need to be creative to create values. But you do need to utilize certain skills.

Given that Values are that which add benefits to one’s life, in order to create them, we must understand human needs.

Understanding Human Needs

To do this, simply Observe. Watch the world, and pay special attention to where people are happy or unhappy. Figuring out what makes them happy or unhappy is a key to creating new values. Try and find out what are the influences that affect happiness.

Also look at cost, efficiency, functionality and availability. Given that these criteria affect happiness, think about how can they be improved.  Many new values are simply existing values that have been improved. In fact, nearly all of them are. Again, creating involves integrating two or more concepts into a new idea. You will see this to be true when you start creating values by making improvements to what already exists. All you need to do is to take an existing concept and improve it by applying another.

Take the iPhone as an example. Apple didn’t invent the phone from nothing, they just improved on it by applying another, already existing concept to it – the touch screen. They then improved it even further by making it dual touch, and even further still by developing killer software. This multi-layering of improvements is perhaps the secret to their success – most new ideas are only single improvements of existing concepts.

Understand Human Responses

As well as looking at the status quo, pay attention to how individuals and society respond to changes. This information should be in abundance, given that the world is currently changing so fast and that this change is accelerating.

How people respond to change is very revealing. It shows how people really think, how they let their emotions, their desires, their hopes and their fears dictate their actions. It is their emotions which reveal what they value. Knowing what they value will enable you to create new value for them and improve their lives.

Engage

Of course you are a human too. So engage with others. Live your life alongside others and learn what makes you tick as well. You are the person to whom you are closest, so you have the unique privilege of seeing the innermost desires and emotions of yourself. Yes you are different from others, but humans share many common ideals, hopes and fears. Compare yours with others to help you figure out how can I improve this? How can I get more from the world and benefit myself? The answers will point you in the direction of how to create more for others and this is the nature of Creating Values.

Document Human Needs and Behavior

Humans are complicated and their behavior is not always predictable. However, when you understand human needs, you will be see patterns emerge. It is important to keep a record of these patterns not only to help yourself remember but so that this data can be analysed. This documentation will help you formulate a plan to create values based on human responses and needs.

Create Values Based on Your Observations

Design

When you figure out what makes people tick, how they respond to the environment, what drives them and what they see as benefits, you can begin the task of creating new values to take advantage of this knowledge. The first step, like it should be in all acts of creation, is deliberate design.

Design is about customizing an idea to meet certain needs. Often these needs might be aesthetic, and this can be very important, especially if your chosen field of value creation is artistic. But aesthetics are more of a “want” than a “need”. They are still important, especially with regards to improving culture, marketability, and sometimes usability, but they are not the focus of this article.

From a business/technological point of view, design needs to give most consideration to functionality. This is the attribute that will lend itself most to fulfilling human need. Functionality is the essence of a creation, its purpose, its reason for existing. Functionality should solve some human need, and that should be the focus of your design.

Work to incorporate some level of functionality into your created values – functionality that fulfills a human need. It should improve on a current concept in one or more areas. The more the better, but you may find that each improvement is the basis for a new tree of ideas – and every route can be followed to create numerous values.

Just remember the most important aspect of design and constantly ask yourself – how does this fulfill human needs?

Create

The often missed step of value creation is the act of creation itself. Turning the idea into a physical reality is perhaps more important than the idea itself. Many people have ideas, but until this idea is turned into reality – it is nothing more than an electrical signal that will disappear when you die. It does not have any effect on humanity, it will not improve anyone’s life, and it will not provide you with any income. Thoughts are nothing without actions.

Even designs drawn on a page are nothing until they are made into something real, because the design itself has no purpose, no impact.

Only when something is built in real life do you find out if it really works – and what its consequences will be. For every value creating action comes a seemingly infinite tree of implications, it’s impossible to know how your creations will impact everybody, and what effects they will have on the world.

This is our purpose, it's what gives life meaning. Your creations open the doors to other creators to build on your creations. Every creation is a combination of two or more existing concepts – therefore – your new concept will become one of the concepts in a whole new creation.

It is an exciting and noble route to prosperity.

Tuesday, August 04, 2009

The 7 Layers of Creativity

It is said that art imitates life. To be able to express oneself creatively is both powerful and fulfilling. True creativity resides within all of us, but because of the power of creativity those that aren’t ‘naturally gifted’ feel intimidated to even try. By breaking down the fundamental layers of creativity, we see that the process of creating art is not only simple, but can be applied to all activities of your life – whether you are organizing a file cabinet or painting a self portrait, these 7 steps will help you find art in all that you do in life.

Imagine you’re painting a picture. You find a nice spot, on the beach. You find an appropriate angle, where you will have an interesting view of the sea, with the beach and a palm tree coming in on one side. In the distance, there is a city skyline. It’s a perfect scene.

Now, many would assume that the creative process involves simply transferring this beautiful image onto a canvas, that this is what it takes to be creative. I’m here to tell you that creativity is in fact a much deeper process than this. It involves many layers of thought and meaning. The good news, is that this in fact makes it easier for anyone to get in touch with their creative side.

The Subject Matter Layer

In this example, nature has already given you a piece of art that anyone with a camera can share. Nobody should have a problem finding this layer. It is simply an observation, something interesting in the world around you. For a story teller, it could be an event that happened, or is imagined. It’s what your piece represents.

The Creation Technique Layer

In a painting, the next layer is the artist’s personal brush technique. A professional photographer will add this layer in a similar way with their choice of lens, filters, exposure etc. A writer will use their practiced techniques of arranging sentences and paragraphs. Any artist’s use of their tool of choice makes their work different from anyone else’s interpretation. This is a special layer of the piece that requires a lot of attention and is developed over an artist’s entire life.

Style is a very important part of this layer. The same image can be drawn in watercolor, charcoal, or pencil. Shading can be rendered in various ways, even the choice of paper is part of the creation technique. In all forms of creativity, including writing and music, there are infinite possibilities for style.

The Perspective Layer

Painting or photographing a picture is only the beginning of a creative exercise. What turns a generic photo into a piece of art, is perspective. The human holding the camera will always be an integral part of the piece.

In the case of our painting, it is the artist with the brush that provides this layer. They can chose how to present the picture. The audience should be forced to ask themselves, even if it is subconsciously, why has the artist chosen this perspective?

The Interpretation Layer


This is the layer where a piece will really begin to stand out. While the artist’s perspective gives a lot of depth and personality, their interpretation is where they have the opportunity to show something that might not be visible at first. Remember our painting. Well, the artist could see the city in the background as tarnishing the beautiful natural scene, and paint it in a way that makes it look grey, dull, maybe even sinister.

In this layer there is much scope to represent the scene in a way that is based on what it means to the artist, and the confines of reality need not be a limitation.

The Depth Layer

Your view of a cityscape from a beach has a lot more to it than meets the eye. Why is that city there? Who lives there? What are their lives like? What is their history? What does the future hold for them? Any of these factors can be brought into the painting if the artist wants to. As a very simple example, if the artists feels that the people of the city have been mistreated, he can draw something into the picture (or emphasize something that is already there) that represents this, such as a person looking sad.

Another way to represent depth is to think about the ways certain parts of the painting interact with each other. For example, the palm tree that frames the city brings shade to the beach, but it is still brighter than the city. Perhaps this illustrates how nature is more forgiving than the hand of man.

The Emotion Layer

All of the other layers will mean nothing, if your piece doesn’t provoke emotion from your audience. Quite often, your other layers will provide this simply with the story they tell, but perhaps they won’t. You should make sure that whatever else is going on with your creation, you think about how your audience is going to feel when enjoying it. It doesn’t matter if they’re happy, sad, angry, or shocked, just as long as they’re not disappointed. The emotion layer is so important it can almost stand on its own without the other layers.

Connecting with your audience emotionally is an art form in itself that takes a lot to master. There are many ways to press people’s buttons so I recommend you research this topic further. Ultimately, you must relate to their hopes and fears. Learn what makes people have certain emotions and incorporate this into your creations in whatever measure you see fit.

You could probably stop here, and you will still have a phenomenal, multi-layered piece of art that stands out to its audience. However, there is one more layer that you can add to your creations. This powerful layer can turn you from a hobbyist into a respected professional.

The Focus Layer

When you feel like you have enough layers to your piece, add one more. This layer does not add to the creation, but actually takes away. It hides many of the details, but those details are still present, underneath. They still affect the characters in our story. We have just focused in on what is important.

Poets understand this layer better than anyone. It is the metaphorical layer – the images they use to hide raw emotions.

Add this layer either by hiding the creation’s true meaning behind a metaphor, or by telling it from a perspective that does not give everything away. Your audience will still see the meaning, but it will give your piece even more depth. This is the magical layer, the layer that transforms an idea into a story.

Anyone can be creative

Although I used a painting as an example, these techniques can be applied to any and every kind of creative outlet. If you’re a writer, take an interesting event and write about it in your own unique style, using the perspectives of your characters. Give your characters history, emotions, and needs, and guide them using your interpretation of the story. Connect to your readers emotionally by relating to their hopes, fears, and dreams. Finally take this story and express it through a metaphorical veil, refining and clarifying the main points of your story.

Never again will you be able to use the excuses “I can’t draw”, or “I can’t play a musical instrument”. Even if you find yourself held back by your lack of creation technique skills, you can now create powerful pieces of art with your utilization of all the other layers. Learn how to bring perspective, meaning and depth to what you see, and you will become a true artist.