Last week I attended Lone Star PHP’s sixth annual conference. This was my second year attending and the conference provided a wide variety of topics, not limited to just PHP. Here is a recap of a few of my favorite sessions:
Stop Multiplying by 4: Practical Software Estimation
Talk by Chuck Reeves
Estimating is something a lot of people struggle with. Whether you’re estimating a large project or a small bug fix, more likely than not you’re going to give an incorrect estimate. Why? Because an estimate is just an educated rough guess. The trick is being able to provide a more accurate estimate.
Before you begin estimating, you need to ensure you have all the requirements. These should be flushed out enough to give you all the details, while not being overly wordy with unnecessary information. Include technical requirements, and break the requirements down into smaller chunks.
A great way to estimate is coming up with a Confidence Interval (CI). This allows you to estimate a range, rather than a specific number. For example, if you’re estimating how long a project will take, ask yourself the following:
- Will it take between 1 day and 3 months? Yes?
- Will it take between 1 week and 2 months? Still Yes?
- Will it take between 2 weeks and 1 month? Probably.
- What about 3 weeks and 3.5 weeks? Maybe, here you’re a little less sure…
In this instance you would give the estimate that it will take between 2 weeks and 1 month.
This technique allows you to be confident that your estimate is going to be fairly accurate as the project will be completed within the range you provided.
“It’s better to be roughly right than precisely wrong.” – John Maynard Keynes
Once you’ve come up with an estimate, don’t forward it immediately. Sit on it for awhile, allow yourself time to process the requirements and re-evaluate how confident you are in your estimate.
Finally, don’t negotiate your estimate. If something is going to take you one week to complete, it is going to take you one week to complete. Negotiating to less time will cause rushed, low quality work, while unnecessarily stressing you out in the process.
You Can UX Too: Avoiding the Programmer’s User Interface
Talk by Eryn O’Neil
As developers, it’s easy to leave the UI to the designers and think of it as more of an inconvenience or something that is stopping us from doing the important back end work. Eryn explained that we need to care about the interfaces we write. We may not be UX experts, but we write interfaces and we stare at interfaces all day (probably more than we care to admit). We’re more than capable of having opinions on interfaces.
Good Software is software that people want to use, and want to keep using.
If no one can or wants to use your software because of a bad interface, no one cares about it. You’ve poured your heart and soul into this project, only to have it discarded.
Typically in the development process, we write the back end with the interface as an afterthought, or we write them at the same time. In this talk, we were challenged to design UX first the next time we’re working on a project. This allows you to have a clear understanding of the expected functionality, and put thought into the interface and design, rather than rushing through it. It also gives you something to refer back to as you’re coding the system. More likely than not, how the front end works will determine the way the back end is being written or how the information is stored.
While there’s not one set way of designing, there are some good practices. For example, don’t reinvent the wheel, use common design techniques or imagery. This helps the user instantly know what is going on. Watching people use your software can give you great feedback on what is or isn’t working in the interface. You also need to believe this feedback. Relying on these users, along with designers, co-workers, or friends will allow you to get some really good feedback – “None of us are as good as all of us”.
Exploiting the Brain for Fun & Profit
Talk by Alena Holligan
This was by far one of my favorite talks, and it had nothing to do with development. Alena ran through some things we can do to take advantage of our brain, become positive, productive, and confident. These were a few of the topics she discussed:
Power poses have been proven to inspire confidence by changing your body language and changing the chemical levels in your system. The idea behind the power pose is that you stand in this position for two minutes before going into a situation where you will be evaluated or nervous, such as a job interview or speaking/presenting.
For more information watch the Amy Cuddy talk – Your body language shapes who you are
“Priming is an implicit memory effect in which exposure to one stimulus (i.e., perceptual pattern) influences the response to another stimulus.” – Wikipedia
For example, you can influence a persons actions by repeating certain words to them. In a study on psychology students, they had to repeat the words “Old”, “Gray”, and “Florida”. After repeating these words, the students took longer to walk to an elevator when compared to a control group.
We can use this to have a more positive outlook by priming ourselves or others with positive words.
It’s no secret that sleep is a very important factor on how we function. After losing one night of sleep, we lose 30% of our cognitive ability. It also affects other physical aspects, like our immune system, blood pressure, and body temperature.
We can track how much sleep we’re getting through applications like Sleep Cycle to monitor exactly how much sleep we need. Another trick is to take power naps if you’re tired during the day. A 26 minute power nap can improve your performance by 34%!
There were a lot of other great sessions and keynotes I attended. I look forward to Lone Star PHP 2017!